Mercurial > emacs
changeset 104122:9fb3df55079f
(read-file-name): Treat confirm options to
MUSTMATCH as nil when invoking x-file-dialog. (Bug#3969)
author | Jason Rumney <jasonr@gnu.org> |
---|---|
date | Sun, 02 Aug 2009 14:56:04 +0000 |
parents | bfd41b5caadd |
children | 132eb17eec1d |
files | lisp/ChangeLog lisp/minibuffer.el |
diffstat | 2 files changed, 19 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Sun Aug 02 14:20:02 2009 +0000 +++ b/lisp/ChangeLog Sun Aug 02 14:56:04 2009 +0000 @@ -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)
--- a/lisp/minibuffer.el Sun Aug 02 14:20:02 2009 +0000 +++ b/lisp/minibuffer.el Sun Aug 02 14:56:04 2009 +0000 @@ -1134,7 +1134,8 @@ 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 @@ 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 @@ (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)))