[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.210 and 1.212

version 1.210, 2017/01/10 13:47:00 version 1.212, 2017/02/10 22:19:18
Line 398  find_pending(struct roff_man *mdoc, int tok, int line,
Line 398  find_pending(struct roff_man *mdoc, int tok, int line,
                 if (n->type == ROFFT_BLOCK &&                  if (n->type == ROFFT_BLOCK &&
                     mdoc_macros[n->tok].flags & MDOC_EXPLICIT) {                      mdoc_macros[n->tok].flags & MDOC_EXPLICIT) {
                         irc = 1;                          irc = 1;
                         n->flags = NODE_BROKEN;                          n->flags |= NODE_BROKEN;
                         if (target->type == ROFFT_HEAD)                          if (target->type == ROFFT_HEAD)
                                 target->flags = NODE_ENDED;                                  target->flags |= NODE_ENDED;
                         else if ( ! (target->flags & NODE_ENDED)) {                          else if ( ! (target->flags & NODE_ENDED)) {
                                 mandoc_vmsg(MANDOCERR_BLK_NEST,                                  mandoc_vmsg(MANDOCERR_BLK_NEST,
                                     mdoc->parse, line, ppos,                                      mdoc->parse, line, ppos,
Line 575  blk_exp_close(MACRO_PROT_ARGS)
Line 575  blk_exp_close(MACRO_PROT_ARGS)
                 }                  }
   
                 /*                  /*
                  * Mismatching end macros can never break anything,                   * Mismatching end macros can never break anything
                  * SYNOPSIS name blocks can never be broken,  
                  * and we only care about the breaking of BLOCKs.                   * and we only care about the breaking of BLOCKs.
                  */                   */
   
                 if (body == NULL ||                  if (body == NULL || n->type != ROFFT_BLOCK)
                     n->tok == MDOC_Nm ||  
                     n->type != ROFFT_BLOCK)  
                         continue;                          continue;
   
                   /*
                    * SYNOPSIS name blocks can not be broken themselves,
                    * but they do get broken together with a broken child.
                    */
   
                   if (n->tok == MDOC_Nm) {
                           if (later != NULL)
                                   n->flags |= NODE_BROKEN | NODE_ENDED;
                           continue;
                   }
   
                 if (n->tok == MDOC_It) {                  if (n->tok == MDOC_It) {
                         itblk = n;                          itblk = n;
                         continue;                          continue;
Line 706  blk_exp_close(MACRO_PROT_ARGS)
Line 714  blk_exp_close(MACRO_PROT_ARGS)
         }          }
   
         if (n != NULL) {          if (n != NULL) {
                   pending = 0;
                 if (ntok != TOKEN_NONE && n->flags & NODE_BROKEN) {                  if (ntok != TOKEN_NONE && n->flags & NODE_BROKEN) {
                         target = n;                          target = n;
                         do                          do
                                 target = target->parent;                                  target = target->parent;
                         while ( ! (target->flags & NODE_ENDED));                          while ( ! (target->flags & NODE_ENDED));
                         pending = find_pending(mdoc, ntok, line, ppos,                          if ( ! (target->flags & NODE_VALID))
                             target);                                  pending = find_pending(mdoc, ntok,
                 } else                                      line, ppos, target);
                         pending = 0;                  }
                 if ( ! pending)                  if ( ! pending)
                         rew_pending(mdoc, n);                          rew_pending(mdoc, n);
         }          }
Line 987  blk_full(MACRO_PROT_ARGS)
Line 996  blk_full(MACRO_PROT_ARGS)
   
                         /* Close out prior implicit scopes. */                          /* Close out prior implicit scopes. */
   
                         rew_last(mdoc, n);                          rew_pending(mdoc, n);
                 }                  }
   
                 /* Skip items outside lists. */                  /* Skip items outside lists. */

Legend:
Removed from v.1.210  
changed lines
  Added in v.1.212

CVSweb