[PHP-dev 834]ze2-multibyteパッチ

Masaki Fujimoto fujimoto @ tunebiz.net
2003年 8月 3日 (日) 21:10:08 JST


ふじもとです。

いい加減、デッドラインが近くなってきた気もするので、ようやく手を付けま
した。とはいえ、時間もあまりとれていないうえに#ifdef ZEND_MULTIBYTEで
(弱気)、という制限の中でのものなのでze1のもの+α程度の機能です。
 
# まぁないよりはまし、という

php-srcのHEADブランチ(2003/08/03 19:30:00 JSTくらい)へのパッチです。
ze1のmultibyteに無い(今回追加された)主な機能は以下の通りです:

* BOM aware(UTF-32BE/LE, UTF-16BE/LE, UTF-8)
* mbstringがサポートするほぼ全ての(UTF-7以外)エンコーディングのスクリ
  プトサポート(ワイドキャラクタなエンコーディングもOKです、とはいって
  も、UTF-8に変換して逃げているだけですが)
* これだけ(笑)

はっきり言ってまだ全然テストしてませんので、テストしていただける方募集
です。とりあえず、書きなぐった感じで結構汚い上に、ハイライトとかevalと
かテストどころか確認もして無い機能があるので、α版扱いです。

気が向いたらリファクタリングやテストをしてから、今週末くらいにengine2
のリストに投げようと思います。

# evalとか結構怪しかったり:)

で、いくつか微妙な点があります。覚書程度に...:

* php-srcのHEADでzend_shutdownが無限ループしてテストする気にもならない
  のですが、これって僕だけでしょうか...
* script->internalエンコーディングの変換は、まだencoding_translationオ
  プションに依存しています(ただ単に面倒だっただけです)。
* mbstring、というかPHP側とのインターフェースは「とりあえず」というこ
  とで。
* Engine側でもエンコーディング情報を持っちゃっているので、実は
  converterがサポートするエンコーディングとの同期をなんとかしなければ
  なりません(構造の汚さとあわせて要改善)。
* ワイドキャラクタを思われるスクリプト(NULLを含んでいる)で、且つBOMが
  無い場合、UTF-16BE/LE, UTF-32BE/LEのいずれかと見做してとりあえず自動
  判別をしていますが、この部分は要改善かもです(仕様とパフォーマンス)。
* インタラクティブモードを何とかしなければ...

# 小泉さんもZE-karmaを取得されたことですし、もうどうとでも、という気分
# もあったり:)

-- 
Masaki Fujimoto
fujimoto @ tunebiz.net
-------------- next part --------------
平文でない添付ファイルを取り除きました...
ファイル名: ze2-multibyte.patch.gz
型:         application/x-gzip
サイズ:     11215 バイト
説明:       無し
URL:        http://ns1.php.gr.jp/pipermail/php-dev/attachments/20030803/9da77fd9/ze2-multibyte.patch.bin


PHP-dev メーリングリストの案内