diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2013-10-05 22:08:12 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2013-10-05 22:08:12 +0000 |
commit | 3c869ef07e567e3ae0ecdbc5ad0d7b12c86c50cb (patch) | |
tree | f61c5d4a321554fbd04189cad9eb97ce651ac31c /mdoc.c | |
parent | 953ee7904394055e28884ec864e0f9f074192fe0 (diff) | |
download | mandoc-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.c | 10 |
1 files changed, 4 insertions, 6 deletions
@@ -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) : |