-static int in_line_eoln(MACRO_PROT_ARGS);
-
-const struct man_macro __man_macros[MAN_MAX] = {
- { in_line_eoln, NULL }, /* MAN___ */
- { in_line_eoln, NULL }, /* MAN_TH */
- { in_line_eoln, NULL }, /* MAN_SH */
- { in_line_eoln, NULL }, /* MAN_SS */
- { in_line_eoln, NULL }, /* MAN_TP */
- { in_line_eoln, NULL }, /* MAN_LP */
- { in_line_eoln, NULL }, /* MAN_PP */
- { in_line_eoln, NULL }, /* MAN_P */
- { in_line_eoln, NULL }, /* MAN_IP */
- { in_line_eoln, NULL }, /* MAN_HP */
- { in_line_eoln, NULL }, /* MAN_SM */
- { in_line_eoln, NULL }, /* MAN_SB */
- { in_line_eoln, NULL }, /* MAN_BI */
- { in_line_eoln, NULL }, /* MAN_IB */
- { in_line_eoln, NULL }, /* MAN_BR */
- { in_line_eoln, NULL }, /* MAN_RB */
- { in_line_eoln, NULL }, /* MAN_R */
- { in_line_eoln, NULL }, /* MAN_B */
- { in_line_eoln, NULL }, /* MAN_I */
+static void blk_close(MACRO_PROT_ARGS);
+static void blk_exp(MACRO_PROT_ARGS);
+static void blk_imp(MACRO_PROT_ARGS);
+static void in_line_eoln(MACRO_PROT_ARGS);
+static int man_args(struct roff_man *, int,
+ int *, char *, char **);
+static void rew_scope(struct roff_man *, enum roff_tok);
+
+static const struct man_macro man_macros[MAN_MAX - MAN_TH] = {
+ { in_line_eoln, MAN_XSCOPE }, /* TH */
+ { blk_imp, MAN_XSCOPE | MAN_BSCOPED }, /* SH */
+ { blk_imp, MAN_XSCOPE | MAN_BSCOPED }, /* SS */
+ { blk_imp, MAN_XSCOPE | MAN_BSCOPED }, /* TP */
+ { blk_imp, MAN_XSCOPE | MAN_BSCOPED }, /* TQ */
+ { blk_imp, MAN_XSCOPE }, /* LP */
+ { blk_imp, MAN_XSCOPE }, /* PP */
+ { blk_imp, MAN_XSCOPE }, /* P */
+ { blk_imp, MAN_XSCOPE }, /* IP */
+ { blk_imp, MAN_XSCOPE }, /* HP */
+ { in_line_eoln, MAN_NSCOPED | MAN_ESCOPED | MAN_JOIN }, /* SM */
+ { in_line_eoln, MAN_NSCOPED | MAN_ESCOPED | MAN_JOIN }, /* SB */
+ { in_line_eoln, 0 }, /* BI */
+ { in_line_eoln, 0 }, /* IB */
+ { in_line_eoln, 0 }, /* BR */
+ { in_line_eoln, 0 }, /* RB */
+ { in_line_eoln, MAN_NSCOPED | MAN_ESCOPED | MAN_JOIN }, /* R */
+ { in_line_eoln, MAN_NSCOPED | MAN_ESCOPED | MAN_JOIN }, /* B */
+ { in_line_eoln, MAN_NSCOPED | MAN_ESCOPED | MAN_JOIN }, /* I */
+ { in_line_eoln, 0 }, /* IR */
+ { in_line_eoln, 0 }, /* RI */
+ { blk_close, MAN_XSCOPE }, /* RE */
+ { blk_exp, MAN_XSCOPE }, /* RS */
+ { in_line_eoln, 0 }, /* DT */
+ { in_line_eoln, 0 }, /* UC */
+ { in_line_eoln, MAN_NSCOPED }, /* PD */
+ { in_line_eoln, 0 }, /* AT */
+ { in_line_eoln, MAN_NSCOPED }, /* in */
+ { blk_imp, MAN_XSCOPE }, /* SY */
+ { blk_close, MAN_XSCOPE }, /* YS */
+ { in_line_eoln, 0 }, /* OP */
+ { in_line_eoln, MAN_XSCOPE }, /* EX */
+ { in_line_eoln, MAN_XSCOPE }, /* EE */
+ { blk_exp, MAN_XSCOPE }, /* UR */
+ { blk_close, MAN_XSCOPE }, /* UE */
+ { blk_exp, MAN_XSCOPE }, /* MT */
+ { blk_close, MAN_XSCOPE }, /* ME */