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

Diff for /mandoc/mdoc_macro.c between version 1.155 and 1.156

version 1.155, 2014/11/30 02:36:38 version 1.156, 2014/11/30 05:29:00
Line 1396  in_line_argn(MACRO_PROT_ARGS)
Line 1396  in_line_argn(MACRO_PROT_ARGS)
         char            *p;          char            *p;
         enum mdoct       ntok;          enum mdoct       ntok;
   
         nl = MDOC_NEWLINE & mdoc->flags;          nl = mdoc->flags & MDOC_NEWLINE;
   
         /*          /*
          * A line macro that has a fixed number of arguments (maxargs).           * A line macro that has a fixed number of arguments (maxargs).
Line 1428  in_line_argn(MACRO_PROT_ARGS)
Line 1428  in_line_argn(MACRO_PROT_ARGS)
   
         mdoc_argv(mdoc, line, tok, &arg, pos, buf);          mdoc_argv(mdoc, line, tok, &arg, pos, buf);
   
         for (flushed = j = 0; ; ) {          p = NULL;
           flushed = j = 0;
           for (;;) {
                 la = *pos;                  la = *pos;
                 ac = mdoc_args(mdoc, line, pos, buf, tok, &p);                  ac = mdoc_args(mdoc, line, pos, buf, tok, &p);
                 if (ac == ARGS_PUNCT || ac == ARGS_EOLN)                  if (ac == ARGS_PUNCT || ac == ARGS_EOLN) {
                           if (j < 2 && tok == MDOC_Pf)
                                   mandoc_vmsg(MANDOCERR_PF_SKIP,
                                       mdoc->parse, line, ppos, "Pf %s",
                                       p == NULL ? "at eol" : p);
                         break;                          break;
                   }
   
                 if ( ! (mdoc_macros[tok].flags & MDOC_IGNDELIM) &&                  if ( ! (mdoc_macros[tok].flags & MDOC_IGNDELIM) &&
                     ac != ARGS_QWORD && j == 0 &&                      ac != ARGS_QWORD && j == 0 &&
Line 1447  in_line_argn(MACRO_PROT_ARGS)
Line 1454  in_line_argn(MACRO_PROT_ARGS)
                         flushed = 1;                          flushed = 1;
                 }                  }
   
                 ntok = ac == ARGS_QWORD ? MDOC_MAX :                  ntok = (ac == ARGS_QWORD || (tok == MDOC_Pf && j == 0)) ?
                     lookup(mdoc, tok, line, la, p);                      MDOC_MAX : lookup(mdoc, tok, line, la, p);
   
                 if (ntok != MDOC_MAX) {                  if (ntok != MDOC_MAX) {
                         if ( ! flushed)                          if ( ! flushed)
Line 1471  in_line_argn(MACRO_PROT_ARGS)
Line 1478  in_line_argn(MACRO_PROT_ARGS)
                 j++;                  j++;
         }          }
   
         if (j == 0)          if (j == 0) {
                 mdoc_elem_alloc(mdoc, line, ppos, tok, arg);                  mdoc_elem_alloc(mdoc, line, ppos, tok, arg);
                   if (ac == ARGS_PUNCT && tok == MDOC_Pf)
                           append_delims(mdoc, line, pos, buf);
           }
         if ( ! flushed)          if ( ! flushed)
                 rew_elem(mdoc, tok);                  rew_elem(mdoc, tok);
         if (nl)          if (nl)

Legend:
Removed from v.1.155  
changed lines
  Added in v.1.156

CVSweb