From 63d6e1ffa198d729245eaf51641bfec09ee5e2c4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Peter=20M=C3=BCnster?= Date: Wed, 18 Aug 2021 02:02:02 +0200 Subject: [PATCH] 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. --- lisp/image-dired.el | 5 +++-- 1 file 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. -- 2.39.2