summaryrefslogtreecommitdiff
path: root/lisp/wdired.el
diff options
context:
space:
mode:
authorJuri Linkov <juri@linkov.net>2021-04-23 19:52:22 +0300
committerJuri Linkov <juri@linkov.net>2021-04-23 19:52:22 +0300
commit57cc2e94f724d11838f4a90827a26ea187bae675 (patch)
tree3cca304959e596b6553a7b36b8ee8504681439b2 /lisp/wdired.el
parentbeb3d04698aa625aafbb04167ef45ac5e371cae2 (diff)
downloademacs-57cc2e94f724d11838f4a90827a26ea187bae675.tar.gz
* lisp/wdired.el (wdired--before-change-fn): Wrap body in save-match-data.
Suggested by Michael Heerdegen <michael_heerdegen@web.de> (bug#14013)
Diffstat (limited to 'lisp/wdired.el')
-rw-r--r--lisp/wdired.el41
1 files changed, 21 insertions, 20 deletions
diff --git a/lisp/wdired.el b/lisp/wdired.el
index 05b0a0cfb2b..35211bcf86b 100644
--- a/lisp/wdired.el
+++ b/lisp/wdired.el
@@ -295,27 +295,28 @@ or \\[wdired-abort-changes] to abort changes")))
(put 'wdired--self-insert 'delete-selection 'delete-selection-uses-region-p)
(defun wdired--before-change-fn (beg end)
- (save-excursion
- ;; Make sure to process entire lines.
- (goto-char end)
- (setq end (line-end-position))
- (goto-char beg)
- (forward-line 0)
-
- (while (< (point) end)
- (unless (wdired--line-preprocessed-p)
+ (save-match-data
+ (save-excursion
+ ;; Make sure to process entire lines.
+ (goto-char end)
+ (setq end (line-end-position))
+ (goto-char beg)
+ (forward-line 0)
+
+ (while (< (point) end)
+ (unless (wdired--line-preprocessed-p)
+ (with-silent-modifications
+ (put-text-property (point) (1+ (point)) 'front-sticky t)
+ (wdired--preprocess-files)
+ (when wdired-allow-to-change-permissions
+ (wdired--preprocess-perms))
+ (when (fboundp 'make-symbolic-link)
+ (wdired--preprocess-symlinks))))
+ (forward-line))
+ (when (eobp)
(with-silent-modifications
- (put-text-property (point) (1+ (point)) 'front-sticky t)
- (wdired--preprocess-files)
- (when wdired-allow-to-change-permissions
- (wdired--preprocess-perms))
- (when (fboundp 'make-symbolic-link)
- (wdired--preprocess-symlinks))))
- (forward-line))
- (when (eobp)
- (with-silent-modifications
- ;; Is this good enough? Assumes no extra white lines from dired.
- (put-text-property (1- (point-max)) (point-max) 'read-only t)))))
+ ;; Is this good enough? Assumes no extra white lines from dired.
+ (put-text-property (1- (point-max)) (point-max) 'read-only t))))))
(defun wdired-isearch-filter-read-only (beg end)
"Skip matches that have a read-only property."