+ (message (concat (substitute-command-keys
+ "Type \\[image-toggle-display] to view the image as ")
+ (if (get-text-property (point-min) 'display)
+ "text" "an image") ".")))
+
+;;;###autoload
+(define-minor-mode image-minor-mode
+ "Toggle Image minor mode.
+With arg, turn Image minor mode on if arg is positive, off otherwise.
+See the command `image-mode' for more information on this mode."
+ nil " Image" image-mode-map
+ :group 'image
+ :version "22.1"
+ (if (not image-minor-mode)
+ (image-toggle-display-text)
+ (if (get-text-property (point-min) 'display)
+ (setq cursor-type nil truncate-lines t))
+ (add-hook 'change-major-mode-hook (lambda () (image-minor-mode -1)) nil t)
+ (message (concat (substitute-command-keys
+ "Type \\[image-toggle-display] to view the image as ")
+ (if (get-text-property (point-min) 'display)
+ "text" "an image") "."))))
+
+;;;###autoload
+(defun image-mode-maybe ()
+ "Set major or minor mode for image files.
+Set Image major mode only when there are no other major modes
+associated with a filename in `auto-mode-alist'. When an image
+filename matches another major mode in `auto-mode-alist' then
+set that major mode and Image minor mode.
+
+See commands `image-mode' and `image-minor-mode' for more
+information on these modes."
+ (interactive)
+ (let* ((mode-alist
+ (delq nil (mapcar
+ (lambda (elt)
+ (unless (memq (or (car-safe (cdr elt)) (cdr elt))
+ '(image-mode image-mode-maybe))
+ elt))
+ auto-mode-alist))))
+ (if (assoc-default buffer-file-name mode-alist 'string-match)
+ (let ((auto-mode-alist mode-alist))
+ (set-auto-mode)
+ (image-minor-mode t))
+ (image-mode))))
+
+(defun image-toggle-display-text ()
+ "Showing the text of the image file."
+ (if (get-text-property (point-min) 'display)
+ (image-toggle-display)))