From: Kenichi Handa Date: Wed, 14 Sep 2005 02:18:49 +0000 (+0000) Subject: (Fexpand_file_name): Check multibyteness of X-Git-Tag: emacs-pretest-22.0.90~7113 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=2b046a720b0564ae3f8685cb153370586c87e17c;p=emacs.git (Fexpand_file_name): Check multibyteness of default_directory. --- diff --git a/src/ChangeLog b/src/ChangeLog index 4c97d751c45..44fcf21a242 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2005-09-14 Kenichi Handa + + * fileio.c (Fexpand_file_name): Check multibyteness of + default_directory. + 2005-09-13 Kenichi Handa * composite.c (compose_chars_in_text): Delete it. diff --git a/src/fileio.c b/src/fileio.c index a51371be0e6..cd4eaa800fd 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -1056,6 +1056,7 @@ See also the function `substitute-in-file-name'. */) #endif /* DOS_NT */ int length; Lisp_Object handler, result; + int multibyte; CHECK_STRING (name); @@ -1133,6 +1134,7 @@ See also the function `substitute-in-file-name'. */) name = FILE_SYSTEM_CASE (name); nm = SDATA (name); + multibyte = STRING_MULTIBYTE (name); #ifdef DOS_NT /* We will force directory separators to be either all \ or /, so make @@ -1298,8 +1300,7 @@ See also the function `substitute-in-file-name'. */) if (index (nm, '/')) { nm = sys_translate_unix (nm); - return make_specified_string (nm, -1, strlen (nm), - STRING_MULTIBYTE (name)); + return make_specified_string (nm, -1, strlen (nm), multibyte); } #endif /* VMS */ #ifdef DOS_NT @@ -1311,8 +1312,7 @@ See also the function `substitute-in-file-name'. */) if (IS_DIRECTORY_SEP (nm[1])) { if (strcmp (nm, SDATA (name)) != 0) - name = make_specified_string (nm, -1, strlen (nm), - STRING_MULTIBYTE (name)); + name = make_specified_string (nm, -1, strlen (nm), multibyte); } else #endif @@ -1321,8 +1321,7 @@ See also the function `substitute-in-file-name'. */) { char temp[] = " :"; - name = make_specified_string (nm, -1, p - nm, - STRING_MULTIBYTE (name)); + name = make_specified_string (nm, -1, p - nm, multibyte); temp[0] = DRIVE_LETTER (drive); name = concat2 (build_string (temp), name); } @@ -1330,8 +1329,7 @@ See also the function `substitute-in-file-name'. */) #else /* not DOS_NT */ if (nm == SDATA (name)) return name; - return make_specified_string (nm, -1, strlen (nm), - STRING_MULTIBYTE (name)); + return make_specified_string (nm, -1, strlen (nm), multibyte); #endif /* not DOS_NT */ } } @@ -1443,6 +1441,7 @@ See also the function `substitute-in-file-name'. */) && !newdir) { newdir = SDATA (default_directory); + multibyte |= STRING_MULTIBYTE (default_directory); #ifdef DOS_NT /* Note if special escape prefix is present, but remove for now. */ if (newdir[0] == '/' && newdir[1] == ':') @@ -1708,8 +1707,7 @@ See also the function `substitute-in-file-name'. */) CORRECT_DIR_SEPS (target); #endif /* DOS_NT */ - result = make_specified_string (target, -1, o - target, - STRING_MULTIBYTE (name)); + result = make_specified_string (target, -1, o - target, multibyte); /* Again look to see if the file name has special constructs in it and perhaps call the corresponding file handler. This is needed