[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
[MD:6750] expand-file-name with multibyte default_dir
- X-ml-count: 6750
- Subject: [MD:6750] expand-file-name with multibyte default_dir
- From: Kyotaro HORIGUCHI <horiguti@xxxxxxxxxxx>
- Date: Thu, 01 Sep 2005 05:14:57 +0900 (JST)
- User-agent: Mew version 4.2.53 on Emacs 22.0 / Mule 5.0 (榊) / Meadow-3.00-dev (菊)
堀口です. 多分 emacs-devel 行きなのですが, とりあえずここで.
Meadow3 で
(expand-file-name "hoge" "c:/漢字")
"c:/\301\372/hoge"
(expand-file-name "で" "c:/漢字")
"c:/漢字/で"
です. 結果の string を作るときに name が multibyte かどうかだけを
確認していて default_directory については見ていないのが原因です.
というわけでとりあえず Meadow3にたいするパッチです.
# Meadow で効いているのは最後だけですが..
Index: src/fileio.c
===================================================================
--- src/fileio.c (revision 3823)
+++ src/fileio.c (working copy)
@@ -1306,7 +1306,8 @@
{
nm = sys_translate_unix (nm);
return make_specified_string (nm, -1, strlen (nm),
- STRING_MULTIBYTE (name));
+ STRING_MULTIBYTE (name)
+ ||STRING_MULTIBYTE (default_directory));
}
#endif /* VMS */
#ifdef DOS_NT
@@ -1319,7 +1320,8 @@
{
if (strcmp (nm, SDATA (name)) != 0)
name = make_specified_string (nm, -1, strlen (nm),
- STRING_MULTIBYTE (name));
+ STRING_MULTIBYTE (name)
+ || STRING_MULTIBYTE (default_directory));
}
else
#endif
@@ -1329,7 +1331,8 @@
char temp[] = " :";
name = make_specified_string (nm, -1, p - nm,
- STRING_MULTIBYTE (name));
+ STRING_MULTIBYTE (name)
+ || STRING_MULTIBYTE (default_directory));
temp[0] = DRIVE_LETTER (drive);
name = concat2 (build_string (temp), name);
}
@@ -1338,7 +1341,8 @@
if (nm == SDATA (name))
return name;
return make_specified_string (nm, -1, strlen (nm),
- STRING_MULTIBYTE (name));
+ STRING_MULTIBYTE (name)
+ || STRING_MULTIBYTE (default_directory));
#endif /* not DOS_NT */
}
}
@@ -1716,7 +1720,8 @@
#endif /* DOS_NT */
result = make_specified_string (target, -1, o - target,
- STRING_MULTIBYTE (name));
+ STRING_MULTIBYTE (name)
+ || STRING_MULTIBYTE (default_directory));
/* Again look to see if the file name has special constructs in it
and perhaps call the corresponding file handler. This is needed
--
ほりぐちきょうたろう