mm-decode.el (mm-save-part): Handle invalid read-file-name results
authorChristopher Schmidt <christopher@ch.ristopher.com>
Wed, 30 Jan 2013 09:44:33 +0000 (09:44 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Wed, 30 Jan 2013 09:44:33 +0000 (09:44 +0000)
lisp/ChangeLog
lisp/mm-decode.el

index b4f426e..62f5d38 100644 (file)
@@ -1,3 +1,7 @@
+2013-01-30  Christopher Schmidt  <christopher@ch.ristopher.com>
+
+       * mm-decode.el (mm-save-part): Handle invalid read-file-name results.
+
 2013-01-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus-sum.el (gnus-summary-read-group-1): Protect against not being
index b5e4d3e..812ee73 100644 (file)
@@ -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