summaryrefslogtreecommitdiffstats
path: root/mdoc.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2013-10-05 22:08:12 +0000
committerIngo Schwarze <schwarze@openbsd.org>2013-10-05 22:08:12 +0000
commit3c869ef07e567e3ae0ecdbc5ad0d7b12c86c50cb (patch)
treef61c5d4a321554fbd04189cad9eb97ce651ac31c /mdoc.c
parent953ee7904394055e28884ec864e0f9f074192fe0 (diff)
downloadmandoc-3c869ef07e567e3ae0ecdbc5ad0d7b12c86c50cb.tar.gz
Support setting arbitrary roff(7) number registers,
preserving read support for the ".nr nS" SYNOPSIS state register. Inspired by NetBSD roff.c rev. 1.18 (Christos Zoulas, March 21, 2013), but implemented differently. I don't want to have yet another different implementation of a hash table in mandoc - it would be the second one in roff.c alone and the fifth one in mandoc grand total. Instead, i designed and implemented roff_setreg() and roff_getreg() to be similar to roff_setstrn() and roff_getstrn(). Once we feel the need to optimize, we can introduce one common hash table implementation for everything in mandoc.
Diffstat (limited to 'mdoc.c')
-rw-r--r--mdoc.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/mdoc.c b/mdoc.c
index 06a81ff9..6a5463f3 100644
--- a/mdoc.c
+++ b/mdoc.c
@@ -295,12 +295,10 @@ mdoc_parseln(struct mdoc *mdoc, int ln, char *buf, int offs)
* whether this mode is on or off.
* Note that this mode is also switched by the Sh macro.
*/
- if (roff_regisset(mdoc->roff, REG_nS)) {
- if (roff_regget(mdoc->roff, REG_nS))
- mdoc->flags |= MDOC_SYNOPSIS;
- else
- mdoc->flags &= ~MDOC_SYNOPSIS;
- }
+ if (roff_getreg(mdoc->roff, "nS"))
+ mdoc->flags |= MDOC_SYNOPSIS;
+ else
+ mdoc->flags &= ~MDOC_SYNOPSIS;
return(roff_getcontrol(mdoc->roff, buf, &offs) ?
mdoc_pmacro(mdoc, ln, buf, offs) :