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

Diff for /mandoc/mdoc_argv.c between version 1.49 and 1.51

version 1.49, 2010/05/17 22:11:42 version 1.51, 2010/05/31 10:28:04
Line 210  static int mdoc_argflags[MDOC_MAX] = {
Line 210  static int mdoc_argflags[MDOC_MAX] = {
         0, /* br */          0, /* br */
         0, /* sp */          0, /* sp */
         0, /* %U */          0, /* %U */
           0, /* Ta */
 };  };
   
   
Line 339  enum margserr
Line 340  enum margserr
 mdoc_args(struct mdoc *m, int line, int *pos,  mdoc_args(struct mdoc *m, int line, int *pos,
                 char *buf, enum mdoct tok, char **v)                  char *buf, enum mdoct tok, char **v)
 {  {
         int               fl, c, i;          int               fl;
         struct mdoc_node *n;          struct mdoc_node *n;
   
         fl = mdoc_argflags[tok];          fl = mdoc_argflags[tok];
Line 347  mdoc_args(struct mdoc *m, int line, int *pos, 
Line 348  mdoc_args(struct mdoc *m, int line, int *pos, 
         if (MDOC_It != tok)          if (MDOC_It != tok)
                 return(args(m, line, pos, buf, fl, v));                  return(args(m, line, pos, buf, fl, v));
   
         /*          /*
          * The `It' macro is a special case, as it acquires parameters from its           * We know that we're in an `It', so it's reasonable to expect
          * parent `Bl' context, specifically, we're concerned with -column.           * us to be sitting in a `Bl'.  Someday this may not be the case
            * (if we allow random `It's sitting out there), so provide a
            * safe fall-back into the default behaviour.
          */           */
   
         for (n = m->last; n; n = n->parent)          for (n = m->last; n; n = n->parent)
                 if (MDOC_BLOCK == n->type && MDOC_Bl == n->tok)                  if (MDOC_Bl == n->tok)
                         break;                          break;
   
         assert(n);          if (n && LIST_column == n->data.list) {
         c = (int)(n->args ? n->args->argc : 0);  
         assert(c > 0);  
   
         /* LINTED */  
         for (i = 0; i < c; i++) {  
                 if (MDOC_Column != n->args->argv[i].arg)  
                         continue;  
                 fl |= ARGS_TABSEP;                  fl |= ARGS_TABSEP;
                 fl &= ~ARGS_DELIM;                  fl &= ~ARGS_DELIM;
                 break;  
         }          }
   
         return(args(m, line, pos, buf, fl, v));          return(args(m, line, pos, buf, fl, v));
Line 468  args(struct mdoc *m, int line, int *pos, 
Line 463  args(struct mdoc *m, int line, int *pos, 
                                         break;                                          break;
                                 if (pp > *v && ' ' != *(pp - 1))                                  if (pp > *v && ' ' != *(pp - 1))
                                         continue;                                          continue;
                                 if (' ' == *(pp + 2) || 0 == *(pp + 2))                                  if (' ' == *(pp + 2) || '\0' == *(pp + 2))
                                         break;                                          break;
                         }                          }
   

Legend:
Removed from v.1.49  
changed lines
  Added in v.1.51

CVSweb