From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicolas Goaziou Subject: Re: Bug: Org loses data if the user types C-u C-c C-c while composing a state change note [9.0.9 (9.0.9-elpaplus @ /home/jorge/.emacs.d/elpa/org-plus-contrib-20170622/)] Date: Mon, 26 Jun 2017 22:30:54 +0200 Message-ID: <87vaniv6dd.fsf@nicolasgoaziou.fr> References: Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:55020) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dPaew-0003DN-Lt for emacs-orgmode@gnu.org; Mon, 26 Jun 2017 16:31:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dPaev-0002yX-JE for emacs-orgmode@gnu.org; Mon, 26 Jun 2017 16:30:58 -0400 Received: from relay4-d.mail.gandi.net ([2001:4b98:c:538::196]:57741) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dPaev-0002xr-D3 for emacs-orgmode@gnu.org; Mon, 26 Jun 2017 16:30:57 -0400 In-Reply-To: (Jorge Morais Neto's message of "Mon, 26 Jun 2017 11:58:43 -0300") 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" To: Jorge Morais Neto Cc: org mode Hello, Jorge Morais Neto writes: > 1. emacs -q > 2. M-x package-initialize > 3. M-x org-version > - Just to confirm we are running Org 9.0.9. > 4. M-x customize-option RET org-todo-keywords RET > 5. Add "(@)" to DONE and set it for current session (C-c C-c) > 6. C-x C-f /tmp/bug.org > 7. C-S-RET > 8. C-c C-t > - This should change to DONE and prompt for a note. > 9. In the note, type "- " to start a plain list > 10. Hit C-u C-c C-c to add an empty checkbox > > In step 10, the user made a mistake; he wanted to add a checkbox and, > from muscle memory, typed C-u C-c C-c. However, he was composing a > note, so C-c C-c has different behavior. The problem is that in this > situation Org discards the note. When this happened to me, I had spent > at least 15 minutes gathering data and writing it in the note buffer. > This data was lost. Luckily I can gather the same data a second time, > so I just lost some 15 minutes of my time (plus more than an hour to > report this bug), but it could have been worse. > > I am not good at usability design and I do not know precisely how Org > should respond to C-u C-c C-c in this situation, but clearly there are > better options than losing data. A very simple alternative would be to, > when C-c C-c is given any prefix argument, do nothing except warn that > C-c C-c in that situation closes the note and does not accept a prefix > argument. Probably this measure also applies to analogous situations in > which valuable data could be lost. > > While we are at it, there may be other situations in which the user > might discard a note by accident. Perhaps Org should prompt before > discarding, or make it reversible. FWIW, long ago, I added (defun ngz-org-capture-hook-handler () (define-key org-capture-mode-map "\C-x\C-s" 'org-capture-finalize) (define-key org-capture-mode-map "\C-c\C-c" 'org-ctrl-c-ctrl-c)) (add-hook 'org-capture-mode-hook 'ngz-org-capture-hook-handler) to my config file. I'm pretty happy with it. One solution would be to have C-x C-s (or some other binding, I don't really mind) calling `org-finish-function' instead of the very busy C-c C-c. C-x C-s makes sense as Log buffers are not attached to any file, so `save-buffer' is morally equivalent to C-x C-w, aka `write-file'. Fellow Orgers, WDYT? Regards, -- Nicolas Goaziou