[BACK]Return to man_macro.c CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/man_macro.c between version 1.98 and 1.99

version 1.98, 2015/02/06 11:54:36 version 1.99, 2015/03/20 12:54:22
Line 55  const struct man_macro __man_macros[MAN_MAX] = {
Line 55  const struct man_macro __man_macros[MAN_MAX] = {
         { in_line_eoln, MAN_BSCOPE }, /* TH */          { in_line_eoln, MAN_BSCOPE }, /* TH */
         { blk_imp, MAN_BSCOPE | MAN_SCOPED }, /* SH */          { blk_imp, MAN_BSCOPE | MAN_SCOPED }, /* SH */
         { blk_imp, MAN_BSCOPE | MAN_SCOPED }, /* SS */          { blk_imp, MAN_BSCOPE | MAN_SCOPED }, /* SS */
         { blk_imp, MAN_BSCOPE | MAN_SCOPED | MAN_FSCOPED }, /* TP */          { blk_imp, MAN_BSCOPE | MAN_SCOPED }, /* TP */
         { blk_imp, MAN_BSCOPE }, /* LP */          { blk_imp, MAN_BSCOPE }, /* LP */
         { blk_imp, MAN_BSCOPE }, /* PP */          { blk_imp, MAN_BSCOPE }, /* PP */
         { blk_imp, MAN_BSCOPE }, /* P */          { blk_imp, MAN_BSCOPE }, /* P */
Line 76  const struct man_macro __man_macros[MAN_MAX] = {
Line 76  const struct man_macro __man_macros[MAN_MAX] = {
         { in_line_eoln, MAN_BSCOPE }, /* nf */          { in_line_eoln, MAN_BSCOPE }, /* nf */
         { in_line_eoln, MAN_BSCOPE }, /* fi */          { in_line_eoln, MAN_BSCOPE }, /* fi */
         { blk_close, MAN_BSCOPE }, /* RE */          { blk_close, MAN_BSCOPE }, /* RE */
         { blk_exp, MAN_BSCOPE | MAN_EXPLICIT }, /* RS */          { blk_exp, MAN_BSCOPE }, /* RS */
         { in_line_eoln, 0 }, /* DT */          { in_line_eoln, 0 }, /* DT */
         { in_line_eoln, 0 }, /* UC */          { in_line_eoln, 0 }, /* UC */
         { in_line_eoln, 0 }, /* PD */          { in_line_eoln, 0 }, /* PD */
Line 86  const struct man_macro __man_macros[MAN_MAX] = {
Line 86  const struct man_macro __man_macros[MAN_MAX] = {
         { in_line_eoln, 0 }, /* OP */          { in_line_eoln, 0 }, /* OP */
         { in_line_eoln, MAN_BSCOPE }, /* EX */          { in_line_eoln, MAN_BSCOPE }, /* EX */
         { in_line_eoln, MAN_BSCOPE }, /* EE */          { in_line_eoln, MAN_BSCOPE }, /* EE */
         { blk_exp, MAN_BSCOPE | MAN_EXPLICIT }, /* UR */          { blk_exp, MAN_BSCOPE }, /* UR */
         { blk_close, MAN_BSCOPE }, /* UE */          { blk_close, MAN_BSCOPE }, /* UE */
         { in_line_eoln, 0 }, /* ll */          { in_line_eoln, 0 }, /* ll */
 };  };
Line 125  man_unscope(struct man *man, const struct man_node *to
Line 125  man_unscope(struct man *man, const struct man_node *to
                                 continue;                                  continue;
                         }                          }
                         if (n->type == MAN_BLOCK &&                          if (n->type == MAN_BLOCK &&
                             man_macros[n->tok].flags & MAN_EXPLICIT)                              man_macros[n->tok].fp == blk_exp)
                                 mandoc_msg(MANDOCERR_BLK_NOEND,                                  mandoc_msg(MANDOCERR_BLK_NOEND,
                                     man->parse, n->line, n->pos,                                      man->parse, n->line, n->pos,
                                     man_macronames[n->tok]);                                      man_macronames[n->tok]);
Line 190  rew_dohalt(enum mant tok, enum man_type type, const st
Line 190  rew_dohalt(enum mant tok, enum man_type type, const st
   
         /* First: rewind to ourselves. */          /* First: rewind to ourselves. */
         if (type == n->type && tok == n->tok) {          if (type == n->type && tok == n->tok) {
                 if (MAN_EXPLICIT & man_macros[n->tok].flags)                  if (man_macros[n->tok].fp == blk_exp)
                         return(REW_HALT);                          return(REW_HALT);
                 else                  else
                         return(REW_REWIND);                          return(REW_REWIND);
Line 387  blk_imp(MACRO_PROT_ARGS)
Line 387  blk_imp(MACRO_PROT_ARGS)
                 man_word_alloc(man, line, la, p);                  man_word_alloc(man, line, la, p);
         }          }
   
         /* Close out head and open body (unless MAN_SCOPE). */          /*
            * For macros having optional next-line scope,
            * keep the head open if there were no arguments.
            * For `TP', always keep the head open.
            */
   
         if (man_macros[tok].flags & MAN_SCOPED) {          if (man_macros[tok].flags & MAN_SCOPED &&
                 /* If we're forcing scope (`TP'), keep it open. */              (tok == MAN_TP || n == man->last)) {
                 if (man_macros[tok].flags & MAN_FSCOPED) {                  man->flags |= MAN_BLINE;
                         man->flags |= MAN_BLINE;                  return;
                         return;  
                 } else if (n == man->last) {  
                         man->flags |= MAN_BLINE;  
                         return;  
                 }  
         }          }
   
           /* Close out the head and open the body. */
   
         rew_scope(MAN_HEAD, man, tok);          rew_scope(MAN_HEAD, man, tok);
         man_body_alloc(man, line, ppos, tok);          man_body_alloc(man, line, ppos, tok);
 }  }

Legend:
Removed from v.1.98  
changed lines
  Added in v.1.99

CVSweb