Subject: Re: bug#8177: 24.0.50; `find-file' 2nd time for image file - regression
From: Eli Zaretskii <[email-masked]>
To: Drew Adams <[email-masked]>
Cc: [email-masked]
Date: Sat, 05 Mar 2011 10:54:35 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: "Drew Adams" <[email-masked]>
> Date: Sat, 5 Mar 2011 00:03:51 -0800
> Cc: 
> 
> 1. This is a regression; it works fine in Emacs 22 and Emacs 23.
>  
> M-: (find-file "...foo.jpg")
>  
> where `...foo.jpg' is an absolute file name of an image file (of a type
> that is supported).  The image is displayed - no problem.  Good.
>  
> Now repeat it:
> M-: (find-file "...foo.jpg")
>  
> This time you get an annoying dialog.  You should just see the image
> again.  Similarly, if you hit RET on the file name in Dired - first time
> is OK, second time you get sent down the rabbit hole.

My bad; fixed now.  If you want to try the change, but cannot dump
Emacs, apply the patch below, recompile files.el, and manually load
files.elc (followed by ls-lisp.elc) into Emacs.

> 2. In addition (but this is *not* the main point of this bug report),
> the annoying dialog you get uses multiple lines of text (6!) to prompt
> in the minibuffer (or in a popup, depending on how you invoke the
> function) for a y-or-n answer.  The prompt text is *far* too long and
> pretty much incomprehensible to an average user.

I didn't do anything about this part; suggest a separate bug report,
as it's unrelated.

=== modified file 'lisp/ChangeLog'
--- lisp/ChangeLog	2011-03-05 04:11:05 +0000
+++ lisp/ChangeLog	2011-03-05 08:48:52 +0000
@@ -1,3 +1,9 @@
+2011-03-05  Eli Zaretskii  <[email-masked]>
+
+	* files.el (find-file-noselect): Don't ask about re-visiting
+	non-literally if the file is already visited in image-mode.
+	(Bug#8177)
+
 2011-03-05  Glenn Morris  <[email-masked]>
 
 	* eshell/esh-mode.el (eshell-kill-buffer-function): New function.

=== modified file 'lisp/files.el'
--- lisp/files.el	2011-03-03 08:10:52 +0000
+++ lisp/files.el	2011-03-05 08:48:52 +0000
@@ -1894,8 +1894,8 @@ the various files."
 			   (not nonexistent)
 			   ;; It is confusing to ask whether to visit
 			   ;; non-literally if they have the file in
-			   ;; hexl-mode.
-			   (not (eq major-mode 'hexl-mode)))
+			   ;; hexl-mode or image-mode.
+			   (not (memq major-mode '(hexl-mode image-mode))))
 		  (if (buffer-modified-p)
 		      (if (y-or-n-p
 			   (format