summaryrefslogtreecommitdiffstats
path: root/mandoc.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2015-01-21 20:33:25 +0000
committerIngo Schwarze <schwarze@openbsd.org>2015-01-21 20:33:25 +0000
commit1f42b16d7620434847b937d82a463bd7cbe63255 (patch)
tree4ee3ab1a6a2c6f5ee76f69a33d0b12a1aae40bf8 /mandoc.c
parent28c98469ed60b736b7c70dc094a9d94197a1568f (diff)
downloadmandoc-1f42b16d7620434847b937d82a463bd7cbe63255.tar.gz
Rudimentary implementation of the roff(7) \o escape sequence (overstrike).
This is of some relevance because the pod2man(1) preamble abuses it for the icelandic letter Thorn, instead of simply using \(TP and \(Tp. Missing feature found by sthen@ in DateTime::Locale::is_IS(3p).
Diffstat (limited to 'mandoc.c')
-rw-r--r--mandoc.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/mandoc.c b/mandoc.c
index d0bf7f17..cd74f1a0 100644
--- a/mandoc.c
+++ b/mandoc.c
@@ -156,16 +156,18 @@ mandoc_escape(const char **end, const char **start, int *sz)
/* FALLTHROUGH */
case 'D':
/* FALLTHROUGH */
- case 'o':
- /* FALLTHROUGH */
case 'R':
/* FALLTHROUGH */
case 'X':
/* FALLTHROUGH */
case 'Z':
- if ('\0' == **start)
- return(ESCAPE_ERROR);
gly = ESCAPE_IGNORE;
+ /* FALLTHROUGH */
+ case 'o':
+ if (**start == '\0')
+ return(ESCAPE_ERROR);
+ if (gly == ESCAPE_ERROR)
+ gly = ESCAPE_OVERSTRIKE;
term = **start;
*start = ++*end;
break;