summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2021-01-19 23:33:49 -0500
committerJune McEnroe <june@causal.agency>2021-01-19 23:38:11 -0500
commit822f710ade459954384d9f6980c156b73c5ad198 (patch)
treed2c110c58fd73d9d6bc43dcebd9612402daa0e21
parentEscape \ and / in mtags search patterns (diff)
downloadsrc-822f710ade459954384d9f6980c156b73c5ad198.tar.gz
src-822f710ade459954384d9f6980c156b73c5ad198.zip
Prefer tag matches not preceded by [[:alnum:]]
Otherwise the "id" in "void" matches for "void id".
Diffstat (limited to '')
-rw-r--r--bin/htagml.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/bin/htagml.c b/bin/htagml.c
index 3d555dc8..a3a4101d 100644
--- a/bin/htagml.c
+++ b/bin/htagml.c
@@ -182,6 +182,9 @@ int main(int argc, char *argv[]) {
 
 		size_t mlen = strlen(tag->tag);
 		char *match = (pipe ? hstrstr : strstr)(buf, tag->tag);
+		while (match > buf && isalnum(match[-1])) {
+			match = (pipe ? hstrstr : strstr)(&match[mlen], tag->tag);
+		}
 		if (!match && tag->tag[0] == 'M') {
 			mlen = 4;
 			match = (pipe ? hstrstr : strstr)(buf, "main");