[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[FDclone-users:00310] Symlink先の文字化け



小松です。

Symlink 先の表示の文字化けに関するバグなのですが、
例えば Symlink "日本語.txt" が "日本語のとても長いファイル名.txt"
を参照していた場合、最下行のファイル名がfnameofsの増加に伴って

日本語.txt -> 日本語のと
 本語.txt -> 日本語のと 
本語.txt -> 日本語のとて
 語.txt -> 日本語のとて 
語.txt -> 日本語のとても
 .txt -> 日本語のとても 
.txt -> 日本語のとても長
txt -> 日本語のとても長 
xt -> 日本語のとても長い
t -> 日本語のとても長い 
 -> 日本語のとても長いフ
-> 日本語のとても長いフ 
> 日本語のとても長いファ
 日本語のとても長いファ 
日本語のとても長いファイ
 楔譴里箸討眥垢ぅ侫.ぅ
本語のとても長いファイル
楔譴里箸討眥垢ぅ侫.ぅ詭
語のとても長いファイル名
譴里箸討眥垢ぅ侫.ぅ詭\2
...

のように化けるバグがありました。以下のパッチで直ります。

--- browse.c~	2004-07-07 00:00:00.000000000 +0900
+++ browse.c	2004-07-15 18:50:00.096771592 +0900
@@ -684,7 +684,7 @@
 # ifndef	_NOARCHIVE
 	else if (archivefile) {
 		if (namep -> linkname)
-			strncpy3(buf, &(namep -> linkname[len]), &w, 0);
+			strncpy3(buf, namep -> linkname, &w, len);
 	}
 # endif
 	else {
@@ -693,7 +693,7 @@
 			tmp, width * 2 + len);
 		if (i >= 0) {
 			tmp[i] = '\0';
-			strncpy3(buf, &(tmp[len]), &w, 0);
+			strncpy3(buf, tmp, &w, len);
 		}
 		free(tmp);
 	}

--------
Hironao Komatsu <s1100089@u-aizu.ac.jp>