From: Peter Münster Date: Wed, 18 Aug 2021 00:02:02 +0000 (+0200) Subject: Avoid problems when one tag/file is a substring of another X-Git-Tag: emacs-28.0.90~1434 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=63d6e1ffa198d729245eaf51641bfec09ee5e2c4;p=emacs.git 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. --- 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.