emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Documentation suggestion re: buffers containing crypted entries
@ 2011-04-30 21:34 Bill Day
  2011-05-02  3:42 ` Darlan Cavalcante Moreira
  2011-06-27 16:55 ` Bastien
  0 siblings, 2 replies; 19+ messages in thread
From: Bill Day @ 2011-04-30 21:34 UTC (permalink / raw)
  To: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 915 bytes --]

I appreciate the warning about encrypted entries, and, I would like to add,
all the hard work and careful thought that has gone into making org-mode
such an incredible piece of software.

I checked the documentation regarding turning off auto-save on pages
containing encrypted entries and saw that the warning was repeated but there
was no advice on how to implement it.  See
http://orgmode.org/worg/org-tutorials/encrypting-files.html

My eventual solution (there may be better ones) was to add a line at the top
of my encrypted page as follows:

# -*- buffer-auto-save-file-name: nil; -*-

This itself generates a warning every time I go to that page, but it seems
to inhibit auto-save. I would like to suggest that a little bit of
explanation of how to turn auto-save on and off be added to the
documentation on encryption with org-mode.

Thank you.

Sincerely,

Bill Day

-- 
Bill Day
williamson.day@gmail.com

[-- Attachment #2: Type: text/html, Size: 1110 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Documentation suggestion re: buffers containing crypted entries
  2011-04-30 21:34 Documentation suggestion re: buffers containing crypted entries Bill Day
@ 2011-05-02  3:42 ` Darlan Cavalcante Moreira
  2011-06-12 20:41   ` Dave Abrahams
  2011-06-27 16:55 ` Bastien
  1 sibling, 1 reply; 19+ messages in thread
From: Darlan Cavalcante Moreira @ 2011-05-02  3:42 UTC (permalink / raw)
  To: Bill Day; +Cc: emacs-orgmode


I was hit by this last week when I was investigating why my emacs
initialization was taking so long. Later I found out that org-crypt was the
culprit, since it added a "sit for 5s" in order for the user to actually
see this warning.

The problem is that org-crypt tests the value of the auto-save-default
variable during loading time. This reflects the default behavior and not
the actual auto-save status of the current buffer.

Maybe a variable to disable this warning could be introduced so that the
user could disable it after understanding the problem.

--
Darlan

At Sat, 30 Apr 2011 17:34:06 -0400,
Bill Day <williamson.day@gmail.com> wrote:
> 
> [1  <text/plain; ISO-8859-1 (7bit)>]
> I appreciate the warning about encrypted entries, and, I would like to add,
> all the hard work and careful thought that has gone into making org-mode
> such an incredible piece of software.
> 
> I checked the documentation regarding turning off auto-save on pages
> containing encrypted entries and saw that the warning was repeated but there
> was no advice on how to implement it.  See
> http://orgmode.org/worg/org-tutorials/encrypting-files.html
> 
> My eventual solution (there may be better ones) was to add a line at the top
> of my encrypted page as follows:
> 
> # -*- buffer-auto-save-file-name: nil; -*-
> 
> This itself generates a warning every time I go to that page, but it seems
> to inhibit auto-save. I would like to suggest that a little bit of
> explanation of how to turn auto-save on and off be added to the
> documentation on encryption with org-mode.
> 
> Thank you.
> 
> Sincerely,
> 
> Bill Day
> 
> -- 
> Bill Day
> williamson.day@gmail.com
> [2  <text/html; ISO-8859-1 (quoted-printable)>]
> 

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Documentation suggestion re: buffers containing crypted entries
  2011-05-02  3:42 ` Darlan Cavalcante Moreira
@ 2011-06-12 20:41   ` Dave Abrahams
  2011-06-24 10:04     ` Eric S Fraga
  0 siblings, 1 reply; 19+ messages in thread
From: Dave Abrahams @ 2011-06-12 20:41 UTC (permalink / raw)
  To: emacs-orgmode

> I was hit by this last week when I was investigating why my emacs
> initialization was taking so long. Later I found out that org-crypt was the
> culprit, since it added a "sit for 5s" in order for the user to actually
> see this warning.
>
> The problem is that org-crypt tests the value of the auto-save-default
> variable during loading time. This reflects the default behavior and not
> the actual auto-save status of the current buffer.
>
> Maybe a variable to disable this warning could be introduced so that the
> user could disable it after understanding the problem.

Oh, yes please!  I'm finding the delays introduced by this problem
almost intolerable.  Call me picky but I've gone to great lengths to
make emacs very responsive and this sit-for really interferes!

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Documentation suggestion re: buffers containing crypted entries
  2011-06-12 20:41   ` Dave Abrahams
@ 2011-06-24 10:04     ` Eric S Fraga
  2011-06-24 10:53       ` Bastien
  2011-06-24 11:57       ` Documentation suggestion re: buffers containing crypted entries Bernt Hansen
  0 siblings, 2 replies; 19+ messages in thread
From: Eric S Fraga @ 2011-06-24 10:04 UTC (permalink / raw)
  To: Dave Abrahams; +Cc: emacs-orgmode

Dave Abrahams <dave@boostpro.com> writes:

>> I was hit by this last week when I was investigating why my emacs
>> initialization was taking so long. Later I found out that org-crypt was the
>
>> culprit, since it added a "sit for 5s" in order for the user to actually
>> see this warning.
>>
>> The problem is that org-crypt tests the value of the auto-save-default
>> variable during loading time. This reflects the default behavior and not
>> the actual auto-save status of the current buffer.
>>
>> Maybe a variable to disable this warning could be introduced so that the
>> user could disable it after understanding the problem.
>
> Oh, yes please!  I'm finding the delays introduced by this problem
> almost intolerable.  Call me picky but I've gone to great lengths to
> make emacs very responsive and this sit-for really interferes!

+1

I have found this (sit-for 5) annoying enough that I have deleted it
from my copy of org.  5 seconds is a large percentage of my emacs start
up time!

thanks,
eric

-- 
: Eric S Fraga (GnuPG: 0xC89193D8FFFCF67D) in Emacs 24.0.50.1
: using Org-mode version 7.5 (release_7.5.430.g95fa2.dirty)

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Documentation suggestion re: buffers containing crypted entries
  2011-06-24 10:04     ` Eric S Fraga
@ 2011-06-24 10:53       ` Bastien
  2011-06-24 13:42         ` Eric S Fraga
  2011-06-24 21:03         ` [PATCH] org-crypt: only warn about auto-save-mode when running org-decrypt Pieter Praet
  2011-06-24 11:57       ` Documentation suggestion re: buffers containing crypted entries Bernt Hansen
  1 sibling, 2 replies; 19+ messages in thread
From: Bastien @ 2011-06-24 10:53 UTC (permalink / raw)
  To: Dave Abrahams; +Cc: emacs-orgmode

Eric S Fraga <e.fraga@ucl.ac.uk> writes:

> I have found this (sit-for 5) annoying enough that I have deleted it
> from my copy of org.  5 seconds is a large percentage of my emacs start
> up time!

I just reduced it to one second.  Still, the message needs some time to
appear to the user.

-- 
 Bastien

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Documentation suggestion re: buffers containing crypted entries
  2011-06-24 10:04     ` Eric S Fraga
  2011-06-24 10:53       ` Bastien
@ 2011-06-24 11:57       ` Bernt Hansen
  1 sibling, 0 replies; 19+ messages in thread
From: Bernt Hansen @ 2011-06-24 11:57 UTC (permalink / raw)
  To: Eric S Fraga; +Cc: Dave Abrahams, emacs-orgmode

Eric S Fraga <e.fraga@ucl.ac.uk> writes:

> Dave Abrahams <dave@boostpro.com> writes:
>
>>> I was hit by this last week when I was investigating why my emacs
>>> initialization was taking so long. Later I found out that org-crypt was the
>>
>>> culprit, since it added a "sit for 5s" in order for the user to actually
>>> see this warning.
>>>
>>> The problem is that org-crypt tests the value of the auto-save-default
>>> variable during loading time. This reflects the default behavior and not
>>> the actual auto-save status of the current buffer.
>>>
>>> Maybe a variable to disable this warning could be introduced so that the
>>> user could disable it after understanding the problem.
>>
>> Oh, yes please!  I'm finding the delays introduced by this problem
>> almost intolerable.  Call me picky but I've gone to great lengths to
>> make emacs very responsive and this sit-for really interferes!
>
> +1
>
> I have found this (sit-for 5) annoying enough that I have deleted it
> from my copy of org.  5 seconds is a large percentage of my emacs start
> up time!

I also have removed this wait in my local copy of org-mode.  I use
org-crypt for one subtree in each of my org files which contains
passwords and other sensitive data.  I rarely decrypt these entries so
leaving auto save on for my use case isn't much of a security issue for
me.  I tend to decrypt the entry, look up the detail I need, and then
resave the file which reencrypts the entry immediately.

Just my 2 cents :)
-- 
Bernt

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Documentation suggestion re: buffers containing crypted entries
  2011-06-24 10:53       ` Bastien
@ 2011-06-24 13:42         ` Eric S Fraga
  2011-06-27 16:56           ` Bastien
  2011-06-24 21:03         ` [PATCH] org-crypt: only warn about auto-save-mode when running org-decrypt Pieter Praet
  1 sibling, 1 reply; 19+ messages in thread
From: Eric S Fraga @ 2011-06-24 13:42 UTC (permalink / raw)
  To: Bastien; +Cc: Dave Abrahams, emacs-orgmode

Bastien <bzg@altern.org> writes:

> Eric S Fraga <e.fraga@ucl.ac.uk> writes:
>
>> I have found this (sit-for 5) annoying enough that I have deleted it
>> from my copy of org.  5 seconds is a large percentage of my emacs start
>> up time!
>
> I just reduced it to one second.  Still, the message needs some time to
> appear to the user.

The question is where should this information be most appropriate to
appear.  In my view, this should be in the documentation (highlighted
etc), not in the Emacs mini-buffer!  I don't know enough texi (any at
all, actually) so cannot suggest a patch.  However, I would suggest that
the warning that is in the code be moved into the entry for org-crypt.el
in the info manual. Or, as originally proposed, the warning in the code
could be wrapped in a customisable variable but this seems like overkill
to me.

One quickly becomes inured to messages that appear every time you use a
tool.  At best, they are simply ignored; at worst, they become annoying,
such as in this case.  I'm not complaining critically as it is trivial
to fix for my own use.

Just my 2¢!

-- 
: Eric S Fraga (GnuPG: 0xC89193D8FFFCF67D) in Emacs 24.0.50.1
: using Org-mode version 7.5 (release_7.5.430.g95fa2.dirty)

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH] org-crypt: only warn about auto-save-mode when running org-decrypt
  2011-06-24 10:53       ` Bastien
  2011-06-24 13:42         ` Eric S Fraga
@ 2011-06-24 21:03         ` Pieter Praet
  2011-06-24 21:50           ` Nick Dokos
  1 sibling, 1 reply; 19+ messages in thread
From: Pieter Praet @ 2011-06-24 21:03 UTC (permalink / raw)
  To: emacs-orgmode; +Cc: Dave Abrahams, Bastien

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'.

Signed-off-by: Pieter Praet <pieter@praet.org>
---
 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

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] org-crypt: only warn about auto-save-mode when running org-decrypt
  2011-06-24 21:03         ` [PATCH] org-crypt: only warn about auto-save-mode when running org-decrypt Pieter Praet
@ 2011-06-24 21:50           ` Nick Dokos
  2011-06-26  6:38             ` Pieter Praet
  0 siblings, 1 reply; 19+ messages in thread
From: Nick Dokos @ 2011-06-24 21:50 UTC (permalink / raw)
  To: Pieter Praet; +Cc: Dave Abrahams, Bastien, nicholas.dokos, emacs-orgmode

Pieter Praet <pieter@praet.org> 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.

Nick

> Signed-off-by: Pieter Praet <pieter@praet.org>
> ---
>  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
> 
> 

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] org-crypt: only warn about auto-save-mode when running org-decrypt
  2011-06-24 21:50           ` Nick Dokos
@ 2011-06-26  6:38             ` Pieter Praet
  2011-06-26  8:38               ` [PATCH] org-crypt: make org-decrypt disable auto-save-mode (configurable) Pieter Praet
  2011-06-27 16:31               ` [PATCH] org-crypt: only warn about auto-save-mode when running org-decrypt Bastien
  0 siblings, 2 replies; 19+ messages in thread
From: Pieter Praet @ 2011-06-26  6:38 UTC (permalink / raw)
  Cc: Dave Abrahams, Bastien, nicholas.dokos, emacs-orgmode

On Fri, 24 Jun 2011 17:50:04 -0400, Nick Dokos <nicholas.dokos@hp.com> wrote:
> Pieter Praet <pieter@praet.org> 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 <pieter@praet.org>
> > ---
> >  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

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH] org-crypt: make org-decrypt disable auto-save-mode (configurable)
  2011-06-26  6:38             ` Pieter Praet
@ 2011-06-26  8:38               ` Pieter Praet
  2011-06-27 16:31               ` [PATCH] org-crypt: only warn about auto-save-mode when running org-decrypt Bastien
  1 sibling, 0 replies; 19+ messages in thread
From: Pieter Praet @ 2011-06-26  8:38 UTC (permalink / raw)
  To: emacs-orgmode; +Cc: Dave Abrahams, Bastien, Nick Dokos

Signed-off-by: Pieter Praet <pieter@praet.org>
---
This is appears to be the only solution that doesn't cause
the production of inordinate amounts of cortisol.

I've also added a warning re the broken state of `auto-save-hook'.


 lisp/org-crypt.el |   36 ++++++++++++++++++++++++++++++++----
 1 files changed, 32 insertions(+), 4 deletions(-)

diff --git a/lisp/org-crypt.el b/lisp/org-crypt.el
index 4bff7a1..0a0ce96 100644
--- a/lisp/org-crypt.el
+++ b/lisp/org-crypt.el
@@ -94,6 +94,15 @@ This setting can also be overridden in the CRYPTKEY property."
   :type 'string 
   :group 'org-crypt)
 
+(defcustom org-crypt-disable-auto-save t
+  "What org-decrypt should do if `auto-save-default' is enabled.
+
+t    : Disable it for the current buffer prior to decrypting an entry.
+nil  : Leave it enabled."
+  :group 'org-crypt
+  :type '(choice (const :tag "Always" t)
+                 (const :tag "Never" nil)))
+
 (defun org-crypt-key-for-heading ()
   "Return the encryption key for the current heading."
   (save-excursion
@@ -142,6 +151,24 @@ This setting can also be overridden in the CRYPTKEY property."
 (defun org-decrypt-entry ()
   "Decrypt the content of the current headline."
   (interactive)
+
+  ; auto-save-mode causes leakage, so check whether it's enabled.
+  (when auto-save-default
+    ; Ideally, we'd check whether it's enabled for the current buffer,
+    ; using the buffer-local variable `auto-save-mode', but the
+    ; `auto-save-mode' function doesn't set this, so we have to check
+    ; the global variable `auto-save-default' instead.
+    ; Consequently, the following will run regardless of whether
+    ; `auto-save-mode' is enabled for the current buffer, spamming the
+    ; *Messages* buffer.
+    (if (eq org-crypt-disable-auto-save t)
+        (progn
+          (message "org-decrypt: Disabling auto-save-mode for current buffer to prevent leakage.")
+          ; The argument to auto-save-mode has to be "-1", since
+          ; giving a "nil" argument toggles instead of disabling.
+          (auto-save-mode -1))
+      (message "org-decrypt: WARNING! auto-save-mode is enabled globally. This may cause leakage.")))
+
   (require 'epg)
   (unless (org-before-first-heading-p)
     (save-excursion
@@ -204,15 +231,16 @@ This setting can also be overridden in the CRYPTKEY property."
 ;; FIXME Find a better way to encrypt Org auto-saved buffers?
 ;; When `auto-save-default' is non-nil, make sure entries are
 ;; encrypted before auto-saving
+;; NOTE: auto-save-hook does NOT work, so don't rely on it!
 ;; (when auto-save-default
 ;;    (add-hook
 ;;     '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

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] org-crypt: only warn about auto-save-mode when running org-decrypt
  2011-06-26  6:38             ` Pieter Praet
  2011-06-26  8:38               ` [PATCH] org-crypt: make org-decrypt disable auto-save-mode (configurable) Pieter Praet
@ 2011-06-27 16:31               ` Bastien
  2011-06-28  6:55                 ` Pieter Praet
  1 sibling, 1 reply; 19+ messages in thread
From: Bastien @ 2011-06-27 16:31 UTC (permalink / raw)
  To: Pieter Praet; +Cc: Dave Abrahams, Nick Dokos, emacs-orgmode

Hi Pieter,

Thanks for the patch at the end of this thread.

Pieter Praet <pieter@praet.org> writes:

> 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'. 

I think we should first ask emacs-devel to fix this, then implement your
clean solution.  Would you like to report this problem?

I'm not confident in disabling auto-save-mode globally by default, this
would surprise users -- even with a **BiG WaRnInG** message.

What do you think?

-- 
 Bastien

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Documentation suggestion re: buffers containing crypted entries
  2011-04-30 21:34 Documentation suggestion re: buffers containing crypted entries Bill Day
  2011-05-02  3:42 ` Darlan Cavalcante Moreira
@ 2011-06-27 16:55 ` Bastien
  1 sibling, 0 replies; 19+ messages in thread
From: Bastien @ 2011-06-27 16:55 UTC (permalink / raw)
  To: Bill Day; +Cc: emacs-orgmode

Hi Bill,

Bill Day <williamson.day@gmail.com> writes:

> # -*- buffer-auto-save-file-name: nil; -*-

Do you know if this hack works for recent Emacsen without side-effects?

-- 
 Bastien

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Documentation suggestion re: buffers containing crypted entries
  2011-06-24 13:42         ` Eric S Fraga
@ 2011-06-27 16:56           ` Bastien
  2011-06-28 13:29             ` Darlan Cavalcante Moreira
  0 siblings, 1 reply; 19+ messages in thread
From: Bastien @ 2011-06-27 16:56 UTC (permalink / raw)
  To: Dave Abrahams; +Cc: emacs-orgmode

Hi Eric,

Eric S Fraga <e.fraga@ucl.ac.uk> writes:

> The question is where should this information be most appropriate to
> appear.  In my view, this should be in the documentation (highlighted
> etc), not in the Emacs mini-buffer!  I don't know enough texi (any at
> all, actually) so cannot suggest a patch.  However, I would suggest that
> the warning that is in the code be moved into the entry for org-crypt.el
> in the info manual. 

I did so -- I added this to the config example in org.texi:

,----
| (setq auto-save-default nil)
|   ;; Auto-saving does not cooperate with org-crypt.el: so you need
|   ;; to turn it off if you plan to use org-crypt.el quite often.
|   ;; Otherwise, you'll get an (annoying) message each time you 
|   ;; start Org.
| 
|   ;; To turn it off only locally, you can insert this:
|   ;;
|   ;; # -*- buffer-auto-save-file-name: nil; -*-
`----

> Or, as originally proposed, the warning in the code
> could be wrapped in a customisable variable but this seems like overkill
> to me.

To me too, unless we have a clean way to disable auto-save-mode locally.

> Just my 2¢!

2thx!

-- 
 Bastien

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] org-crypt: only warn about auto-save-mode when running org-decrypt
  2011-06-27 16:31               ` [PATCH] org-crypt: only warn about auto-save-mode when running org-decrypt Bastien
@ 2011-06-28  6:55                 ` Pieter Praet
  2011-06-28  6:57                   ` [PATCH] org-crypt: make org-decrypt disable auto-save-mode (configurable) Pieter Praet
  2011-06-28 10:05                   ` [PATCH] org-crypt: only warn about auto-save-mode when running org-decrypt Bastien
  0 siblings, 2 replies; 19+ messages in thread
From: Pieter Praet @ 2011-06-28  6:55 UTC (permalink / raw)
  To: Bastien; +Cc: Dave Abrahams, Nick Dokos, emacs-orgmode

On Mon, 27 Jun 2011 18:31:58 +0200, Bastien <bzg@altern.org> wrote:
> Hi Pieter,
> 
> Thanks for the patch at the end of this thread.
> 
> Pieter Praet <pieter@praet.org> writes:
> 
> > 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'. 
> 
> I think we should first ask emacs-devel to fix this, then implement your
> clean solution.  Would you like to report this problem?

No need. It appears I'm a veritable moron, with apologies to the Emacs folks.

2 lessons I've learned today:
- DON'T test this stuff in a *scratch* buffer (seriously...)
- DO consume sufficient quantities of coffee (IOW, org-encrypt-entries
  doesn't encrypt entries unless they're *tagged* to be)

> I'm not confident in disabling auto-save-mode globally by default, this
> would surprise users -- even with a **BiG WaRnInG** message.

No worries, it's buffer-local.

And I've now changed the default to "ask first, shoot in the foot later".

> What do you think?

"I should send my patch" comes to mind :)

Traffic allowing (lots of sweaty tourists on the road),
it should be there in T-10sec.

> -- 
>  Bastien


Peace

-- 
Pieter

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH] org-crypt: make org-decrypt disable auto-save-mode (configurable)
  2011-06-28  6:55                 ` Pieter Praet
@ 2011-06-28  6:57                   ` Pieter Praet
  2011-06-28 10:04                     ` Bastien
  2011-06-28 10:05                   ` [PATCH] org-crypt: only warn about auto-save-mode when running org-decrypt Bastien
  1 sibling, 1 reply; 19+ messages in thread
From: Pieter Praet @ 2011-06-28  6:57 UTC (permalink / raw)
  To: emacs-orgmode; +Cc: Dave Abrahams, Bastien, Nick Dokos

As auto-save-mode can only cause leakage when there's actual decrypted
data lying around, don't check for it (and potentially cause annoyance)
on init, but only when org-decrypt-entry is called.

* lisp/org-crypt.el:
  - add defcustom `org-crypt-disable-auto-save'
  - `org-decrypt-entry': before decrypting, check whether
    `auto-save-mode' is enabled for the current buffer, and act
    on it according to how `org-crypt-disable-auto-save' is set.
  - remove comment re "encrypt[ing] Org auto-saved buffers"
  - remove on-init check for `auto-save-default'

Signed-off-by: Pieter Praet <pieter@praet.org>
---
 lisp/org-crypt.el |   60 +++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 47 insertions(+), 13 deletions(-)

diff --git a/lisp/org-crypt.el b/lisp/org-crypt.el
index 4bff7a1..1ff24b9 100644
--- a/lisp/org-crypt.el
+++ b/lisp/org-crypt.el
@@ -94,6 +94,29 @@ This setting can also be overridden in the CRYPTKEY property."
   :type 'string 
   :group 'org-crypt)
 
+(defcustom org-crypt-disable-auto-save 'ask
+  "What org-decrypt should do if `auto-save-mode' is enabled.
+
+t        : Disable auto-save-mode for the current buffer
+           prior to decrypting an entry.
+
+nil      : Leave auto-save-mode enabled.
+           This may cause data to be written to disk unencrypted!
+
+'ask     : Ask user whether or not to disable auto-save-mode
+           for the current buffer.
+
+'encrypt : Leave auto-save-mode enabled for the current buffer,
+           but automatically re-encrypt all decrypted entries
+           *before* auto-saving.
+           NOTE: This only works for entries which have a tag
+           that matches `org-crypt-tag-matcher'."
+  :group 'org-crypt
+  :type '(choice (const :tag "Always"  t)
+                 (const :tag "Never"   nil)
+                 (const :tag "Ask"     ask)
+                 (const :tag "Encrypt" encrypt)))
+
 (defun org-crypt-key-for-heading ()
   "Return the encryption key for the current heading."
   (save-excursion
@@ -142,6 +165,30 @@ This setting can also be overridden in the CRYPTKEY property."
 (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
@@ -201,19 +248,6 @@ This setting can also be overridden in the CRYPTKEY property."
    'org-mode-hook
    (lambda () (add-hook 'before-save-hook 'org-encrypt-entries nil t))))
 
-;; FIXME Find a better way to encrypt Org auto-saved buffers?
-;; When `auto-save-default' is non-nil, make sure entries are
-;; encrypted before auto-saving
-;; (when auto-save-default
-;;    (add-hook
-;;     '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))
-
 (add-hook 'org-reveal-start-hook 'org-decrypt-entry)
 
 (provide 'org-crypt)
-- 
1.7.4.1

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] org-crypt: make org-decrypt disable auto-save-mode (configurable)
  2011-06-28  6:57                   ` [PATCH] org-crypt: make org-decrypt disable auto-save-mode (configurable) Pieter Praet
@ 2011-06-28 10:04                     ` Bastien
  0 siblings, 0 replies; 19+ messages in thread
From: Bastien @ 2011-06-28 10:04 UTC (permalink / raw)
  To: Pieter Praet; +Cc: Dave Abrahams, Nick Dokos, emacs-orgmode

Hi Pieter,

Pieter Praet <pieter@praet.org> writes:

> As auto-save-mode can only cause leakage when there's actual decrypted
> data lying around, don't check for it (and potentially cause annoyance)
> on init, but only when org-decrypt-entry is called.

Applied, thanks for this!

-- 
 Bastien

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] org-crypt: only warn about auto-save-mode when running org-decrypt
  2011-06-28  6:55                 ` Pieter Praet
  2011-06-28  6:57                   ` [PATCH] org-crypt: make org-decrypt disable auto-save-mode (configurable) Pieter Praet
@ 2011-06-28 10:05                   ` Bastien
  1 sibling, 0 replies; 19+ messages in thread
From: Bastien @ 2011-06-28 10:05 UTC (permalink / raw)
  To: Pieter Praet; +Cc: Dave Abrahams, Nick Dokos, emacs-orgmode

Hi Pieter,

Pieter Praet <pieter@praet.org> writes:

> 2 lessons I've learned today:
> - DON'T test this stuff in a *scratch* buffer (seriously...)
> - DO consume sufficient quantities of coffee (IOW, org-encrypt-entries
>   doesn't encrypt entries unless they're *tagged* to be)

:)

>> I'm not confident in disabling auto-save-mode globally by default, this
>> would surprise users -- even with a **BiG WaRnInG** message.
>
> No worries, it's buffer-local.
>
> And I've now changed the default to "ask first, shoot in the foot
> later".

This is good.

Thanks!

-- 
 Bastien

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Documentation suggestion re: buffers containing crypted entries
  2011-06-27 16:56           ` Bastien
@ 2011-06-28 13:29             ` Darlan Cavalcante Moreira
  0 siblings, 0 replies; 19+ messages in thread
From: Darlan Cavalcante Moreira @ 2011-06-28 13:29 UTC (permalink / raw)
  To: Bastien; +Cc: Dave Abrahams, emacs-orgmode


I think we can disable auto-save locally using file variables, but what
org-crypt seem to check is auto-save-default and its value probably won't
change when auto-save is disabled locally.

--
Darlan Cavalcante

At Mon, 27 Jun 2011 18:56:54 +0200,
Bastien <bzg@altern.org> wrote:
> 
> Hi Eric,
> 
> Eric S Fraga <e.fraga@ucl.ac.uk> writes:
> 
> > The question is where should this information be most appropriate to
> > appear.  In my view, this should be in the documentation (highlighted
> > etc), not in the Emacs mini-buffer!  I don't know enough texi (any at
> > all, actually) so cannot suggest a patch.  However, I would suggest that
> > the warning that is in the code be moved into the entry for org-crypt.el
> > in the info manual. 
> 
> I did so -- I added this to the config example in org.texi:
> 
> ,----
> | (setq auto-save-default nil)
> |   ;; Auto-saving does not cooperate with org-crypt.el: so you need
> |   ;; to turn it off if you plan to use org-crypt.el quite often.
> |   ;; Otherwise, you'll get an (annoying) message each time you 
> |   ;; start Org.
> | 
> |   ;; To turn it off only locally, you can insert this:
> |   ;;
> |   ;; # -*- buffer-auto-save-file-name: nil; -*-
> `----
> 
> > Or, as originally proposed, the warning in the code
> > could be wrapped in a customisable variable but this seems like overkill
> > to me.
> 
> To me too, unless we have a clean way to disable auto-save-mode locally.
> 
> > Just my 2¢!
> 
> 2thx!
> 
> -- 
>  Bastien
> 

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2011-06-28 13:29 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-04-30 21:34 Documentation suggestion re: buffers containing crypted entries Bill Day
2011-05-02  3:42 ` Darlan Cavalcante Moreira
2011-06-12 20:41   ` Dave Abrahams
2011-06-24 10:04     ` Eric S Fraga
2011-06-24 10:53       ` Bastien
2011-06-24 13:42         ` Eric S Fraga
2011-06-27 16:56           ` Bastien
2011-06-28 13:29             ` Darlan Cavalcante Moreira
2011-06-24 21:03         ` [PATCH] org-crypt: only warn about auto-save-mode when running org-decrypt Pieter Praet
2011-06-24 21:50           ` Nick Dokos
2011-06-26  6:38             ` Pieter Praet
2011-06-26  8:38               ` [PATCH] org-crypt: make org-decrypt disable auto-save-mode (configurable) Pieter Praet
2011-06-27 16:31               ` [PATCH] org-crypt: only warn about auto-save-mode when running org-decrypt Bastien
2011-06-28  6:55                 ` Pieter Praet
2011-06-28  6:57                   ` [PATCH] org-crypt: make org-decrypt disable auto-save-mode (configurable) Pieter Praet
2011-06-28 10:04                     ` Bastien
2011-06-28 10:05                   ` [PATCH] org-crypt: only warn about auto-save-mode when running org-decrypt Bastien
2011-06-24 11:57       ` Documentation suggestion re: buffers containing crypted entries Bernt Hansen
2011-06-27 16:55 ` Bastien

Code repositories for project(s) associated with this inbox:

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).