From: Christopher Schmidt Date: Wed, 30 Jan 2013 09:44:46 +0000 (+0000) Subject: lisp/gnus/mm-decode.el (mm-save-part): Handle invalid read-file-name results X-Git-Tag: emacs-24.3.90~173^2~7^2~198 X-Git-Url: https://code.delx.au/gnu-emacs/commitdiff_plain/dc39b96aae823fc9ee3d4dd50ce4160f00e504f2?hp=8bc8712eddbac53649ce3b5b0d1ce5852bca394f lisp/gnus/mm-decode.el (mm-save-part): Handle invalid read-file-name results --- diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 745e0ede5a..f224752a33 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,7 @@ +2013-01-30 Christopher Schmidt + + * mm-decode.el (mm-save-part): Handle invalid read-file-name results. + 2013-01-21 Lars Magne Ingebrigtsen * gnus-sum.el (gnus-summary-read-group-1): Protect against not being diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index b5e4d3e38e..812ee7396d 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el @@ -1298,14 +1298,26 @@ PROMPT overrides the default one used to ask user for a file name." (when filename (setq filename (gnus-map-function mm-file-name-rewrite-functions (file-name-nondirectory filename)))) - (setq file - (read-file-name - (or prompt - (format "Save MIME part to (default %s): " - (or filename ""))) - (or mm-default-directory default-directory) - (expand-file-name (or filename "") - (or mm-default-directory default-directory)))) + (while + (progn + (setq file + (read-file-name + (or prompt + (format "Save MIME part to (default %s): " + (or filename ""))) + (or mm-default-directory default-directory) + (expand-file-name (or filename "") + (or mm-default-directory default-directory)))) + (cond ((or (not file) (equal file "")) + (message "Please enter a file name") + t) + ((and (file-directory-p file) + (not filename)) + (message "Please enter a non-directory file name") + t) + (t nil))) + (sit-for 2) + (discard-input)) (if (file-directory-p file) (setq file (expand-file-name filename file)) (setq file (expand-file-name