[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.171 and 1.176

version 1.171, 2015/02/03 01:14:12 version 1.176, 2015/02/05 01:46:56
Line 262  rew_last(struct mdoc *mdoc, const struct mdoc_node *to
Line 262  rew_last(struct mdoc *mdoc, const struct mdoc_node *to
         assert(to);          assert(to);
         mdoc->next = MDOC_NEXT_SIBLING;          mdoc->next = MDOC_NEXT_SIBLING;
         while (mdoc->last != to) {          while (mdoc->last != to) {
                 if ( ! (mdoc->last->flags & MDOC_VALID))  
                         mdoc->last->lastline = to->lastline -  
                             (mdoc->flags & MDOC_NEWLINE ? 1 : 0);  
                 /*                  /*
                  * Save the parent here, because we may delete the                   * Save the parent here, because we may delete the
                  * mdoc->last node in the post-validation phase and reset                   * mdoc->last node in the post-validation phase and reset
Line 578  blk_exp_close(MACRO_PROT_ARGS)
Line 575  blk_exp_close(MACRO_PROT_ARGS)
                 /* Remember the start of our own body. */                  /* Remember the start of our own body. */
   
                 if (n->type == MDOC_BODY && atok == n->tok) {                  if (n->type == MDOC_BODY && atok == n->tok) {
                         if (n->end == ENDBODY_NOT) {                          if (n->end == ENDBODY_NOT)
                                 body = n;                                  body = n;
                                 n->lastline = line;  
                         }  
                         continue;                          continue;
                 }                  }
   
Line 594  blk_exp_close(MACRO_PROT_ARGS)
Line 589  blk_exp_close(MACRO_PROT_ARGS)
                 }                  }
   
                 if (atok == n->tok) {                  if (atok == n->tok) {
                         n->lastline = line;  
                         assert(body);                          assert(body);
   
                         /*                          /*
Line 778  in_line(MACRO_PROT_ARGS)
Line 772  in_line(MACRO_PROT_ARGS)
                  */                   */
   
                 if (ac == ARGS_PUNCT) {                  if (ac == ARGS_PUNCT) {
                         if (cnt == 0 && nc == 0)                          if (cnt == 0 && (nc == 0 || tok == MDOC_An))
                                 mdoc->flags |= MDOC_NODELIMC;                                  mdoc->flags |= MDOC_NODELIMC;
                         break;                          break;
                 }                  }
Line 967  blk_full(MACRO_PROT_ARGS)
Line 961  blk_full(MACRO_PROT_ARGS)
                                     "It breaks %s",                                      "It breaks %s",
                                     mdoc_macronames[blk->tok]);                                      mdoc_macronames[blk->tok]);
                                 rew_pending(mdoc, blk);                                  rew_pending(mdoc, blk);
                                   blk = NULL;
                         }                          }
   
                         /* Close out prior implicit scopes. */                          /* Close out prior implicit scopes. */
Line 1026  blk_full(MACRO_PROT_ARGS)
Line 1021  blk_full(MACRO_PROT_ARGS)
                 la = *pos;                  la = *pos;
                 lac = ac;                  lac = ac;
                 ac = mdoc_args(mdoc, line, pos, buf, tok, &p);                  ac = mdoc_args(mdoc, line, pos, buf, tok, &p);
                 if (ac == ARGS_PUNCT)  
                         break;  
                 if (ac == ARGS_EOLN) {                  if (ac == ARGS_EOLN) {
                         if (lac != ARGS_PPHRASE && lac != ARGS_PHRASE)                          if (lac != ARGS_PPHRASE && lac != ARGS_PHRASE)
                                 break;                                  break;
Line 1043  blk_full(MACRO_PROT_ARGS)
Line 1036  blk_full(MACRO_PROT_ARGS)
                         body = mdoc_body_alloc(mdoc, line, ppos, tok);                          body = mdoc_body_alloc(mdoc, line, ppos, tok);
                         break;                          break;
                 }                  }
                   if (tok == MDOC_Bd || tok == MDOC_Bk) {
                           mandoc_vmsg(MANDOCERR_ARG_EXCESS,
                               mdoc->parse, line, la, "%s ... %s",
                               mdoc_macronames[tok], buf + la);
                           break;
                   }
                   if (tok == MDOC_Rs) {
                           mandoc_vmsg(MANDOCERR_ARG_SKIP, mdoc->parse,
                               line, la, "Rs %s", buf + la);
                           break;
                   }
                   if (ac == ARGS_PUNCT)
                           break;
   
                 /*                  /*
                  * Emit leading punctuation (i.e., punctuation before                   * Emit leading punctuation (i.e., punctuation before
Line 1099  blk_full(MACRO_PROT_ARGS)
Line 1105  blk_full(MACRO_PROT_ARGS)
                 return;                  return;
         if (head == NULL)          if (head == NULL)
                 head = mdoc_head_alloc(mdoc, line, ppos, tok);                  head = mdoc_head_alloc(mdoc, line, ppos, tok);
         if (nl)          if (nl && tok != MDOC_Bd && tok != MDOC_Bl && tok != MDOC_Rs)
                 append_delims(mdoc, line, pos, buf);                  append_delims(mdoc, line, pos, buf);
         if (body != NULL)          if (body != NULL)
                 goto out;                  goto out;

Legend:
Removed from v.1.171  
changed lines
  Added in v.1.176

CVSweb