From 26224fafa0c504defeff50909e887ea48b06353b Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Sat, 28 Nov 2009 20:45:19 +0000 Subject: [PATCH] (image-minor-mode): Exit more gracefully when the image cannot be displayed (e.g. when doing C-x C-f some-new-file.svg RET). --- lisp/ChangeLog | 3 +++ lisp/image-mode.el | 30 +++++++++++++++++++----------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 62f2dc5f4b5..39a55c525cc 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2009-11-28 Stefan Monnier + * image-mode.el (image-minor-mode): Exit more gracefully when the image + cannot be displayed (e.g. when doing C-x C-f some-new-file.svg RET). + * man.el (Man-completion-table): Make it easier to enter " ". * eshell/em-prompt.el (eshell-prompt-function): Abbreviate pwd, since diff --git a/lisp/image-mode.el b/lisp/image-mode.el index bb97eb8e0b5..2351edc934c 100644 --- a/lisp/image-mode.el +++ b/lisp/image-mode.el @@ -362,18 +362,26 @@ See the command `image-mode' for more information on this mode." (image-mode-setup-winprops) (add-hook 'change-major-mode-hook (lambda () (image-minor-mode -1)) nil t) (if (display-images-p) - (if (not (image-get-display-property)) - (image-toggle-display) - (setq cursor-type nil truncate-lines t - image-type (plist-get (cdr (image-get-display-property)) :type))) + (condition-case err + (progn + (if (not (image-get-display-property)) + (image-toggle-display) + (setq cursor-type nil truncate-lines t + image-type (plist-get (cdr (image-get-display-property)) + :type))) + (message "%s" + (concat + (substitute-command-keys + "Type \\[image-toggle-display] to view the image as ") + (if (image-get-display-property) + "text" "an image") "."))) + (error + (image-toggle-display-text) + (funcall + (if (called-interactively-p 'any) 'error 'message) + "Cannot display image: %s" (cdr err)))) (setq image-type "text") - (use-local-map image-mode-text-map)) - (if (display-images-p) - (message "%s" (concat - (substitute-command-keys - "Type \\[image-toggle-display] to view the image as ") - (if (image-get-display-property) - "text" "an image") "."))))) + (use-local-map image-mode-text-map)))) ;;;###autoload (defun image-mode-maybe () -- 2.39.5