[BACK]Return to eqn.c CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/eqn.c between version 1.15 and 1.16

version 1.15, 2011/07/21 12:30:44 version 1.16, 2011/07/21 13:18:24
Line 37  struct eqnpart {
Line 37  struct eqnpart {
         int             (*fp)(struct eqn_node *);          int             (*fp)(struct eqn_node *);
 };  };
   
   struct  eqnmark {
           const char      *name;
           size_t           sz;
   };
   
 enum    eqnpartt {  enum    eqnpartt {
         EQN_DEFINE = 0,          EQN_DEFINE = 0,
         EQN_SET,          EQN_SET,
Line 63  static const struct eqnpart eqnparts[EQN__MAX] = {
Line 68  static const struct eqnpart eqnparts[EQN__MAX] = {
         { "undef", 5, eqn_do_undef }, /* EQN_UNDEF */          { "undef", 5, eqn_do_undef }, /* EQN_UNDEF */
 };  };
   
   static  const struct eqnmark eqnmarks[EQNMARK__MAX] = {
           { "", 0 }, /* EQNMARK_NONE */
           { "dot", 3 }, /* EQNMARK_DOT */
           { "dotdot", 6 }, /* EQNMARK_DOTDOT */
           { "hat", 3 }, /* EQNMARK_HAT */
           { "tilde", 5 }, /* EQNMARK_TILDE */
           { "vec", 3 }, /* EQNMARK_VEC */
           { "dyad", 4 }, /* EQNMARK_DYAD */
           { "bar", 3 }, /* EQNMARK_BAR */
           { "under", 5 }, /* EQNMARK_UNDER */
   };
   
 /* ARGSUSED */  /* ARGSUSED */
 enum rofferr  enum rofferr
 eqn_read(struct eqn_node **epp, int ln,  eqn_read(struct eqn_node **epp, int ln,
Line 139  eqn_end(struct eqn_node *ep)
Line 156  eqn_end(struct eqn_node *ep)
          * Otherwise, return the equation.           * Otherwise, return the equation.
          */           */
   
         if ((c = eqn_box(ep, root, &last)) > 0) {          if (0 == (c = eqn_box(ep, root, &last))) {
                   if (last != root) {
                           EQN_MSG(MANDOCERR_EQNSCOPE, ep);
                           c = 0;
                   }
           } else if (c > 0)
                 EQN_MSG(MANDOCERR_EQNNSCOPE, ep);                  EQN_MSG(MANDOCERR_EQNNSCOPE, ep);
                 c = 0;  
         } else if (0 == c && last != root)  
                 EQN_MSG(MANDOCERR_EQNSCOPE, ep);  
   
         return(1 == c ? ROFF_EQN : ROFF_IGN);          return(0 == c ? ROFF_EQN : ROFF_IGN);
 }  }
   
 static int  static int
Line 178  again:
Line 197  again:
   
                 goto again;                  goto again;
         }          }
   
           for (i = 0; i < (int)EQNMARK__MAX; i++) {
                   if (eqnmarks[i].sz != sz)
                           continue;
                   if (strncmp(eqnmarks[i].name, start, sz))
                           continue;
                   last->mark = (enum eqn_markt)i;
                   goto again;
           }
   
         /* Exit this [hopefully] subexpression. */          /* Exit this [hopefully] subexpression. */
   

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.16

CVSweb