diff options
author | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2017-01-01 10:26:22 +0100 |
---|---|---|
committer | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2017-01-01 10:34:36 +0100 |
commit | dd727cf0cb5319521f71d389a39dc3def541b2ef (patch) | |
tree | e10a9650043b2e009f6f8b8f4d5d014bf97f76f6 | |
parent | dff9cf9c80748236d2fa3cb5da11c2c94e944b03 (diff) | |
download | org-mode-dd727cf0cb5319521f71d389a39dc3def541b2ef.tar.gz |
org-crypt: Fix data loss when providing an empty key
* lisp/org-crypt.el (org-encrypt-entry): Insert original text back
upon encryption failure.
Reported-by: fxiny <wtimew@libero.it>
<http://permalink.gmane.org/gmane.emacs.orgmode/111115>
-rw-r--r-- | lisp/org-crypt.el | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lisp/org-crypt.el b/lisp/org-crypt.el index 1039996..412aeaf 100644 --- a/lisp/org-crypt.el +++ b/lisp/org-crypt.el @@ -183,7 +183,11 @@ See `org-crypt-disable-auto-save'." (org-end-of-subtree t t) (org-back-over-empty-lines) (let ((contents (delete-and-extract-region beg (point)))) - (insert (org-encrypt-string contents crypt-key))) + (condition-case err + (insert (org-encrypt-string contents crypt-key)) + ;; If encryption failed, make sure to insert back entry + ;; contents in the buffer. + (error (insert contents) (error (nth 1 err))))) (when folded (goto-char start-heading) (outline-hide-subtree)) |