emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-24 73cad91 01/01: Fix bug #19141 with UNCs in w32-sh


From: Eli Zaretskii
Subject: [Emacs-diffs] emacs-24 73cad91 01/01: Fix bug #19141 with UNCs in w32-shell-execute.
Date: Tue, 25 Nov 2014 17:05:27 +0000

branch: emacs-24
commit 73cad916c8a225dac3bd0abd116a89ce52052574
Author: Eli Zaretskii <address@hidden>
Date:   Tue Nov 25 19:04:14 2014 +0200

    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.
---
 src/ChangeLog |    5 +++++
 src/w32fns.c  |    9 ++++++++-
 2 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/src/ChangeLog b/src/ChangeLog
index b17f719..23fd46b 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2014-11-25  Eli Zaretskii  <address@hidden>
+
+       * w32fns.c (Fw32_shell_execute): Convert forward slashes in
+       DOCUMENT to backslashes, if DOCUMENT is a file.  (Bug#19141)
+
 2014-11-25  Ulrich Müller  <address@hidden>
 
        * Makefile.in (temacs$(EXEEXT)): Use consistent flag settings
diff --git a/src/w32fns.c b/src/w32fns.c
index bc95005..8bd5e81 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -6987,7 +6987,14 @@ a ShowWindow flag:
       Lisp_Object absdoc_encoded = ENCODE_FILE (absdoc);
 
       if (faccessat (AT_FDCWD, SSDATA (absdoc_encoded), F_OK, AT_EACCESS) == 0)
-       document = absdoc_encoded;
+       {
+         /* ShellExecute fails if DOCUMENT is a UNC with forward
+            slashes (expand-file-name above converts all backslashes
+            to forward slashes).  Now that we know DOCUMENT is a
+            file, we can mirror all forward slashes into backslashes.  */
+         unixtodos_filename (SSDATA (absdoc_encoded));
+         document = absdoc_encoded;
+       }
       else
        document = ENCODE_FILE (document);
     }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]