]> git.cameronkatri.com Git - mandoc.git/commitdiff
skip leading \& and \e in tags
authorIngo Schwarze <schwarze@openbsd.org>
Tue, 8 Nov 2016 15:57:28 +0000 (15:57 +0000)
committerIngo Schwarze <schwarze@openbsd.org>
Tue, 8 Nov 2016 15:57:28 +0000 (15:57 +0000)
tag.c

diff --git a/tag.c b/tag.c
index c517e3abf916045b083cef7911f77a62f604f728..fd9f2a1137c90a08789f0f7dc0636e2729924554 100644 (file)
--- a/tag.c
+++ b/tag.c
@@ -1,4 +1,4 @@
-/*     $Id: tag.c,v 1.14 2016/11/08 15:28:17 schwarze Exp $ */
+/*     $Id: tag.c,v 1.15 2016/11/08 15:57:28 schwarze Exp $ */
 /*
  * Copyright (c) 2015, 2016 Ingo Schwarze <schwarze@openbsd.org>
  *
@@ -130,7 +130,13 @@ tag_put(const char *s, int prio, size_t line)
        size_t                   len;
        unsigned int             slot;
 
-       if (tag_files.tfd <= 0 || strchr(s, ' ') != NULL)
+       /* Sanity checks. */
+
+       if (tag_files.tfd <= 0)
+               return;
+       if (s[0] == '\\' && (s[1] == '&' || s[1] == 'e'))
+               s += 2;
+       if (*s == '\0' || strchr(s, ' ') != NULL)
                return;
 
        slot = ohash_qlookup(&tag_data, s);