[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/undo-fu 0c34b6747e 52/82: Cleanup: replace cl-letf with ma
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/undo-fu 0c34b6747e 52/82: Cleanup: replace cl-letf with macro that temporarily sets advice |
Date: |
Thu, 7 Jul 2022 12:04:53 -0400 (EDT) |
branch: elpa/undo-fu
commit 0c34b6747eb633652343cad76e6f1051cf56d6e9
Author: Campbell Barton <ideasman42@gmail.com>
Commit: Campbell Barton <ideasman42@gmail.com>
Cleanup: replace cl-letf with macro that temporarily sets advice
Removes cl-lib use and avoids dealing with function symbol swapping.
---
undo-fu.el | 28 ++++++++++++++++++----------
1 file changed, 18 insertions(+), 10 deletions(-)
diff --git a/undo-fu.el b/undo-fu.el
index dbd2e771a8..3d355df807 100644
--- a/undo-fu.el
+++ b/undo-fu.el
@@ -100,20 +100,28 @@ Instead, explicitly call `undo-fu-disable-checkpoint'."
(setq undo-fu--in-region nil)
(undo-fu--checkpoint-unset))
+(defmacro undo-fu--with-advice (fn-orig where fn-advice &rest body)
+ "Execute BODY with advice temporarily enabled."
+ `
+ (let ((fn-advice-var ,fn-advice))
+ (unwind-protect
+ (progn
+ (advice-add ,fn-orig ,where fn-advice-var)
+ ,@body)
+ (advice-remove ,fn-orig fn-advice-var))))
+
(defmacro undo-fu--with-message-suffix (suffix &rest body)
"Add text after the message output.
-Argument SUFFIX is the text to add at the end of the message.
+Argument SUFFIX is the text to add at the start of the message.
Optional argument BODY runs with the message suffix."
(declare (indent 1))
- (let ((message-orig (cl-gensym "--message-suffix-")))
- `
- (cl-letf*
- (
- (,message-orig (symbol-function 'message))
- ((symbol-function 'message)
- (lambda (arg &rest args)
- (apply ,message-orig (append (list (concat arg "%s")) args (list
,suffix))))))
- ,@body)))
+ `
+ (undo-fu--with-advice
+ 'message
+ :around
+ (lambda (fn-orig arg &rest args)
+ (apply fn-orig (append (list (concat arg "%s")) args (list ,suffix))))
+ ,@body))
(defun undo-fu--undo-enabled-or-error ()
"Raise a user error when undo is disabled."
- [nongnu] elpa/undo-fu 2cba1903f3 45/82: Cleanup: improve 'undo-fu-disable-checkpoint' messages, (continued)
- [nongnu] elpa/undo-fu 2cba1903f3 45/82: Cleanup: improve 'undo-fu-disable-checkpoint' messages, ELPA Syncer, 2022/07/07
- [nongnu] elpa/undo-fu 32674fc7b0 47/82: Release 0.3, ELPA Syncer, 2022/07/07
- [nongnu] elpa/undo-fu c0806c1903 60/82: Update changelog, ELPA Syncer, 2022/07/07
- [nongnu] elpa/undo-fu aae7ec9784 49/82: Cleanup: use mapc for multiple calls to evil-declare-not-repeat, ELPA Syncer, 2022/07/07
- [nongnu] elpa/undo-fu f9c39c248c 81/82: readme: update to use evil-modes undo-fu support, ELPA Syncer, 2022/07/07
- [nongnu] elpa/undo-fu 97e7f4f6e0 82/82: Change URL to codeberg, ELPA Syncer, 2022/07/07
- [nongnu] elpa/undo-fu fa245fd3d0 01/82: Initial functionality., ELPA Syncer, 2022/07/07
- [nongnu] elpa/undo-fu 8daa0b5c46 05/82: Correct docstrings, ELPA Syncer, 2022/07/07
- [nongnu] elpa/undo-fu 792d27b8a1 16/82: Lower version requirement to 24.3, ELPA Syncer, 2022/07/07
- [nongnu] elpa/undo-fu 1ecbe826ae 20/82: Fix undo-fu-only-redo-all counting incorrectly, ELPA Syncer, 2022/07/07
- [nongnu] elpa/undo-fu 0c34b6747e 52/82: Cleanup: replace cl-letf with macro that temporarily sets advice,
ELPA Syncer <=
- [nongnu] elpa/undo-fu 49cca61343 56/82: Fix unconstrained redo trapping the user at the end of the chain, ELPA Syncer, 2022/07/07
- [nongnu] elpa/undo-fu 25e25ec4df 48/82: Cleanup: typos, ELPA Syncer, 2022/07/07
- [nongnu] elpa/undo-fu f4db4c9b98 62/82: Update readme, ELPA Syncer, 2022/07/07
- [nongnu] elpa/undo-fu e81c8da441 73/82: Cleanup: use brief SPDX license, ELPA Syncer, 2022/07/07
- [nongnu] elpa/undo-fu d3d50ad00d 67/82: Cleanup: quiet docstring width warning, ELPA Syncer, 2022/07/07
- [nongnu] elpa/undo-fu ab8bc10e42 72/82: Cleanup: minor wording changes, ELPA Syncer, 2022/07/07
- [nongnu] elpa/undo-fu 7430fa58f1 75/82: Fix unconstrained undo when the user has undo-no-redo enabled, ELPA Syncer, 2022/07/07
- [nongnu] elpa/undo-fu 9159f46b70 78/82: Cleanup: prefer `cond` to `if`, ELPA Syncer, 2022/07/07
- [nongnu] elpa/undo-fu 756a4846b3 06/82: Remove redundant error handling case, ELPA Syncer, 2022/07/07
- [nongnu] elpa/undo-fu e49ee5bdc3 10/82: Show unconstrained suffix for unconstrained undo/redo, ELPA Syncer, 2022/07/07