forked from mirrors/org-mode
org-crypt: fix decrypt outline display bug
* org-crypt.el (org-decrypt-entry): Delete \n on top level heading. This avoids a display bug showing the heading outlined where the text is not since it does not have the outline property. Restore subtree visibility state after decryption. Cc: John Wiegley <johnw@gnu.org> Cc: Peter Jones <pjones@pmade.com> Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
parent
bf46c32aad
commit
86bb47fcac
|
@ -140,23 +140,32 @@ This setting can also be overridden in the CRYPTKEY property."
|
||||||
(unless (org-before-first-heading-p)
|
(unless (org-before-first-heading-p)
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(org-back-to-heading t)
|
(org-back-to-heading t)
|
||||||
(forward-line)
|
(let ((heading-point (point))
|
||||||
(when (looking-at "-----BEGIN PGP MESSAGE-----")
|
(heading-was-invisible-p
|
||||||
(let* ((beg (point))
|
(save-excursion
|
||||||
(end (save-excursion
|
(outline-end-of-heading)
|
||||||
(search-forward "-----END PGP MESSAGE-----")
|
(outline-invisible-p))))
|
||||||
(forward-line)
|
(forward-line)
|
||||||
(point)))
|
(when (looking-at "-----BEGIN PGP MESSAGE-----")
|
||||||
(epg-context (epg-make-context nil t t))
|
(let* ((end (save-excursion
|
||||||
(decrypted-text
|
(search-forward "-----END PGP MESSAGE-----")
|
||||||
(decode-coding-string
|
(forward-line)
|
||||||
(epg-decrypt-string
|
(point)))
|
||||||
epg-context
|
(epg-context (epg-make-context nil t t))
|
||||||
(buffer-substring-no-properties beg end))
|
(decrypted-text
|
||||||
'utf-8)))
|
(decode-coding-string
|
||||||
(delete-region beg end)
|
(epg-decrypt-string
|
||||||
(insert decrypted-text)
|
epg-context
|
||||||
nil)))))
|
(buffer-substring-no-properties (point) end))
|
||||||
|
'utf-8)))
|
||||||
|
;; Delete region starting just before point, because the
|
||||||
|
;; outline property starts at the \n of the heading.
|
||||||
|
(delete-region (1- (point)) end)
|
||||||
|
(insert "\n" decrypted-text)
|
||||||
|
(when heading-was-invisible-p
|
||||||
|
(goto-char heading-point)
|
||||||
|
(org-flag-subtree t))
|
||||||
|
nil))))))
|
||||||
|
|
||||||
(defun org-encrypt-entries ()
|
(defun org-encrypt-entries ()
|
||||||
"Encrypt all top-level entries in the current buffer."
|
"Encrypt all top-level entries in the current buffer."
|
||||||
|
|
Loading…
Reference in New Issue