emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 57cc2e9: * lisp/wdired.el (wdired--before-change-fn): Wrap body i


From: Juri Linkov
Subject: master 57cc2e9: * lisp/wdired.el (wdired--before-change-fn): Wrap body in save-match-data.
Date: Fri, 23 Apr 2021 12:52:42 -0400 (EDT)

branch: master
commit 57cc2e94f724d11838f4a90827a26ea187bae675
Author: Juri Linkov <juri@linkov.net>
Commit: Juri Linkov <juri@linkov.net>

    * lisp/wdired.el (wdired--before-change-fn): Wrap body in save-match-data.
    
    Suggested by Michael Heerdegen <michael_heerdegen@web.de> (bug#14013)
---
 lisp/wdired.el | 41 +++++++++++++++++++++--------------------
 1 file changed, 21 insertions(+), 20 deletions(-)

diff --git a/lisp/wdired.el b/lisp/wdired.el
index 05b0a0c..35211bc 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."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]