diff options
Diffstat (limited to 'src/w32proc.c')
-rw-r--r-- | src/w32proc.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/w32proc.c b/src/w32proc.c index ea16f26a0ee..89748267bc6 100644 --- a/src/w32proc.c +++ b/src/w32proc.c @@ -2647,10 +2647,11 @@ All path elements in FILENAME are converted to their short names. */) filename = Fexpand_file_name (filename, Qnil); /* luckily, this returns the short version of each element in the path. */ - if (GetShortPathName (SDATA (ENCODE_FILE (filename)), shortname, MAX_PATH) == 0) + if (w32_get_short_filename (SDATA (ENCODE_FILE (filename)), + shortname, MAX_PATH) == 0) return Qnil; - dostounix_filename (shortname, 0); + dostounix_filename (shortname); /* No need to DECODE_FILE, because 8.3 names are pure ASCII. */ return build_string (shortname); @@ -2664,7 +2665,7 @@ If FILENAME does not exist, return nil. All path elements in FILENAME are converted to their long names. */) (Lisp_Object filename) { - char longname[ MAX_PATH ]; + char longname[ MAX_UTF8_PATH ]; int drive_only = 0; CHECK_STRING (filename); @@ -2676,10 +2677,11 @@ All path elements in FILENAME are converted to their long names. */) /* first expand it. */ filename = Fexpand_file_name (filename, Qnil); - if (!w32_get_long_filename (SDATA (ENCODE_FILE (filename)), longname, MAX_PATH)) + if (!w32_get_long_filename (SDATA (ENCODE_FILE (filename)), longname, + MAX_UTF8_PATH)) return Qnil; - dostounix_filename (longname, 0); + dostounix_filename (longname); /* If we were passed only a drive, make sure that a slash is not appended for consistency with directories. Allow for drive mapping via SUBST @@ -2687,7 +2689,7 @@ All path elements in FILENAME are converted to their long names. */) if (drive_only && longname[1] == ':' && longname[2] == '/' && !longname[3]) longname[2] = '\0'; - return DECODE_FILE (build_string (longname)); + return DECODE_FILE (build_unibyte_string (longname)); } DEFUN ("w32-set-process-priority", Fw32_set_process_priority, |