|
sylpheed-jp:2654
From: "IWAMOTO, Kouichi" <sue@xxxxxxxxxx> 岩本です。 On Thu, 13 May 2004 14:19:06 +0900 Harada kazutaka <kazutaka@xxxxxxxxxx> wrote: > > > というわけで、現状のSylpheedのjpilotアドレス帳対応では、 > > > 日本語は使えないと思った方がいいと思います。 > > > > うーん、そうなんですか…。 > > せっかくあるのに使えないのはもったいないですよね。 > > と言うことで初めてPatchを作ってみました。 時間が取れたので、私の方でもパッチを作ってみました。 一部、ハラダさんのパッチを参考にさせてもらっています。 一応、ロケールを見て処理を分けるようにして英語環境等でも問題が出ない様に したつもりですが、英語版のPalm等を持っていないので確認できていません。 どなたか、試せる方はいらっしゃいませんでしょうか。 動作は以下の様にしています。 ・現在の文字コードセットがEUC-JPの時、名前やカテゴリ名等の文字コードを SJISからEUC-JPに変換する。 ・現在のロケールの先頭2文字がjaの時、fullnameを"Firstname Lastname" ではなく、"Lastname Firstname"の順で表示する。 ・日本語版のpalmでは姓や名などが"岩本\01いわもと"というように、 "漢字\01読み"という形式で記録されているので、\01の前のみを使う。 > が、正直言ってC言語が良く分からないまま見よう見まねで > 適当に作った為、自分が困らない程度のひどい代物です。。。 > > かなり問題が多いと思いますので、後学の為に指摘/アドバイス等 > して頂けると助かります。 私も素人なのであまり偉そうな事は言えないのですが、 気になった点を書きます。 > + strcat( fullName, g_strsplit( addrEnt[ IND_LABEL_LASTNAME ], "\1", -1 )[0] ); g_strsplitが内部で確保したメモリがリークしてしまいます。 strcat( fullName, lastName = g_strsplit( addrEnt[ IND_LABEL_LASTNAME ], "\1", -1 )[0] ); g_strfreev(lastName); というように、使い終えたらg_strfreevで解放した方がいいです。 > + conv_sjistoeuc( convName, NULL, fullName ); 第2引数は実際には使われていないようですが、おそらく元々の意図では 出力領域のサイズを渡す為にあると思うので、ポインタであるNULLではなく convNameのサイズであるFULLNAME_BUFSIZEを渡した方がいいと思います。 > + gchar* catName; > > for( i = 0; i < JPILOT_NUM_CATEG; i++ ) { > ItemFolder *folder = addritem_create_item_folder(); > - addritem_folder_set_name( folder, cat->name[i] ); > + conv_sjistoeuc( catName, NULL, cat->name[i]); 変換用の領域の実体が確保されていないので、よそのメモリを壊してしまう 事があると思います。 gchar catName[JPILOT_LEN_CATEG]; というように、配列を使った方がいいです。 -- いわもと こういち(sue@xxxxxxxxxx) # なるようになれ、明日もイケイケ♪ -- いわもと こういち(sue@xxxxxxxxxx) # なるようになれ、明日もイケイケ♪ 2647 2004-05-11 00:05 [kazutaka@xxxxxxxxxx ] JPilotアドレス帳で文字化け 2649 2004-05-11 18:30 ┗[sue@xxxxxxxxxx ] 2651 2004-05-11 23:57 ┗[kazutaka@xxxxxxxxxx ] 2652 2004-05-13 14:19 ┗[kazutaka@xxxxxxxxxx ] -> @ 2654 2004-05-16 11:00 ┗[sue@xxxxxxxxxx ] 2655 2004-05-17 01:10 ┗[kazutaka@xxxxxxxxxx ] |