Fix: (link) Don't match against null groups

e.g. in a source block containing Bash shell code like:

  [[ -z $data ]]

The matched groups could be null, since it's not actually an Org link,
so calling STRING-MATCH-P on them would signal an error.

Reported-by: John Wiegley <jwiegley@gmail.com>
This commit is contained in:
Adam Porter 2024-11-06 21:20:30 -06:00
parent 3cfc77d2ff
commit 0e68cc9fac
3 changed files with 60 additions and 51 deletions

View file

@ -1626,11 +1626,15 @@ any link is found."
(or (null description)
(string-match-p description (match-string org-ql-link-description-group)))))
(_ (if (and description target)
(and (string-match-p target (match-string 1))
(string-match-p description (match-string org-ql-link-description-group)))
(or (string-match-p description-or-target (match-string 1))
(string-match-p description-or-target
(match-string org-ql-link-description-group)))))))))
(and (and (match-string 1)
(string-match-p target (match-string 1)))
(and (match-string org-ql-link-description-group)
(string-match-p description (match-string org-ql-link-description-group))))
(or (and (match-string 1)
(string-match-p description-or-target (match-string 1)))
(and (match-string org-ql-link-description-group)
(string-match-p description-or-target
(match-string org-ql-link-description-group))))))))))
(org-ql-defpred (rifle smart) (&rest strings)
"Return non-nil if each of strings is found in the entry or its outline path.