aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2014-11-25 19:04:14 +0200
committerEli Zaretskii2014-11-25 19:04:14 +0200
commit73cad916c8a225dac3bd0abd116a89ce52052574 (patch)
tree7d025c6062c155227cc28548971e6c0631a90b83
parented54567c7cf958bb5658f4b6da1b0b7decc1d31a (diff)
downloademacs-73cad916c8a225dac3bd0abd116a89ce52052574.tar.gz
emacs-73cad916c8a225dac3bd0abd116a89ce52052574.zip
Fix bug #19141 with UNCs in w32-shell-execute.
src/w32fns.c (Fw32_shell_execute): Convert forward slashes in DOCUMENT to backslashes, if DOCUMENT is a file.
-rw-r--r--src/ChangeLog5
-rw-r--r--src/w32fns.c9
2 files changed, 13 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index b17f719ce6d..23fd46bd4cd 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12014-11-25 Eli Zaretskii <eliz@gnu.org>
2
3 * w32fns.c (Fw32_shell_execute): Convert forward slashes in
4 DOCUMENT to backslashes, if DOCUMENT is a file. (Bug#19141)
5
12014-11-25 Ulrich Müller <ulm@gentoo.org> 62014-11-25 Ulrich Müller <ulm@gentoo.org>
2 7
3 * Makefile.in (temacs$(EXEEXT)): Use consistent flag settings 8 * Makefile.in (temacs$(EXEEXT)): Use consistent flag settings
diff --git a/src/w32fns.c b/src/w32fns.c
index bc95005f52a..8bd5e8132b3 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -6987,7 +6987,14 @@ a ShowWindow flag:
6987 Lisp_Object absdoc_encoded = ENCODE_FILE (absdoc); 6987 Lisp_Object absdoc_encoded = ENCODE_FILE (absdoc);
6988 6988
6989 if (faccessat (AT_FDCWD, SSDATA (absdoc_encoded), F_OK, AT_EACCESS) == 0) 6989 if (faccessat (AT_FDCWD, SSDATA (absdoc_encoded), F_OK, AT_EACCESS) == 0)
6990 document = absdoc_encoded; 6990 {
6991 /* ShellExecute fails if DOCUMENT is a UNC with forward
6992 slashes (expand-file-name above converts all backslashes
6993 to forward slashes). Now that we know DOCUMENT is a
6994 file, we can mirror all forward slashes into backslashes. */
6995 unixtodos_filename (SSDATA (absdoc_encoded));
6996 document = absdoc_encoded;
6997 }
6991 else 6998 else
6992 document = ENCODE_FILE (document); 6999 document = ENCODE_FILE (document);
6993 } 7000 }