]> git.eshelyaron.com Git - emacs.git/commitdiff
(read-file-name): Treat confirm options to
authorJason Rumney <jasonr@gnu.org>
Sun, 2 Aug 2009 14:56:04 +0000 (14:56 +0000)
committerJason Rumney <jasonr@gnu.org>
Sun, 2 Aug 2009 14:56:04 +0000 (14:56 +0000)
MUSTMATCH as nil when invoking x-file-dialog.  (Bug#3969)

lisp/ChangeLog
lisp/minibuffer.el

index de88dfbca6bd5fb77de53af2d1f785ef12e719b1..ea810df92f7d780d4000303a8939ba6f5a36f1fb 100644 (file)
@@ -1,3 +1,8 @@
+2009-08-02  Jason Rumney  <jasonr@gnu.org>
+
+       * minibuffer.el (read-file-name): Treat confirm options to
+       MUSTMATCH as nil when invoking x-file-dialog.  (Bug#3969)
+
 2009-08-02  Chong Yidong  <cyd@stupidchicken.com>
 
        * font-lock.el (font-lock-string-face, font-lock-builtin-face)
index 911a6b3c2d9aab7b733dad83d7a12d52757439c4..13c850d3eaa9162c5f5c4392e9b15244f0d88c43 100644 (file)
@@ -1134,7 +1134,8 @@ DIR should be an absolute directory name.  It defaults to the value of
 If this command was invoked with the mouse, use a graphical file
 dialog if `use-dialog-box' is non-nil, and the window system or X
 toolkit in use provides a file dialog box.  For graphical file
-dialogs, any non-nil value of MUSTMATCH is equivalent to t.
+dialogs, any the special values of MUSTMATCH; `confirm' and
+`confirm-after-completion' are treated as equivalent to nil.
 
 See also `read-file-name-completion-ignore-case'
 and `read-file-name-function'."
@@ -1180,7 +1181,16 @@ and `read-file-name-function'."
                                          default-filename)))
                   ;; If DEFAULT-FILENAME not supplied and DIR contains
                   ;; a file name, split it.
-                  (let ((file (file-name-nondirectory dir)))
+                  (let ((file (file-name-nondirectory dir))
+                       ;; When using a dialog, revert to nil and non-nil
+                       ;; interpretation of mustmatch. confirm options
+                       ;; need to be interpreted as nil, otherwise
+                       ;; it is impossible to create new files using
+                       ;; dialogs with the default settings.
+                       (dialog-mustmatch
+                        (and (not (eq mustmatch 'confirm))
+                             (not (eq mustmatch 'confirm-after-completion))
+                             mustmatch)))
                     (when (and (not default-filename)
                               (not (zerop (length file))))
                       (setq default-filename file)
@@ -1189,7 +1199,8 @@ and `read-file-name-function'."
                         (setq default-filename
                               (expand-file-name default-filename dir)))
                     (setq add-to-history t)
-                    (x-file-dialog prompt dir default-filename mustmatch
+                    (x-file-dialog prompt dir default-filename
+                                  dialog-mustmatch
                                    (eq predicate 'file-directory-p)))))
 
                (replace-in-history (eq (car-safe file-name-history) val)))