summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Münster <pm@a16n.net>2021-08-18 02:02:02 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2021-08-19 15:03:23 +0200
commit63d6e1ffa198d729245eaf51641bfec09ee5e2c4 (patch)
treeac0ac74511924c6bbcd3c68c0c9dcff5ad0fd7b6
parent101b3c81b657198ebaf9abdaa0875d1b09d66192 (diff)
downloademacs-63d6e1ffa198d729245eaf51641bfec09ee5e2c4.tar.gz
Avoid problems when one tag/file is a substring of another
* lisp/image-dired.el (image-dired-remove-tag): End of filename is bound by ";" and end of tag is bound by ";" or end of line.
-rw-r--r--lisp/image-dired.el5
1 files changed, 3 insertions, 2 deletions
diff --git a/lisp/image-dired.el b/lisp/image-dired.el
index 542701470e9..97fbd7bb1fb 100644
--- a/lisp/image-dired.el
+++ b/lisp/image-dired.el
@@ -1111,11 +1111,12 @@ FILE-TAGS is an alist in the following form:
(error "Files must be a string or a list of strings!")))
(dolist (file files)
(goto-char (point-min))
- (when (search-forward-regexp (format "^%s" file) nil t)
+ (when (search-forward-regexp (format "^%s;" file) nil t)
(end-of-line)
(setq end (point))
(beginning-of-line)
- (when (search-forward-regexp (format "\\(;%s\\)" tag) end t)
+ (when (search-forward-regexp
+ (format "\\(;%s\\)\\($\\|;\\)" tag) end t)
(delete-region (match-beginning 1) (match-end 1))
;; Check if file should still be in the database. If
;; it has no tags or comments, it will be removed.