summaryrefslogtreecommitdiffstats
path: root/macro.c
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2009-02-22 19:23:48 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2009-02-22 19:23:48 +0000
commitc9f801d9804d2a25f795302e5db93880df4f4d87 (patch)
tree7b147f5444b71e4c9386eeac77ed155e23156314 /macro.c
parentf25db392c434984141c67fb983517a0dd28c4fe1 (diff)
downloadmandoc-c9f801d9804d2a25f795302e5db93880df4f4d87.tar.gz
Fixed `.Pf' handling.
System now supports all mdocml manual pages.
Diffstat (limited to 'macro.c')
-rw-r--r--macro.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/macro.c b/macro.c
index eaeddee2..24262fd3 100644
--- a/macro.c
+++ b/macro.c
@@ -1086,7 +1086,8 @@ macro_constant_scoped(MACRO_PROT_ARGS)
int
macro_constant_delimited(MACRO_PROT_ARGS)
{
- int lastarg, flushed, j, c, maxargs, argc;
+ int lastarg, flushed, j, c, maxargs, argc,
+ igndelim;
struct mdoc_arg argv[MDOC_LINEARG_MAX];
char *p;
@@ -1098,8 +1099,6 @@ macro_constant_delimited(MACRO_PROT_ARGS)
/* FALLTHROUGH */
case (MDOC_Ns):
/* FALLTHROUGH */
- case (MDOC_Pf):
- /* FALLTHROUGH */
case (MDOC_Ux):
/* FALLTHROUGH */
case (MDOC_St):
@@ -1110,6 +1109,15 @@ macro_constant_delimited(MACRO_PROT_ARGS)
break;
}
+ switch (tok) {
+ case (MDOC_Pf):
+ igndelim = 1;
+ break;
+ default:
+ igndelim = 0;
+ break;
+ }
+
for (argc = 0; argc < MDOC_LINEARG_MAX; argc++) {
lastarg = *pos;
c = mdoc_argv(mdoc, line, tok, &argv[argc], pos, buf);
@@ -1167,7 +1175,7 @@ macro_constant_delimited(MACRO_PROT_ARGS)
break;
}
- if ( ! flushed && mdoc_isdelim(p)) {
+ if ( ! flushed && mdoc_isdelim(p) && ! igndelim) {
if ( ! rewind_elem(mdoc, tok))
return(0);
flushed = 1;