From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pieter Praet Subject: Re: [PATCH] org-crypt: only warn about auto-save-mode when running org-decrypt Date: Sun, 26 Jun 2011 08:38:12 +0200 Message-ID: <8762ntjdwr.fsf@praet.org> References: <87hb7febzu.fsf@gnu.org> <1308949422-30288-1-git-send-email-pieter@praet.org> <11546.1308952204@alphaville.dokosmarshall.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from eggs.gnu.org ([140.186.70.92]:46640) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qaiz7-0007ZF-Ag for emacs-orgmode@gnu.org; Sun, 26 Jun 2011 02:38:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qaiz4-0003e2-WF for emacs-orgmode@gnu.org; Sun, 26 Jun 2011 02:38:20 -0400 Received: from mail-wy0-f169.google.com ([74.125.82.169]:34170) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qaiz3-0003dA-Uq for emacs-orgmode@gnu.org; Sun, 26 Jun 2011 02:38:18 -0400 Received: by wyg36 with SMTP id 36so3207912wyg.0 for ; Sat, 25 Jun 2011 23:38:16 -0700 (PDT) In-Reply-To: <11546.1308952204@alphaville.dokosmarshall.org> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Cc: Dave Abrahams , Bastien , nicholas.dokos@hp.com, emacs-orgmode@gnu.org On Fri, 24 Jun 2011 17:50:04 -0400, Nick Dokos wrote: > Pieter Praet wrote: > > > As auto-save-mode can only cause leakage after org-decrypt has been run, > > there's no need to check for it (and potentially cause annoyance) so early. > > > > Unfortunately, auto-save-mode doesn't set a buffer-local var to indicate > > whether it's enabled for the current buffer (checking > > `buffer-auto-save-file-name' has proven to be unreliable), so we can > > only check whether it's enabled globally, using `auto-save-default'. > > > > That's very nice, but I think you can go one step further: Why not turn > auto-save-mode off for the buffer when org-decrypt is called? With a > warning that says so and says why, of course. Ideally, we'd have a defcustom `org-crypt-auto-save' with the following options: - 'ask : Ask the user whether or not to decrypt the entry. - 'disable : Disable auto-save-mode for the current buffer before decrypting. - 'ignore : Decrypt the entry regardless. - 'encrypt : Re-encrypt the entries before auto-save kicks in. I've implemented this, but it fails miserably: Since the function `auto-save-mode' doesn't set an buffer-local var to indicate whether or not it's enabled for the current buffer, we can only check for `auto-save-default'. This poses the following problems: - 'ask will be a serious whiner, prompting the user for each and every entry being decrypted, whether or not `auto-save-mode' is enabled for the current buffer. - 'disable will cause (perhaps minor) performance issues, since it will try disabling `auto-save-mode' for each and every entry being decrypted, even though it may already be disabled for the current buffer. If (as per your suggestion) emitting a warning, this will also spam the *Message* buffer to no end. Also, 'encrypt will simply not work, due to `auto-save-hook' not being called when it's supposed to. BTW: For those of us running `org-decrypt-entry' with a wrapper function, do remember one has to call (auto-save-mode -1) instead of (auto-save-mode nil), since the latter will *toggle* instead of *disable* ! > Nick > > > Signed-off-by: Pieter Praet > > --- > > lisp/org-crypt.el | 14 +++++++++----- > > 1 files changed, 9 insertions(+), 5 deletions(-) > > > > diff --git a/lisp/org-crypt.el b/lisp/org-crypt.el > > index 4bff7a1..f4c0b8e 100644 > > --- a/lisp/org-crypt.el > > +++ b/lisp/org-crypt.el > > @@ -142,6 +142,10 @@ This setting can also be overridden in the CRYPTKEY property." > > (defun org-decrypt-entry () > > "Decrypt the content of the current headline." > > (interactive) > > + (when > > + (or > > + (not auto-save-default) > > + (yes-or-no-p "WARNING: auto-save-mode is enabled globally. This may cause leakage. Continue? ")) > > (require 'epg) > > (unless (org-before-first-heading-p) > > (save-excursion > > @@ -179,7 +183,7 @@ This setting can also be overridden in the CRYPTKEY property." > > (when heading-was-invisible-p > > (goto-char heading-point) > > (org-flag-subtree t)) > > - nil)))))) > > + nil))))))) > > > > (defun org-encrypt-entries () > > "Encrypt all top-level entries in the current buffer." > > @@ -209,10 +213,10 @@ This setting can also be overridden in the CRYPTKEY property." > > ;; 'org-mode-hook > > ;; (lambda () (add-hook 'auto-save-hook 'org-encrypt-entries nil t)))) > > > > -(when (and (functionp 'daemonp) > > - (not (daemonp)) auto-save-default) > > - (message "Warning: turn auto-save-mode off in Org buffers containing crypted entries.") > > - (sit-for 1)) > > +;; (when (and (functionp 'daemonp) > > +;; (not (daemonp)) auto-save-default) > > +;; (message "Warning: turn auto-save-mode off in Org buffers containing crypted entries.") > > +;; (sit-for 1)) > > > > (add-hook 'org-reveal-start-hook 'org-decrypt-entry) > > > > -- > > 1.7.4.1 > > > > Peace -- Pieter