diff options
| author | Eli Zaretskii | 2014-07-12 12:25:29 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2014-07-12 12:25:29 +0300 |
| commit | 47f63aa79abed1da90fabd637529d5f8161f84fa (patch) | |
| tree | 9aae64b8c1eb38ea45daf7e482a07c6f28b21a26 | |
| parent | a5a8e250d5fc17b3e4a7955f2c896f2b050b2960 (diff) | |
| download | emacs-47f63aa79abed1da90fabd637529d5f8161f84fa.tar.gz emacs-47f63aa79abed1da90fabd637529d5f8161f84fa.zip | |
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.
| -rw-r--r-- | etc/ChangeLog | 4 | ||||
| -rw-r--r-- | etc/PROBLEMS | 20 | ||||
| -rw-r--r-- | src/ChangeLog | 9 | ||||
| -rw-r--r-- | src/w32fns.c | 6 | ||||
| -rw-r--r-- | src/xfns.c | 12 |
5 files changed, 48 insertions, 3 deletions
diff --git a/etc/ChangeLog b/etc/ChangeLog index d30c03f1c20..06a0c4b5312 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2014-07-12 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * PROBLEMS: Mention the problem from bug #17950. | ||
| 4 | |||
| 1 | 2014-07-04 Eli Zaretskii <eliz@gnu.org> | 5 | 2014-07-04 Eli Zaretskii <eliz@gnu.org> |
| 2 | 6 | ||
| 3 | * TODO: Remove items that were already done. Rearrange a few | 7 | * TODO: Remove items that were already done. Rearrange a few |
diff --git a/etc/PROBLEMS b/etc/PROBLEMS index 1f9200febbf..cea2213a24e 100644 --- a/etc/PROBLEMS +++ b/etc/PROBLEMS | |||
| @@ -1961,6 +1961,26 @@ Another possibility is to rebuild Emacs with the -shared-libgcc | |||
| 1961 | switch, which will force Emacs to load libgcc_s_dw2-1.dll on startup, | 1961 | switch, which will force Emacs to load libgcc_s_dw2-1.dll on startup, |
| 1962 | ahead of any optional DLLs loaded on-demand later in the session. | 1962 | ahead of any optional DLLs loaded on-demand later in the session. |
| 1963 | 1963 | ||
| 1964 | ** File selection dialog opens in incorrect directories | ||
| 1965 | |||
| 1966 | Invoking the file selection dialog on Windows 7 or later shows a | ||
| 1967 | directory that is different from what was passed to `read-file-name' | ||
| 1968 | or `x-file-dialog' via their arguments. | ||
| 1969 | |||
| 1970 | This is due to a deliberate change in behavior of the file selection | ||
| 1971 | dialogs introduced in Windows 7. It is explicitly described in the | ||
| 1972 | MSDN documentation of the GetOpenFileName API used by Emacs to pop up | ||
| 1973 | the file selection dialog. For the details, see | ||
| 1974 | |||
| 1975 | http://msdn.microsoft.com/en-us/library/windows/desktop/ms646839%28v=vs.85%29.aspx | ||
| 1976 | |||
| 1977 | The dialog shows the last directory in which the user selected a file | ||
| 1978 | in a previous invocation of the dialog with the same initial | ||
| 1979 | directory. | ||
| 1980 | |||
| 1981 | You can reset this "memory" of that directory by invoking the file | ||
| 1982 | selection dialog with a different initial directory. | ||
| 1983 | |||
| 1964 | ** PATH can contain unexpanded environment variables | 1984 | ** PATH can contain unexpanded environment variables |
| 1965 | 1985 | ||
| 1966 | Old releases of TCC (version 9) and 4NT (up to version 8) do not correctly | 1986 | Old releases of TCC (version 9) and 4NT (up to version 8) do not correctly |
diff --git a/src/ChangeLog b/src/ChangeLog index d2f1999b546..493bcde7418 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,12 @@ | |||
| 1 | 2014-07-12 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * w32fns.c (Fx_file_dialog): Mention in the doc string the | ||
| 4 | behavior on Windows 7 and later when the function is repeatedly | ||
| 5 | invoked with the same value of DIR. (Bug#17950) | ||
| 6 | |||
| 7 | * xfns.c (Fx_file_dialog) [USE_MOTIF, USE_GTK]: Update the doc | ||
| 8 | string to match the one in w32fns.c. | ||
| 9 | |||
| 1 | 2014-07-08 Eli Zaretskii <eliz@gnu.org> | 10 | 2014-07-08 Eli Zaretskii <eliz@gnu.org> |
| 2 | 11 | ||
| 3 | * xdisp.c (move_it_to): Adjust calculation of line_start_x to what | 12 | * xdisp.c (move_it_to): Adjust calculation of line_start_x to what |
diff --git a/src/w32fns.c b/src/w32fns.c index 638c617df99..1c73cda469a 100644 --- a/src/w32fns.c +++ b/src/w32fns.c | |||
| @@ -6436,7 +6436,11 @@ or directory must exist. | |||
| 6436 | 6436 | ||
| 6437 | This function is only defined on NS, MS Windows, and X Windows with the | 6437 | This function is only defined on NS, MS Windows, and X Windows with the |
| 6438 | Motif or Gtk toolkits. With the Motif toolkit, ONLY-DIR-P is ignored. | 6438 | Motif or Gtk toolkits. With the Motif toolkit, ONLY-DIR-P is ignored. |
| 6439 | Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories. */) | 6439 | Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories. |
| 6440 | On Windows 7 and later, the file selection dialog "remembers" the last | ||
| 6441 | directory where the user selected a file, and will open that directory | ||
| 6442 | instead of DIR on subsequent invocations of this function with the same | ||
| 6443 | value of DIR as in previous invocations; this is standard Windows behavior. */) | ||
| 6440 | (Lisp_Object prompt, Lisp_Object dir, Lisp_Object default_filename, Lisp_Object mustmatch, Lisp_Object only_dir_p) | 6444 | (Lisp_Object prompt, Lisp_Object dir, Lisp_Object default_filename, Lisp_Object mustmatch, Lisp_Object only_dir_p) |
| 6441 | { | 6445 | { |
| 6442 | /* Filter index: 1: All Files, 2: Directories only */ | 6446 | /* Filter index: 1: All Files, 2: Directories only */ |
diff --git a/src/xfns.c b/src/xfns.c index 692504ef762..23fba44f1f3 100644 --- a/src/xfns.c +++ b/src/xfns.c | |||
| @@ -5658,7 +5658,11 @@ or directory must exist. | |||
| 5658 | 5658 | ||
| 5659 | This function is only defined on NS, MS Windows, and X Windows with the | 5659 | This function is only defined on NS, MS Windows, and X Windows with the |
| 5660 | Motif or Gtk toolkits. With the Motif toolkit, ONLY-DIR-P is ignored. | 5660 | Motif or Gtk toolkits. With the Motif toolkit, ONLY-DIR-P is ignored. |
| 5661 | Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories. */) | 5661 | Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories. |
| 5662 | On Windows 7 and later, the file selection dialog "remembers" the last | ||
| 5663 | directory where the user selected a file, and will open that directory | ||
| 5664 | instead of DIR on subsequent invocations of this function with the same | ||
| 5665 | value of DIR as in previous invocations; this is standard Windows behavior. */) | ||
| 5662 | (Lisp_Object prompt, Lisp_Object dir, Lisp_Object default_filename, | 5666 | (Lisp_Object prompt, Lisp_Object dir, Lisp_Object default_filename, |
| 5663 | Lisp_Object mustmatch, Lisp_Object only_dir_p) | 5667 | Lisp_Object mustmatch, Lisp_Object only_dir_p) |
| 5664 | { | 5668 | { |
| @@ -5830,7 +5834,11 @@ or directory must exist. | |||
| 5830 | 5834 | ||
| 5831 | This function is only defined on NS, MS Windows, and X Windows with the | 5835 | This function is only defined on NS, MS Windows, and X Windows with the |
| 5832 | Motif or Gtk toolkits. With the Motif toolkit, ONLY-DIR-P is ignored. | 5836 | Motif or Gtk toolkits. With the Motif toolkit, ONLY-DIR-P is ignored. |
| 5833 | Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories. */) | 5837 | Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories. |
| 5838 | On Windows 7 and later, the file selection dialog "remembers" the last | ||
| 5839 | directory where the user selected a file, and will open that directory | ||
| 5840 | instead of DIR on subsequent invocations of this function with the same | ||
| 5841 | value of DIR as in previous invocations; this is standard Windows behavior. */) | ||
| 5834 | (Lisp_Object prompt, Lisp_Object dir, Lisp_Object default_filename, Lisp_Object mustmatch, Lisp_Object only_dir_p) | 5842 | (Lisp_Object prompt, Lisp_Object dir, Lisp_Object default_filename, Lisp_Object mustmatch, Lisp_Object only_dir_p) |
| 5835 | { | 5843 | { |
| 5836 | struct frame *f = SELECTED_FRAME (); | 5844 | struct frame *f = SELECTED_FRAME (); |