universal ctags "abuses" the tagaddress, which can be an arbitrary
vi command even if mg assumes it's just a search pattern, to store
metadata after a "vi comment".
While it could be worthwile to support the uctags annotations this
just ignores them so the search patterns work again.
The diff is from Joachim Wiberg "troglobit" mg.
ok tb@
-/* $OpenBSD: tags.c,v 1.27 2023/03/29 19:09:04 op Exp $ */
+/* $OpenBSD: tags.c,v 1.28 2024/06/14 13:59:26 op Exp $ */
/*
* This file is in the public domain.
addctag(char *s)
{
struct ctag *t = NULL;
- char *l;
+ char *l, *c;
if ((t = malloc(sizeof(struct ctag))) == NULL) {
dobeep();
*l++ = '\0';
if (*l == '\0')
goto cleanup;
+
+ /*
+ * Newer universal ctags format abuse vi comments in the
+ * pattern to store extra metadata. Since we don't support it
+ * remove it so the pattern is not mangled.
+ */
+ if ((c = strstr(l, ";\"")) != NULL)
+ *c = '\0';
+
t->pat = strip(l, strlen(l));
if (RB_INSERT(tagtree, &tags, t) != NULL) {
free(t);