summaryrefslogtreecommitdiff
path: root/src/w32fns.c
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2010-05-11 20:23:52 +0300
committerEli Zaretskii <eliz@gnu.org>2010-05-11 20:23:52 +0300
commitc8670ded9c8c4fe3801b6a378ee93f9180ce0453 (patch)
tree37dc29acb52543a4ce23c305b1ecf7456e758f75 /src/w32fns.c
parent3ffd461547221ea713427fa3e547b422cdc77f1c (diff)
downloademacs-c8670ded9c8c4fe3801b6a378ee93f9180ce0453.tar.gz
emacs-c8670ded9c8c4fe3801b6a378ee93f9180ce0453.tar.bz2
emacs-c8670ded9c8c4fe3801b6a378ee93f9180ce0453.zip
Backport from trunk: Fix bug #6126.
makefile.w32-in ($(BLD)/w32fns.$(O)): Depend on $(SRC)/w32.h. w32fns.c: Include w32.h. (Fw32_shell_execute): Decode the error message before passing it to `error'.
Diffstat (limited to 'src/w32fns.c')
-rw-r--r--src/w32fns.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/w32fns.c b/src/w32fns.c
index 795e7208569..bc310da0d2f 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -47,6 +47,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include "systime.h"
#include "termhooks.h"
#include "w32heap.h"
+#include "w32.h"
#include "bitmaps/gray.xbm"
@@ -6333,6 +6334,7 @@ an integer representing a ShowWindow flag:
Lisp_Object operation, document, parameters, show_flag;
{
Lisp_Object current_dir;
+ char *errstr;
CHECK_STRING (document);
@@ -6353,7 +6355,17 @@ an integer representing a ShowWindow flag:
XINT (show_flag) : SW_SHOWDEFAULT))
> 32)
return Qt;
- error ("ShellExecute failed: %s", w32_strerror (0));
+ errstr = w32_strerror (0);
+ /* The error string might be encoded in the locale's encoding. */
+ if (!NILP (Vlocale_coding_system))
+ {
+ Lisp_Object decoded =
+ code_convert_string_norecord (make_unibyte_string (errstr,
+ strlen (errstr)),
+ Vlocale_coding_system, 0);
+ errstr = (char *)SDATA (decoded);
+ }
+ error ("ShellExecute failed: %s", errstr);
}
/* Lookup virtual keycode from string representing the name of a