emacs-elpa-diffs
[Top][All Lists]
Advanced

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

[elpa] externals/cape a6db83b1bd 135/146: Improve repair function


From: ELPA Syncer
Subject: [elpa] externals/cape a6db83b1bd 135/146: Improve repair function
Date: Sun, 9 Jan 2022 20:57:49 -0500 (EST)

branch: externals/cape
commit a6db83b1bddd86d6ff7e4bd9501c8c26ecfcd971
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>

    Improve repair function
---
 cape.el | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/cape.el b/cape.el
index 79652347cb..d1d525edd1 100644
--- a/cape.el
+++ b/cape.el
@@ -1017,16 +1017,18 @@ case sensitive instead."
 ;;;###autoload
 (defun cape-repair-misbehaving-capf (capf)
   "Repair a misbehaving CAPF."
-  (catch 'cape--capf-result
-    (save-mark-and-excursion
-      (atomic-change-group
-        (throw 'cape--capf-result
-               (pcase (funcall capf)
-                 ((and res `(,beg ,end ,_table . ,_plist)
-                       (guard (integer-or-marker-p beg))
-                       (guard (integer-or-marker-p end)))
-                  (ignore beg end)
-                  res)))))))
+  (save-mark-and-excursion
+    (let ((beg (copy-marker (point)))
+          (end (copy-marker (point) t)))
+    (unwind-protect
+        (pcase (funcall capf)
+          ((and res `(,beg ,end ,_table . ,_plist)
+                (guard (integer-or-marker-p beg))
+                (guard (integer-or-marker-p end)))
+           (ignore beg end)
+           res))
+      (when (/= beg end)
+        (delete-region beg end))))))
 
 ;;;###autoload
 (defun cape-interactive-capf (capf)



reply via email to

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