branch: elpa/undo-fu-session
commit 445c2b7b7ac8cc57698621ae7f09b293ee23989f
Author: Campbell Barton <ideasma...@gmail.com>
Commit: Campbell Barton <ideasma...@gmail.com>

    Correct the macro from last commit
    
    This could have leaft auto-compression-mode disabled.
---
 undo-fu-session.el | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/undo-fu-session.el b/undo-fu-session.el
index 3bfc5a4e5f..b6d7aa49f6 100755
--- a/undo-fu-session.el
+++ b/undo-fu-session.el
@@ -128,15 +128,19 @@ Enforcing removes the oldest files."
 (defmacro undo-fu-session--with-auto-compression-mode (&rest body)
   "Evaluate BODY with automatic file compression and uncompression enabled."
   (declare (indent 0))
-  (let ((already-installed (make-symbol "already-installed")))
-    `(let ((,already-installed (jka-compr-installed-p)))
+  (let ((already-installed (make-symbol "already-installed"))
+        (already-installed-value (make-symbol "already-installed-value")))
+    `(let ((,already-installed (jka-compr-installed-p))
+           (,already-installed-value auto-compression-mode))
        (unwind-protect
            (progn
              (unless ,already-installed
                (auto-compression-mode 1))
              ,@body)
-         (unless ,already-installed
-           (auto-compression-mode -1))))))
+         (unless (or ,already-installed)
+           (auto-compression-mode -1))
+         ;; Restore the initial state (even if it's inconsistent).
+         (setq auto-compression-mode ,already-installed-value)))))
 
 
 ;; ---------------------------------------------------------------------------

Reply via email to