[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.113 and 1.115

version 1.113, 2011/12/03 23:59:14 version 1.115, 2012/01/05 00:43:51
Line 228  mdoc_macroend(struct mdoc *m)
Line 228  mdoc_macroend(struct mdoc *m)
 static enum mdoct  static enum mdoct
 lookup(enum mdoct from, const char *p)  lookup(enum mdoct from, const char *p)
 {  {
         /* FIXME: make -diag lists be un-PARSED. */  
   
         if ( ! (MDOC_PARSED & mdoc_macros[from].flags))          if ( ! (MDOC_PARSED & mdoc_macros[from].flags))
                 return(MDOC_MAX);                  return(MDOC_MAX);
Line 984  in_line(MACRO_PROT_ARGS)
Line 983  in_line(MACRO_PROT_ARGS)
 static int  static int
 blk_full(MACRO_PROT_ARGS)  blk_full(MACRO_PROT_ARGS)
 {  {
         int               la, nl;          int               la, nl, nparsed;
         struct mdoc_arg  *arg;          struct mdoc_arg  *arg;
         struct mdoc_node *head; /* save of head macro */          struct mdoc_node *head; /* save of head macro */
         struct mdoc_node *body; /* save of body macro */          struct mdoc_node *body; /* save of body macro */
Line 1039  blk_full(MACRO_PROT_ARGS)
Line 1038  blk_full(MACRO_PROT_ARGS)
         head = body = NULL;          head = body = NULL;
   
         /*          /*
            * Exception: Heads of `It' macros in `-diag' lists are not
            * parsed, even though `It' macros in general are parsed.
            */
           nparsed = MDOC_It == tok &&
                   MDOC_Bl == m->last->parent->tok &&
                   LIST_diag == m->last->parent->norm->Bl.type;
   
           /*
          * The `Nd' macro has all arguments in its body: it's a hybrid           * The `Nd' macro has all arguments in its body: it's a hybrid
          * of block partial-explicit and full-implicit.  Stupid.           * of block partial-explicit and full-implicit.  Stupid.
          */           */
Line 1146  blk_full(MACRO_PROT_ARGS)
Line 1153  blk_full(MACRO_PROT_ARGS)
                         continue;                          continue;
                 }                  }
   
                 ntok = ARGS_QWORD == ac ? MDOC_MAX : lookup(tok, p);                  ntok = nparsed || ARGS_QWORD == ac ?
                           MDOC_MAX : lookup(tok, p);
   
                 if (MDOC_MAX == ntok) {                  if (MDOC_MAX == ntok) {
                         if ( ! dword(m, line, la, p, DELIM_MAX))                          if ( ! dword(m, line, la, p, DELIM_MAX))

Legend:
Removed from v.1.113  
changed lines
  Added in v.1.115

CVSweb