2005年6月5日日曜日

gripの日本語ファイル名



なんなだかファイル名がどうやってもUTF-8になるのでてきとーにiconvかましてにげてみた。


src/launch.cの170行め付近。TranslateString関数内でファイル名の%[A-Z]の展開とかしてるらしいので、その関数の一番最後に、以下のコードを足す。(#include <iconv.h>をわすれずに)


printfデバグしながら眺めてると、コマンドらいん引数とかもこことおるのね。「っま、いいでしょう。」(某教授の真似をする某リーダー風)



/*fllowing block is hack for EUC by akira*/
{
iconv_t hIC;
char buf[1024];
char *in,*out;
int i;
size_t in_size,out_size;
hIC=iconv_open ("EUC-JP", "UTF-8");
in_size=outstr->len;
out_size=1023;
for(i=0;i<1024;i++)buf[i]=0;
//printf("debug:%d %s\n",outstr->len,outstr->str);
in=outstr->str;
out=buf;
if(-1 != iconv (hIC,&in,&in_size,&out, &out_size)){

//printf("debug:%s\n",buf);
g_string_assign(outstr,buf);
}
iconv_close(hIC);

}

深いディレクトリでこけるとかいう突っ込みしたい人。自分で書いてください。





0 件のコメント:

コメントを投稿