branch: externals/cape
commit a6db83b1bddd86d6ff7e4bd9501c8c26ecfcd971
Author: Daniel Mendler <[email protected]>
Commit: Daniel Mendler <[email protected]>
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)