unrar 中文 patch

看板FreeBSD作者時間21年前 (2004/07/02 02:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ 本文轉錄自 [statue] 看板 作者: statue (statue) 看板: statue 標題: Re: [轉錄]unrar 中文 patch 時間: Thu Jul 1 16:33:41 2004 http://lists.debian.org/debian-chinese-big5/2002/10/msg00046.html unrar 2.71-1,此版並不支援 Unicode,請改用 rar/unrar 3.0-2。 目前 /usr/ports/archivers/unrar 的版本是 3.30 不過解中文目錄還是有問題。 --- unicode.cpp.orig Thu Jul 1 16:25:11 2004 +++ unicode.cpp Thu Jul 1 16:26:12 2004 @@ -2,6 +2,7 @@ void WideToChar(const wchar *Src,char *Dest,int DestSize) { +#if 0 /* patch for chinese filename */ #ifdef _WIN_32 WideCharToMultiByte(CP_ACP,0,Src,-1,Dest,DestSize,NULL,NULL); #else @@ -18,6 +19,7 @@ if (Src[I]==0) break; } +#endif #endif #endif #endif --- arcread.cpp.orig Thu Jan 22 21:45:34 2004 +++ arcread.cpp Thu Jul 1 16:30:16 2004 @@ -540,6 +540,7 @@ void Archive::ConvertUnknownHeader() { + int s1=0; if (NewLhd.UnpVer<20 && (NewLhd.FileAttr & 0x10)) NewLhd.Flags|=LHD_DIRECTORY; if (NewLhd.HostOS>=HOST_MAX) @@ -551,6 +552,14 @@ } for (char *s=NewLhd.FileName;*s!=0;s=charnext(s)) { + if (s1==1) { /* skip Big5 second byte */ + s1=0; + continue; + } + if((byte)*s>127) { /* Big5 first byte */ + s1=1; + continue; + } if (*s=='/' || *s=='\\') *s=CPATHDIVIDER; #if defined(_APPLE) && !defined(UNICODE_SUPPORTED) 感謝 visor 提供該問題與 patch。 -- ※ Origin: SayYA 資訊站 <bbs.sayya.org> ◆ From: 140.138.150.54
文章代碼(AID): #10v5Z600 (FreeBSD)
文章代碼(AID): #10v5Z600 (FreeBSD)