+2008-11-29 Juanma Barranquero <lekktu@gmail.com>
+
+ * w32proc.c: Include "coding.h".
+ (Fw32_short_file_name): Encode filename passed to Windows API.
+ (Fw32_long_file_name): Encode filename passed to Windows API and
+ decode back the result. (Bug#1433)
+
2008-11-29 Kenichi Handa <handa@m17n.org>
* charset.h (CHAR_CHARSET_P): Check if the encoder is loaded or
#include "syssignal.h"
#include "w32term.h"
#include "dispextern.h" /* for xstrcasecmp */
+#include "coding.h"
#define RVA_TO_PTR(var,section,filedata) \
((void *)((section)->PointerToRawData \
filename = Fexpand_file_name (filename, Qnil);
/* luckily, this returns the short version of each element in the path. */
- if (GetShortPathName (SDATA (filename), shortname, MAX_PATH) == 0)
+ if (GetShortPathName (SDATA (ENCODE_FILE (filename)), shortname, MAX_PATH) == 0)
return Qnil;
CORRECT_DIR_SEPS (shortname);
/* first expand it. */
filename = Fexpand_file_name (filename, Qnil);
- if (!w32_get_long_filename (SDATA (filename), longname, MAX_PATH))
+ if (!w32_get_long_filename (SDATA (ENCODE_FILE (filename)), longname, MAX_PATH))
return Qnil;
CORRECT_DIR_SEPS (longname);
if (drive_only && longname[1] == ':' && longname[2] == '/' && !longname[3])
longname[2] = '\0';
- return build_string (longname);
+ return DECODE_FILE (build_string (longname));
}
DEFUN ("w32-set-process-priority", Fw32_set_process_priority,