Document the behavior of file selection dialogs on Windows 7 (bug #17950).

etc/PROBLEMS: Mention the problem from bug #17950.

 src/w32fns.c (Fx_file_dialog): Mention in the doc string the
 behavior on Windows 7 and later when the function is repeatedly
 invoked with the same value of DIR.
 src/xfns.c (Fx_file_dialog) [USE_MOTIF, USE_GTK]: Update the doc
 string to match the one in w32fns.c.
This commit is contained in:
Eli Zaretskii 2014-07-12 12:25:29 +03:00
parent a5a8e250d5
commit 47f63aa79a
5 changed files with 48 additions and 3 deletions

View file

@ -1,3 +1,7 @@
2014-07-12 Eli Zaretskii <eliz@gnu.org>
* PROBLEMS: Mention the problem from bug #17950.
2014-07-04 Eli Zaretskii <eliz@gnu.org>
* TODO: Remove items that were already done. Rearrange a few

View file

@ -1961,6 +1961,26 @@ Another possibility is to rebuild Emacs with the -shared-libgcc
switch, which will force Emacs to load libgcc_s_dw2-1.dll on startup,
ahead of any optional DLLs loaded on-demand later in the session.
** File selection dialog opens in incorrect directories
Invoking the file selection dialog on Windows 7 or later shows a
directory that is different from what was passed to `read-file-name'
or `x-file-dialog' via their arguments.
This is due to a deliberate change in behavior of the file selection
dialogs introduced in Windows 7. It is explicitly described in the
MSDN documentation of the GetOpenFileName API used by Emacs to pop up
the file selection dialog. For the details, see
http://msdn.microsoft.com/en-us/library/windows/desktop/ms646839%28v=vs.85%29.aspx
The dialog shows the last directory in which the user selected a file
in a previous invocation of the dialog with the same initial
directory.
You can reset this "memory" of that directory by invoking the file
selection dialog with a different initial directory.
** PATH can contain unexpanded environment variables
Old releases of TCC (version 9) and 4NT (up to version 8) do not correctly

View file

@ -1,3 +1,12 @@
2014-07-12 Eli Zaretskii <eliz@gnu.org>
* w32fns.c (Fx_file_dialog): Mention in the doc string the
behavior on Windows 7 and later when the function is repeatedly
invoked with the same value of DIR. (Bug#17950)
* xfns.c (Fx_file_dialog) [USE_MOTIF, USE_GTK]: Update the doc
string to match the one in w32fns.c.
2014-07-08 Eli Zaretskii <eliz@gnu.org>
* xdisp.c (move_it_to): Adjust calculation of line_start_x to what

View file

@ -6436,7 +6436,11 @@ or directory must exist.
This function is only defined on NS, MS Windows, and X Windows with the
Motif or Gtk toolkits. With the Motif toolkit, ONLY-DIR-P is ignored.
Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories. */)
Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories.
On Windows 7 and later, the file selection dialog "remembers" the last
directory where the user selected a file, and will open that directory
instead of DIR on subsequent invocations of this function with the same
value of DIR as in previous invocations; this is standard Windows behavior. */)
(Lisp_Object prompt, Lisp_Object dir, Lisp_Object default_filename, Lisp_Object mustmatch, Lisp_Object only_dir_p)
{
/* Filter index: 1: All Files, 2: Directories only */

View file

@ -5658,7 +5658,11 @@ or directory must exist.
This function is only defined on NS, MS Windows, and X Windows with the
Motif or Gtk toolkits. With the Motif toolkit, ONLY-DIR-P is ignored.
Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories. */)
Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories.
On Windows 7 and later, the file selection dialog "remembers" the last
directory where the user selected a file, and will open that directory
instead of DIR on subsequent invocations of this function with the same
value of DIR as in previous invocations; this is standard Windows behavior. */)
(Lisp_Object prompt, Lisp_Object dir, Lisp_Object default_filename,
Lisp_Object mustmatch, Lisp_Object only_dir_p)
{
@ -5830,7 +5834,11 @@ or directory must exist.
This function is only defined on NS, MS Windows, and X Windows with the
Motif or Gtk toolkits. With the Motif toolkit, ONLY-DIR-P is ignored.
Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories. */)
Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories.
On Windows 7 and later, the file selection dialog "remembers" the last
directory where the user selected a file, and will open that directory
instead of DIR on subsequent invocations of this function with the same
value of DIR as in previous invocations; this is standard Windows behavior. */)
(Lisp_Object prompt, Lisp_Object dir, Lisp_Object default_filename, Lisp_Object mustmatch, Lisp_Object only_dir_p)
{
struct frame *f = SELECTED_FRAME ();