From t-suwa @ users.sourceforge.jp Sat Dec 9 00:03:57 2006 From: t-suwa @ users.sourceforge.jp (Tomotaka SUWA) Date: Sat, 09 Dec 2006 00:03:57 +0900 Subject: [aquaskk-dev 64] =?iso-2022-jp?b?dXRmOC0xLjEgGyRCJWolaiE8JTkbKEI=?= Message-ID: 諏訪です。 AquaSKK BETA utf8-1.1 をリリースしました。 ▽追加・改善された機能 ・単語登録時にペーストされた文字列を UTF-8 として登録するように改善 ・数値変換部分を UTF-8 化 ▽不具合修正 ・skkserv 経由で SKK-JISYO.JIS3_4 を検索すると固まる不具合を修正 - * - 今回は DictionarySet を大幅にリファクタリングしました。CppCFString を std::string に置き換え、よりポータブルなクラスになりました。 この BETA で問題が出なければ、AquaSKK 3.2 としてリリースする予定です。 よろしくお願いします。 -- Tomotaka SUWA From t-suwa @ users.sourceforge.jp Sat Dec 9 10:25:27 2006 From: t-suwa @ users.sourceforge.jp (Tomotaka SUWA) Date: Sat, 09 Dec 2006 10:25:27 +0900 Subject: [aquaskk-dev 65] =?iso-2022-jp?b?dXRmOC0xLjIgGyRCJWolaiE8JTkbKEI=?= Message-ID: 諏訪です。 AquaSKK BETA utf8-1.2 をリリースしました。 ▽追加・改善された機能 ・特になし ▽不具合修正 ・文字列のエンコード変換時に、バッファーオーバーランする不具合を修正 - * - CppCFString::toCString 部分の diff は以下の通りです。 - int ratio = 3; - do { - if(buf) delete[] buf; - buf = new char[len * ratio]; - ++ ratio; - } while(!CFStringGetCString(cf_string, buf, len * ratio, encoding)); + int bufsize = CFStringGetMaximumSizeForEncoding(len, encoding); + bufsize += 1; // for NULL terminator + buf = new char[bufsize]; + CFStringGetCString(cf_string, buf, bufsize, encoding); 古いコードで ++ ratio している箇所が問題でした。この結果、 CFStringGetCString では『buf の実際のサイズ < bufsize』ということになり、 アロケートされていないエリアを踏んでしまいました。 今まで出なかったのが不思議といえば不思議です。 修正コードでは素直に CFStringGetMaximumSizeForEncoding を呼び出し、最大 のバッファサイズを確保するようにしました。 よろしくお願いします。 -- Tomotaka SUWA From t-suwa @ users.sourceforge.jp Sat Dec 23 01:23:33 2006 From: t-suwa @ users.sourceforge.jp (Tomotaka SUWA) Date: Sat, 23 Dec 2006 01:23:33 +0900 Subject: [aquaskk-dev 66] =?iso-2022-jp?b?QXF1YVNLSyAzLjIgGyRCJWolaiE8GyhC?= =?iso-2022-jp?b?GyRCJTkbKEI=?= Message-ID: 諏訪です。 AquaSKK 3.2 をリリースしました。 http://sourceforge.jp/projects/aquaskk/files/?release_id=23229#23229 リリースタグは release-3_2 です。 ▼追加・改善された機能 ・ユーザー辞書を UTF-8 化(skk-jisyo.utf8) ・SKK-JISYO.JIS3_4 に対応 ・単語登録時にペーストされた文字列を UTF-8 として登録するように改善 ▼不具合修正 ・文字列のエンコード変換時に、バッファーオーバーランする不具合を修正 - * - 新エンジンに向けた下地ならしができて良かったなぁと思います。年明け以降、 じわじわと作業していくつもりです。なので、今年はこれで店仕舞い。皆様、 どうもありがとうございました。 来年もまた、よろしくお願いします。 -- Tomotaka SUWA From t-suwa @ users.sourceforge.jp Fri Dec 29 13:38:39 2006 From: t-suwa @ users.sourceforge.jp (Tomotaka SUWA) Date: Fri, 29 Dec 2006 13:38:39 +0900 Subject: [aquaskk-dev 67] =?iso-2022-jp?b?QXF1YVNLSyAzLjMgGyRCJWolaiE8GyhC?= =?iso-2022-jp?b?GyRCJTkbKEI=?= Message-ID: 諏訪です。 AquaSKK 3.3 をリリースしました。 http://sourceforge.jp/projects/aquaskk/files/?release_id=23334#23334 リリースタグは release-3_3 です。 ▼不具合修正 ・送りありエントリが正しく保存されない不具合を修正 - * - 今後のために、単体テスト用のコードも一緒に commit しました。tests ディ レクトリの下に、とりあえず今回問題になった箇所をテストするコードを追加 してあります。 # その他のクラスについても、テスト用のコードを徐々に追加するつもりです どういったテストフレームワークがいいのかなぁと、CppUnit や Boost Test Library、CPlusTest.framework なども調べてみたのですが、そこまで手間をか けてするほどのメリットを感じませんでした。 なので、テストドライバの中で assert をずらずらと並べただけの単純なもの にしてあります。お勧めのテストフレームワークなどがあれば教えて下さいね。 よろしくお願いします。 -- Tomotaka SUWA