Subject: 24.2.50; Inconsistent, so confusing, confirmation msgs for `find-alternate-file'

From: "Drew Adams" <[email-masked]>
Date: Sat, 22 Sep 2012 10:30:03 -0700

emacs -Q
 
Visit an existing file foo.  Make some changes, without saving.  `C-x
C-v RET', to re-visit foo, effectively reverting it.
 
You are asked "Buffer foo is modified; save it first (yes or no)".
(There is no question mark here, BTW.)  You reply "no".  Then you are
asked "Kill and replace the buffer without saving it? (yes or no)".
(This time there is a question mark, as there should be.)  You ponder a
minute, then reply "yes".
 
This is a common use case when a user wants to abandon edits by using
`C-x C-v'.  Note that `revert-buffer' will not revert everything that
`C-x C-v' reverts.  Overlays etc. remain, so it can sometimes be useful
to use `C-x C-v' here.
 
Here's the problem: You changed the first message, flipping its sense,
so now, if a user wants to discard the changes s?he has to first say
"no", s?he does not want to save the changes, and then s?he has to say
"yes", s?he really wants to replace the buffer.
 
This inconsistency is confusing and thus error-prone.  While your change
was no doubt motivated by wanting to avoid user errors, it actually
promotes them, at least in this scenario.
 
Furthermore, why are you asking the second question, if the reply to the
first is "no"?  If the user does not want to save the changes, then why
ask again, especially with a reversed sense for the question?

In GNU Emacs 24.2.50.1 (i386-mingw-nt5.1.2600)
 of 2012-09-17 on MARVIN
Bzr revision: 110062 [email-masked]
Windowing system distributor `Microsoft Corp.', version 5.1.2600
Configured using:
 `configure --with-gcc (4.7) --no-opt --enable-checking --cflags
 -ID:/devel/emacs/libs/libXpm-3.5.8/include
 -ID:/devel/emacs/libs/libXpm-3.5.8/src
 -ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include
 -ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include
 -ID:/devel/emacs/libs/giflib-4.1.4-1/include
 -ID:/devel/emacs/libs/jpeg-6b-4/include
 -ID:/devel/emacs/libs/tiff-3.8.2-1/include
 -ID:/devel/emacs/libs/gnutls-3.0.9/include
 -ID:/devel/emacs/libs/libiconv-1.13.1-1-dev/include
 -ID:/devel/emacs/libs/libxml2-2.7.8/include/libxml2'