diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2010-03-29 04:52:14 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2010-03-29 04:52:14 +0000 |
commit | 40d86894cf83a9f39b0d85e391c7c16574971889 (patch) | |
tree | 670208d3e7101f9294ad5312ae1d25ef3f051886 /man_macro.c | |
parent | f21a38903f3f18b8185649f2a8fda1137ae506cd (diff) | |
download | mandoc-40d86894cf83a9f39b0d85e391c7c16574971889.tar.gz |
Initial step in fixing badness reported by Sascha Wildner (wip).
Diffstat (limited to 'man_macro.c')
-rw-r--r-- | man_macro.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/man_macro.c b/man_macro.c index 70387fec..3c85f44c 100644 --- a/man_macro.c +++ b/man_macro.c @@ -328,6 +328,14 @@ blk_dotted(MACRO_PROT_ARGS) break; } + /* + * Restore flags set when we got here and also stipulate that we + * don't post-process the line when exiting the macro op + * function in man_pmacro(). + */ + m->flags = m->svflags; + m->flags |= MAN_ILINE; + return(1); } @@ -385,6 +393,13 @@ blk_exp(MACRO_PROT_ARGS) return(0); if ( ! rew_scope(MAN_BLOCK, m, tok)) return(0); + } else { + /* + * Save our state; we restore it when exiting from the + * roff instruction block. + */ + m->svflags = m->flags; + m->flags = 0; } if ( ! man_block_alloc(m, line, ppos, tok)) |