Make backslash escape "-" in property matches
* lisp/org.el (org-make-tags-matcher): Read "\\-" as "-" in the tags/property matcher. Ilya Shlyakhter writes: > When doing an agenda tags match for tags or properties with dashes in > their name, the dashes become negation operators: "my-prop>0" means > "entries that have the tag 'my' and do not have a positive property > 'prop'", rather than "entries that have a positive property > 'my-prop'". Is there a way to escape the dashes to get the latter > meaning?
This commit is contained in:
parent
294d398544
commit
19b0e03f32
|
@ -12432,7 +12432,7 @@ also TODO lines."
|
|||
|
||||
;; Parse the string and create a lisp form
|
||||
(let ((match0 match)
|
||||
(re (org-re "^&?\\([-+:]\\)?\\({[^}]+}\\|LEVEL\\([<=>]\\{1,2\\}\\)\\([0-9]+\\)\\|\\([[:alnum:]_]+\\)\\([<>=]\\{1,2\\}\\)\\({[^}]+}\\|\"[^\"]*\"\\|-?[.0-9]+\\(?:[eE][-+]?[0-9]+\\)?\\)\\|[[:alnum:]_@]+\\)"))
|
||||
(re (org-re "^&?\\([-+:]\\)?\\({[^}]+}\\|LEVEL\\([<=>]\\{1,2\\}\\)\\([0-9]+\\)\\|\\(\\(?:[[:alnum:]_]+\\(?:\\\\-\\)*\\)+\\)\\([<>=]\\{1,2\\}\\)\\({[^}]+}\\|\"[^\"]*\"\\|-?[.0-9]+\\(?:[eE][-+]?[0-9]+\\)?\\)\\|[[:alnum:]_@]+\\)"))
|
||||
minus tag mm
|
||||
tagsmatch todomatch tagsmatcher todomatcher kwd matcher
|
||||
orterms term orlist re-p str-p level-p level-op time-p
|
||||
|
@ -12460,7 +12460,9 @@ also TODO lines."
|
|||
(setq rest (substring term (match-end 0))
|
||||
minus (and (match-end 1)
|
||||
(equal (match-string 1 term) "-"))
|
||||
tag (match-string 2 term)
|
||||
tag (save-match-data (replace-regexp-in-string
|
||||
"\\\\-" "-"
|
||||
(match-string 2 term)))
|
||||
re-p (equal (string-to-char tag) ?{)
|
||||
level-p (match-end 4)
|
||||
prop-p (match-end 5)
|
||||
|
|
Loading…
Reference in New Issue