[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.195 and 1.201

version 1.195, 2015/04/23 15:35:59 version 1.201, 2015/09/26 00:54:04
Line 258  lookup(struct roff_man *mdoc, int from, int line, int 
Line 258  lookup(struct roff_man *mdoc, int from, int line, int 
 static void  static void
 rew_last(struct roff_man *mdoc, const struct roff_node *to)  rew_last(struct roff_man *mdoc, const struct roff_node *to)
 {  {
         struct roff_node *n, *np;          struct roff_node        *np;
   
         if (to->flags & MDOC_VALID)          if (to->flags & MDOC_VALID)
                 return;                  return;
   
         mdoc->next = ROFF_NEXT_SIBLING;  
         while (mdoc->last != to) {          while (mdoc->last != to) {
                 /*                  /*
                  * Save the parent here, because we may delete the                   * Save the parent here, because we may delete the
Line 273  rew_last(struct roff_man *mdoc, const struct roff_node
Line 272  rew_last(struct roff_man *mdoc, const struct roff_node
                  */                   */
                 np = mdoc->last->parent;                  np = mdoc->last->parent;
                 mdoc_valid_post(mdoc);                  mdoc_valid_post(mdoc);
                 n = mdoc->last;  
                 mdoc->last = np;                  mdoc->last = np;
                 assert(mdoc->last);                  assert(mdoc->last);
                 mdoc->last->last = n;  
         }          }
           mdoc->next = ROFF_NEXT_SIBLING;
         mdoc_valid_post(mdoc);          mdoc_valid_post(mdoc);
 }  }
   
Line 365  rew_alt(int tok)
Line 363  rew_alt(int tok)
         default:          default:
                 return(tok);                  return(tok);
         }          }
         /* NOTREACHED */  
 }  }
   
 static void  static void
Line 644  blk_exp_close(MACRO_PROT_ARGS)
Line 641  blk_exp_close(MACRO_PROT_ARGS)
         if (body == NULL) {          if (body == NULL) {
                 mandoc_msg(MANDOCERR_BLK_NOTOPEN, mdoc->parse,                  mandoc_msg(MANDOCERR_BLK_NOTOPEN, mdoc->parse,
                     line, ppos, mdoc_macronames[tok]);                      line, ppos, mdoc_macronames[tok]);
                   if (later != NULL)
                           later->flags &= ~MDOC_BROKEN;
                 if (maxargs && endbody == NULL) {                  if (maxargs && endbody == NULL) {
                         /*                          /*
                          * Stray .Ec without previous .Eo:                           * Stray .Ec without previous .Eo:
Line 671  blk_exp_close(MACRO_PROT_ARGS)
Line 670  blk_exp_close(MACRO_PROT_ARGS)
   
         if (endbody != NULL)          if (endbody != NULL)
                 n = endbody;                  n = endbody;
   
           ntok = TOKEN_NONE;
         for (j = 0; ; j++) {          for (j = 0; ; j++) {
                 lastarg = *pos;                  lastarg = *pos;
   
Line 698  blk_exp_close(MACRO_PROT_ARGS)
Line 699  blk_exp_close(MACRO_PROT_ARGS)
         }          }
   
         if (n != NULL) {          if (n != NULL) {
                 if (n != mdoc->last && n->flags & MDOC_BROKEN) {                  if (ntok != TOKEN_NONE && n->flags & MDOC_BROKEN) {
                         target = n;                          target = n;
                         do                          do
                                 target = target->parent;                                  target = target->parent;
Line 1395  in_line_eoln(MACRO_PROT_ARGS)
Line 1396  in_line_eoln(MACRO_PROT_ARGS)
                 if (mdoc->next == ROFF_NEXT_SIBLING)                  if (mdoc->next == ROFF_NEXT_SIBLING)
                         n = n->parent;                          n = n->parent;
                 if (n->tok == MDOC_Nm)                  if (n->tok == MDOC_Nm)
                         rew_last(mdoc, mdoc->last->parent);                          rew_last(mdoc, n->parent);
         }          }
   
         if (buf[*pos] == '\0' &&          if (buf[*pos] == '\0' &&

Legend:
Removed from v.1.195  
changed lines
  Added in v.1.201

CVSweb