unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Dmitry Gutov <dgutov@yandex.ru>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: emacs-devel@gnu.org
Subject: Re: trunk r115265: * lisp/vc/vc-dispatcher.el (vc-log-edit): Setup the Summary&Author headers.
Date: Tue, 03 Dec 2013 01:02:00 +0200	[thread overview]
Message-ID: <529D1168.9090102@yandex.ru> (raw)
In-Reply-To: <jwvd2lf4b4p.fsf-monnier+emacs@gnu.org>

On 02.12.2013 15:53, Stefan Monnier wrote:
> Go to your nearest file buffer and type: SPC C-x k RET
> As you can see, you did choose the buffer to kill and yet you get
> prompted to confirm you want to kill that buffer despite its
> unsaved changes.

Ah, thanks, now I get it. This issue is not new, so it didn't seem too 
important.

> I think it's good to try and make the *VC-Log* (and the *mail*) buffers
> behave similarly to file buffers in this respect.

I don't see this problem with mail. When I'm in a message-mode buffer 
(say, writing a reply from Gnus), and I press C-x k RET, Emacs warns me 
that the buffer is modified and asks for confirmation.

See the small patch at the bottom for log-edit. It seems to work, but I 
fear it may complicate some scenarios where buffers are killed 
automatically.

> It's probably the case that log-edit-hide-buf needs to be revisited,
> since it dates to before the rewrite of display-buffer, where Martin
> arranged to better be able to "undo" a display-buffer (via bury-buffer
> or quit-window).

Guess so.

=== modified file 'lisp/vc/log-edit.el'
--- lisp/vc/log-edit.el	2013-12-02 22:13:51 +0000
+++ lisp/vc/log-edit.el	2013-12-02 22:54:52 +0000
@@ -476,6 +476,7 @@
    (set (make-local-variable 'font-lock-defaults)
         '(log-edit-font-lock-keywords t))
    (make-local-variable 'log-edit-comment-ring-index)
+  (add-hook 'kill-buffer-hook 'log-edit-kill-buffer-prompt nil t)
    (hack-dir-local-variables-non-file-buffer))

  (defun log-edit-hide-buf (&optional buf where)
@@ -551,6 +552,11 @@
      (quit-windows-on buf)
      (kill-buffer buf)))

+(defun log-edit-kill-buffer-prompt ()
+  (unless (ring-member log-edit-comment-ring (buffer-string))
+    (or (yes-or-no-p "Discard the comment?")
+        (user-error "Aborted"))))
+
  (defun log-edit-files ()
    "Return the list of files that are about to be committed."
    (ignore-errors (funcall log-edit-listfun)))





  reply	other threads:[~2013-12-02 23:02 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <E1VlqjS-0006O3-Fn@vcs.savannah.gnu.org>
2013-11-29  4:39 ` trunk r115265: * lisp/vc/vc-dispatcher.el (vc-log-edit): Setup the Summary&Author headers Dmitry Gutov
2013-11-29 13:33   ` Stefan Monnier
2013-11-29 14:53     ` Dmitry Gutov
2013-11-29 17:04       ` Stefan Monnier
2013-11-29 22:37         ` Dmitry Gutov
2013-11-30  2:29           ` Stefan Monnier
2013-11-30 16:02             ` Dmitry Gutov
2013-12-01 21:10               ` Stefan Monnier
2013-12-02  2:40                 ` Dmitry Gutov
2013-12-02 13:53                   ` Stefan Monnier
2013-12-02 23:02                     ` Dmitry Gutov [this message]
2013-12-03  0:56                       ` Leo Liu
2013-12-03  3:06                       ` Stefan Monnier
2013-12-04  0:38                         ` Dmitry Gutov
2013-12-03  2:17                     ` Dmitry Gutov
2013-12-03  3:09                       ` Stefan Monnier
2013-12-04  0:43                         ` Dmitry Gutov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=529D1168.9090102@yandex.ru \
    --to=dgutov@yandex.ru \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.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).