Oniguruma
Onigurumaを使ってみた。
Rubyに使われるものらしい。
さて,どうだろう???
とりあえず,CEでも使えないと話にならないので,eVCで試してみる。
その前に,いらないエンコーディングやら,色々ついているんで,どれだけ小さくできるか試してみると,次のソースがあれば大丈夫みたい。
- regcomp.c
- regenc.c
- regerror.c
- regexec.c
- regparse.c
- regversion.c
- enc/ascii.c
- enc/sjis.c
これは,Makefile内で↓みたいにしてあげれば,そうなる。
encobjs = $(encdir)\ascii.obj $(encdir)\sjis.obj
libobjs = regcomp.obj regexec.obj regparse.obj regenc.obj regerror.obj regversion.obj
ただし,↓みたいにサイズはち~っとも変わらない。
| ファイル | org | min | |
| onig.dll | 180224 | 135168 | 75% |
| onig_s.lib | 355438 | 214944 | 60% |
| testc.exe | 155648 | 155648 | 100% |
けど,eVCに設定するのが面倒なんで,eVCには,こいつらを入れる。
やってみると<sys/types.h>がないんで,うまく通らない。
という訳で,sys/types.hをでっち上げる……で,大丈夫。
テスト用に,
ところで,onig_error_code_to_strが通らない……
onigruma.hで,PV_が定義されているんだけど,HAVE_STDARG_PROTOTYPESを定義しないとダメらしい……
毎回HAVE_STDARG_PROTOTYPESを宣言して使うのも面倒だ。
_WIN32では大丈夫なんで,
#if defined(HAVE_STDARG_PROTOTYPES) || defined(_WIN32)してあげた。
あと,extern "C" { }でくくるのも,面倒なんで,onigruma.hに入れてお終い。
さて,コンパイルは通ったけど,onig_searchで全然一致しない……
って,*とか+を使わないと平気だけど……<って意味ないじゃんっ……
エミュレータ上では動作するんだけど……。
どっかスタック壊しているのかも……
今日は,遅いんでここまで。
| 固定リンク | コメント (0) | トラックバック (0)
