From 339a3191c8ced69f3339297a88d8b4503c78d86e Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Tue, 12 Jan 2021 23:12:22 -0500 Subject: Avoid matching tag text inside HTML elements --- bin/htagml.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'bin') diff --git a/bin/htagml.c b/bin/htagml.c index 0e14df77..f94e7bfc 100644 --- a/bin/htagml.c +++ b/bin/htagml.c @@ -61,6 +61,17 @@ static size_t escape(bool esc, const char *ptr, size_t len) { return len; } +static char *hstrstr(char *haystack, char *needle) { + while (haystack) { + char *elem = strchr(haystack, '<'); + char *match = strstr(haystack, needle); + if (!match) return NULL; + if (!elem || match < elem) return match; + haystack = strchr(elem, '>'); + } + return NULL; +} + int main(int argc, char *argv[]) { bool pre = false; bool pipe = false; @@ -157,10 +168,10 @@ int main(int argc, char *argv[]) { } char *text = tag->tag; - char *match = strstr(buf, text); + char *match = (pipe ? hstrstr(buf, text) : strstr(buf, text)); if (!match && tag->tag[0] == 'M') { text = "main"; - match = strstr(buf, text); + match = (pipe ? hstrstr(buf, text) : strstr(buf, text)); } if (match) escape(!pipe, buf, match - buf); printf("diff
path: root/bin/xx.c (unfollow)
Commit message (Expand)Author
2019-01-14Add cash.7 READMEJune McEnroe
2019-01-14Document old=new argument of fc -sJune McEnroe
2019-01-14Allow replacing empty string with fc old=newJune McEnroe
2019-01-13Enable warnings in libeditJune McEnroe
2019-01-13Show full path in RPS1June McEnroe
2019-01-13Shorten $HOME to ~ in prompt expansionJune McEnroe
2019-01-13Document PSlitJune McEnroe
2019-01-13Document PS0June McEnroe
2019-01-13Set PS0 in cashJune McEnroe
2019-01-13Add PS0June McEnroe
2019-01-13Change default ENV from cashrc to env.shJune McEnroe
2019-01-13Use colours in cash promptsJune McEnroe
2019-01-12Set PSlit like NetBSD shJune McEnroe
2019-01-12Install gnupg2 from pkgsrc and symlink gpgJune McEnroe
2019-01-12Reference cash builtin man pages in cash.1 SEE ALSOJune McEnroe
2019-01-12Restore cash builtin man page datesJune McEnroe
2019-01-12Use local libeditJune McEnroe
2019-01-12Replace libedit MakefileJune McEnroe
2019-01-11Import /usr/src/lib/libedit from NetBSD 8.0June McEnroe
2019-01-11Add PSlit for prompt escapesJune McEnroe
2019-01-11Don't make depend automaticallyJune McEnroe