emacs-orgmode
[Top][All Lists]
Advanced

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

[O] [PATCH] org-crypt: when running org-decrypt-entry, only run auto-sav


From: Pieter Praet
Subject: [O] [PATCH] org-crypt: when running org-decrypt-entry, only run auto-save-mode check if on an encrypted entry
Date: Sun, 28 Aug 2011 15:46:47 +0200

* lisp/org-crypt.el (org-crypt-check-auto-save): New function, see next change.
* lisp/org-crypt.el (org-decrypt-entry): Break the auto-save-mode check out
  into a separate function, and call it at a later point, to assure it only
  runs when visiting an encrypted entry.

Currently `org-decrypt-entry' is doing the auto-save-mode check whenever
it's run, regardless of context, while this only makes sense when run on
an entry which is actually encrypted (or looks like it, at least).

Signed-off-by: Pieter Praet <address@hidden>
---

 lisp/org-crypt.el |   54 +++++++++++++++++++++++++++++-----------------------
 1 files changed, 30 insertions(+), 24 deletions(-)

diff --git a/lisp/org-crypt.el b/lisp/org-crypt.el
index 5991192..f764404 100644
--- a/lisp/org-crypt.el
+++ b/lisp/org-crypt.el
@@ -116,6 +116,35 @@ nil      : Leave auto-save-mode enabled.
                  (const :tag "Ask"     ask)
                  (const :tag "Encrypt" encrypt)))
 
+(defun org-crypt-check-auto-save ()
+  "Check whether auto-save-mode is enabled for the current buffer.
+
+`auto-save-mode' may cause leakage when decrypting entries, so
+check whether it's enabled, and decide what to do about it.
+
+See `org-crypt-disable-auto-save'."
+  (when buffer-auto-save-file-name
+    (cond
+     ((or
+       (eq org-crypt-disable-auto-save t)
+       (and
+       (eq org-crypt-disable-auto-save 'ask)
+       (y-or-n-p "org-decrypt: auto-save-mode may cause leakage. Disable it 
for current buffer? ")))
+      (message (concat "org-decrypt: Disabling auto-save-mode for " (or 
(buffer-file-name) (current-buffer))))
+      ; The argument to auto-save-mode has to be "-1", since
+      ; giving a "nil" argument toggles instead of disabling.
+      (auto-save-mode -1))
+     ((eq org-crypt-disable-auto-save nil)
+      (message "org-decrypt: Decrypting entry with auto-save-mode enabled. 
This may cause leakage."))
+     ((eq org-crypt-disable-auto-save 'encrypt)
+      (message "org-decrypt: Enabling re-encryption on auto-save.")
+      (add-hook 'auto-save-hook
+               (lambda ()
+                 (message "org-crypt: Re-encrypting all decrypted entries due 
to auto-save.")
+                 (org-encrypt-entries))
+               nil t))
+     (t nil))))
+
 (defun org-crypt-key-for-heading ()
   "Return the encryption key for the current heading."
   (save-excursion
@@ -164,30 +193,6 @@ nil      : Leave auto-save-mode enabled.
 (defun org-decrypt-entry ()
   "Decrypt the content of the current headline."
   (interactive)
-
-  ; auto-save-mode may cause leakage, so check whether it's enabled.
-  (when buffer-auto-save-file-name
-    (cond
-     ((or
-       (eq org-crypt-disable-auto-save t)
-       (and
-        (eq org-crypt-disable-auto-save 'ask)
-        (y-or-n-p "org-decrypt: auto-save-mode may cause leakage. Disable it 
for current buffer? ")))
-      (message (concat "org-decrypt: Disabling auto-save-mode for " (or 
(buffer-file-name) (current-buffer))))
-      ; The argument to auto-save-mode has to be "-1", since
-      ; giving a "nil" argument toggles instead of disabling.
-      (auto-save-mode -1))
-     ((eq org-crypt-disable-auto-save nil)
-      (message "org-decrypt: Decrypting entry with auto-save-mode enabled. 
This may cause leakage."))
-     ((eq org-crypt-disable-auto-save 'encrypt)
-      (message "org-decrypt: Enabling re-encryption on auto-save.")
-      (add-hook 'auto-save-hook
-                (lambda ()
-                  (message "org-crypt: Re-encrypting all decrypted entries due 
to auto-save.")
-                  (org-encrypt-entries))
-                nil t))
-     (t nil)))
-
   (require 'epg)
   (unless (org-before-first-heading-p)
     (save-excursion
@@ -199,6 +204,7 @@ nil      : Leave auto-save-mode enabled.
               (outline-invisible-p))))
        (forward-line)
        (when (looking-at "-----BEGIN PGP MESSAGE-----")
+         (org-crypt-check-auto-save)
          (let* ((end (save-excursion
                        (search-forward "-----END PGP MESSAGE-----")
                        (forward-line)
-- 
1.7.5.4




reply via email to

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