aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tag.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2020-03-21 00:17:31 +0000
committerIngo Schwarze <schwarze@openbsd.org>2020-03-21 00:17:31 +0000
commitd4e4004a53ca7fa163aac66fa630fac6c119ff28 (patch)
tree01b916a62f6213a4d0eb6f50987b79355d9a4ed2 /tag.c
parent1ff425c7d1701dc250f29a472a5151a5681f208f (diff)
downloadmandoc-d4e4004a53ca7fa163aac66fa630fac6c119ff28.tar.gz
mandoc-d4e4004a53ca7fa163aac66fa630fac6c119ff28.tar.zst
mandoc-d4e4004a53ca7fa163aac66fa630fac6c119ff28.zip
When setting automatic tags, skip initial hyphens and minus signs,
bringing the behaviour for mdoc(7) closer to what is already done for man(7). Triggered by the observation of kn@ that automatic tagging didn't work very well for find(1) primaries. OK kn@
Diffstat (limited to 'tag.c')
-rw-r--r--tag.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/tag.c b/tag.c
index 6a38ad68..14327415 100644
--- a/tag.c
+++ b/tag.c
@@ -1,4 +1,4 @@
-/* $Id: tag.c,v 1.29 2020/03/13 16:16:58 schwarze Exp $ */
+/* $Id: tag.c,v 1.30 2020/03/21 00:17:31 schwarze Exp $ */
/*
* Copyright (c) 2015,2016,2018,2019,2020 Ingo Schwarze <schwarze@openbsd.org>
*
@@ -89,8 +89,24 @@ tag_put(const char *s, int prio, struct roff_node *n)
if (n->child == NULL || n->child->type != ROFFT_TEXT)
return;
s = n->child->string;
- if (s[0] == '\\' && (s[1] == '&' || s[1] == 'e'))
- s += 2;
+ switch (s[0]) {
+ case '-':
+ s++;
+ break;
+ case '\\':
+ switch (s[1]) {
+ case '&':
+ case '-':
+ case 'e':
+ s += 2;
+ break;
+ default:
+ break;
+ }
+ break;
+ default:
+ break;
+ }
}
/*