Allow using an encrypted headline as a capture target.

* org-capture.el (org-capture-finalize): Maybe re-encrypt
the target headline if it was decrypted.
(org-capture-set-target-location): Maybe decrypt the target
headline.

* org-crypt.el (org-at-encrypted-entry-p): New function.

Thanks to Guilherme Gondim for suggesting this.
This commit is contained in:
Bastien Guerry 2012-09-25 16:32:52 +02:00
parent 26b9e71f26
commit ac6409feae
2 changed files with 22 additions and 3 deletions

View File

@ -698,6 +698,11 @@ captured item after finalizing."
;; Run the hook
(run-hooks 'org-capture-before-finalize-hook))
(when (org-capture-get :decrypted)
(save-excursion
(goto-char (org-capture-get :decrypted))
(org-encrypt-entry)))
;; Kill the indirect buffer
(save-buffer)
(let ((return-wconf (org-capture-get :return-to-wconf 'local))
@ -800,8 +805,9 @@ already gone. Any prefix argument will be passed to the refile command."
(org-capture-put :initial-target-position (point)))
(defun org-capture-set-target-location (&optional target)
"Find target buffer and position and store then in the property list."
(let ((target-entry-p t))
"Find TARGET buffer and position.
Store them in the capture property list."
(let ((target-entry-p t) decrypted-hl-pos)
(setq target (or target (org-capture-get :target)))
(save-excursion
(cond
@ -922,8 +928,14 @@ already gone. Any prefix argument will be passed to the refile command."
(t (error "Invalid capture target specification")))
(when (org-at-encrypted-entry-p)
(org-decrypt-entry)
(setq decrypted-hl-pos
(save-excursion (and (org-back-to-heading t) (point)))))
(org-capture-put :buffer (current-buffer) :pos (point)
:target-entry-p target-entry-p))))
:target-entry-p target-entry-p
:decrypted decrypted-hl-pos))))
(defun org-capture-expand-file (file)
"Expand functions and symbols for FILE.

View File

@ -252,6 +252,13 @@ See `org-crypt-disable-auto-save'."
(cdr (org-make-tags-matcher org-crypt-tag-matcher))
todo-only)))
(defun org-at-encrypted-entry-p ()
"Is the current entry encrypted?"
(save-excursion
(org-back-to-heading t)
(search-forward "-----BEGIN PGP MESSAGE-----"
(save-excursion (org-end-of-subtree t)) t)))
(defun org-crypt-use-before-save-magic ()
"Add a hook to automatically encrypt entries before a file is saved to disk."
(add-hook