[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.193 and 1.197

version 1.193, 2015/04/19 14:57:38 version 1.197, 2015/04/29 21:58:32
Line 210  const struct mdoc_macro * const mdoc_macros = __mdoc_m
Line 210  const struct mdoc_macro * const mdoc_macros = __mdoc_m
  * are errors.   * are errors.
  */   */
 void  void
 mdoc_macroend(struct roff_man *mdoc)  mdoc_endparse(struct roff_man *mdoc)
 {  {
         struct roff_node *n;          struct roff_node *n;
   
Line 291  rew_pending(struct roff_man *mdoc, const struct roff_n
Line 291  rew_pending(struct roff_man *mdoc, const struct roff_n
         for (;;) {          for (;;) {
                 rew_last(mdoc, n);                  rew_last(mdoc, n);
   
                 switch (n->type) {                  if (mdoc->last == n) {
                 case ROFFT_HEAD:                          switch (n->type) {
                         roff_body_alloc(mdoc, n->line, n->pos, n->tok);                          case ROFFT_HEAD:
                         return;                                  roff_body_alloc(mdoc, n->line, n->pos,
                 case ROFFT_BLOCK:                                      n->tok);
                         break;                                  return;
                 default:                          case ROFFT_BLOCK:
                         return;                                  break;
                 }                          default:
                                   return;
                           }
                           if ( ! (n->flags & MDOC_BROKEN))
                                   return;
                   } else
                           n = mdoc->last;
   
                 if ( ! (n->flags & MDOC_BROKEN))  
                         return;  
   
                 for (;;) {                  for (;;) {
                         if ((n = n->parent) == NULL)                          if ((n = n->parent) == NULL)
                                 return;                                  return;
Line 641  blk_exp_close(MACRO_PROT_ARGS)
Line 644  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 668  blk_exp_close(MACRO_PROT_ARGS)
Line 673  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 695  blk_exp_close(MACRO_PROT_ARGS)
Line 702  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;

Legend:
Removed from v.1.193  
changed lines
  Added in v.1.197

CVSweb