[PHP-dev 498] [PATCH] mb_parse_str の共通部分の統合と php_mbstr_strtok_r() の導入

Moriyoshi Koizumi php-dev@php.gr.jp
Mon, 16 Sep 2002 03:52:48 +0900


小泉です。

この間は大変お騒がせしましたが、あのとき mbstring.c を見ていて、気になった
部分を変えてみました。
[PATCH] とはつけてみましたが、もはやパッチではないかもしれません。

さて、変更点はといえば、メールのタイトルどおりなのですが、
具体的には、
mb_parse_str 内のコードを、php_mbstr_encoding_handler_ex と共通化したのと、
php_mbstr_strtok_r を新設し、SJIS への対応を強化しました。

これにより、 arg_separator.input=\ となっていても、SJIS 文字列を
正しくパースできるようになっています。

ただし、encoding detection の方法が変わったので、
別の問題を生じるかもしれません。

diff するとかなり大きいので(30k程度)、自宅 adsl サーバで恐縮ですが、
以下からダウンロードしてください。問題があれば、直接メールでお送りします。

[php-i18n.sourceforge.jp の方のコードベースへの変更]

http://ave.sytes.net/~koizumi/php-i18n.sourceforge.jp/mbstring.c.diff
http://ave.sytes.net/~koizumi/php-i18n.sourceforge.jp/post.c
http://ave.sytes.net/~koizumi/php-i18n.sourceforge.jp/post.h

(テストスクリプト) http://ave.sytes.net/~koizumi/php-i18n.sourceforge.jp/test.phps

以上まとめたもの(二行に折り返しています)
http://ave.sytes.net/~koizumi/php-i18n.sourceforge.jp/
mbstring-mods-sfjp-20020916.tar.gz

[php.net の方のコードベースへの変更]
こちらは、かなり自分好みに変更してしまったために、原型をとどめていません。
いずれなんとかしたいと思います。基本的な部分は一緒です。

http://ave.sytes.net/~koizumi/php.net/mbstring.c
http://ave.sytes.net/~koizumi/php.net/mbstring.h

(ユニットテスト)
http://ave.sytes.net/~koizumi/php.net/021.phpt
http://ave.sytes.net/~koizumi/php.net/022.phpt

以上まとめたもの
http://ave.sytes.net/~koizumi/php-net/mbstring-mods-20020916.tar.gz

なにか意見いただけると幸いです。

それでは。