[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
[MD:4288] Re: Write file: ダイアログボックスで文字欠落?
- X-ml-count: 4288
- Subject: [MD:4288] Re: Write file: ダイアログボックスで文字欠落?
- From: MIYOSHI Masanori <miyoshi@xxxxxxxxxxxxxxxx>
- Date: Sun, 09 Mar 2003 01:58:42 +0900
- User-agent: Wanderlust/2.11.1 (Wonderwall) EMIKO/1.14.1 (Choanoflagellata) LIMIT/1.14.7 (Fujiidera) APEL/10.4 Emacs/21.1 (i386-msvc-nt5.1.2600) MULE/5.0 (SAKAKI) Meadow/1.99 Alpha6-dev (IKADUCHI)
>>>>> [meadow-users-jp : No.4463] にて
>>>>> "山根" = Osamu Yamane <yamane@xxxxxxxxxxxxxxx> さんは書きました:
山根> Save Buffer As...で出てくる Write file: ダイアログボックスで、
山根> 表示されるファイル名に日本語文字が混じっていると、そのファイル名
山根> の文字が一部削られたようになる事があるようです。
山根> 具体的に書くと、
山根> 1234申5678.txt という名前のファイルを編集した後
山根> File → Save Buffer As ...
山根> とすると、
山根> Write file: ダイアログボックスで
山根> ディレクトリの表示は正常
山根> ファイル名 5678.txt
山根> となり、ファイル名の文字が一部削られてしまう
これどうしたらいいんでしょうか?
full_path_name がマルチバイト文字列であると仮定すれば、下記の修正
で対応できます。はたしてこの仮定は正しいものでしょうか?
;; これに加えて strncpy() を使っているところもありますね。
本格的には、
Lisp_Object から取り出した文字列を C で操作するのではなくて、
Lisp_Object のまま操作した後で、最後に文字列を取り出すのがいいん
でしょうか?
--- ./mw32fns.c.orig 2003-03-09 01:45:48.000000000 +0900
+++ ./mw32fns.c 2003-03-09 01:46:09.000000000 +0900
@@ -8953,7 +8953,7 @@
unixtodos_filename (full_path_name);
- file_name_only = strrchr (full_path_name, '\\');
+ file_name_only = _mbsrchr (full_path_name, '\\');
if (!file_name_only)
file_name_only = full_path_name;
else
--
三好 雅則 mailto:miyoshi@xxxxxxxxxxxxxxxx
http://www.boreas.dti.ne.jp/~miyoshi/ (Meadow2 のページ始めました)