emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#20832: closed (25.0.50; todo-show accidentally del


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#20832: closed (25.0.50; todo-show accidentally deleted my todo file.)
Date: Fri, 19 Jun 2015 15:15:03 +0000

Your message dated Fri, 19 Jun 2015 17:14:31 +0200
with message-id <address@hidden>
and subject line Re: bug#20832: 25.0.50; todo-show accidentally deleted my todo 
file.
has caused the debbugs.gnu.org bug report #20832,
regarding 25.0.50; todo-show accidentally deleted my todo file.
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
20832: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20832
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: 25.0.50; todo-show accidentally deleted my todo file. Date: Wed, 17 Jun 2015 07:39:59 +0200 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)
I managed to lose my todo-mode.el todo file. I don't really know how
this happened, I guess it was a combination of showing the todo file
while in the minibuffer and hitting C-g, but I noticed it too late, and
then could not reproduce.

In any case, I suspect that todo-mode.el itself deleted it, so I suggest
the following patch as a safety measure.

>From 9088fc5037f587eab00c083d703b0a8cbf3eaf31 Mon Sep 17 00:00:00 2001
From: Nicolas Richard <address@hidden>
Date: Thu, 28 May 2015 08:57:45 +0200
Subject: [PATCH] (todo-show): Throw an error if buffer is empty but was
 modified.

* lisp/calendar/todo-mode.el (todo-show): Throw an error if buffer
is empty but was modified.
---
 lisp/calendar/todo-mode.el | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lisp/calendar/todo-mode.el b/lisp/calendar/todo-mode.el
index 7369ec2..85d4a80 100644
--- a/lisp/calendar/todo-mode.el
+++ b/lisp/calendar/todo-mode.el
@@ -743,6 +743,8 @@ corresponding todo file, displaying the corresponding 
category."
            (setq todo-category-number (todo-category-number cat)))
          ;; If this is a new todo file, add its first category.
          (when (zerop (buffer-size))
+            (when (buffer-modified-p)
+              (error "Buffer is empty but modified. Aborting."))
            (let (cat-added)
              (unwind-protect
                  (setq todo-category-number
-- 
1.9.1


--- End Message ---
--- Begin Message --- Subject: Re: bug#20832: 25.0.50; todo-show accidentally deleted my todo file. Date: Fri, 19 Jun 2015 17:14:31 +0200 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)
On Thu, 18 Jun 2015 13:52:21 +0200 Nicolas Richard <address@hidden> wrote:

> Le 18/06/2015 12:15, Stephen Berman a écrit :

>>                                              But if there are other
>> triggers, then your patch may be needed.  However, since I haven't found
>> any other way to make the problem you encountered occur, I'm inclined to
>> install just the patch below; that way, if there is some other way to
>> get an empty but modified todo-mode buffer, we may find it and be able
>> to fix the underlying cause.
>
> Throwing an error seemed like a good way to find such problems, to me,
> better so than silently deleting the file.

That's true, I guess it's better to be safe than sorry.

>> The following patch makes todo-show display the todo file in the
>> previous window when invoked in the minibuffer.  An alternative would be
>> to simply error out when invoking todo-show in the minibuffer.  But I
>> think it could be useful to display the todo file while in the
>> minibuffer.  Do you see a problem with this?
>
> I don't see a need for (with-selected-window)

You're right, it's unnecessary; thanks for noticing.  (I had first tried
to fix it without that macro and on testing it changed the selected
window from the minibuffer to the todo-mode buffer, so that's why I
thought I needed with-selected-window, but I must have used different
functions, I can't remember anymore.)

I installed both patches in separate commits to keep the author credits
clear (with a slightly tweaked error message in your patch) and am
closing this bug.  Thanks again.

Steve Berman


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]