[PHP-dev 1295] PHPにバンドルしているonigurumaについて
Seiji Masugata
s.masugata @ digicom.dnp.co.jp
2006年 6月 17日 (土) 22:45:37 JST
こんばんわ、桝形です。
PHP_5_2 Branchにonigurumaの最新バージョンを適用しようと考えています。
いくつか不明な点があるので、知っている方は教えて下さい。
小迫さんから「3.7.2」のアーカイブを頂いたので、比較してみたところ
バグ修正とは違うかな。。。と思われる差分がありました。
「oniguruma.h」の「#include "php_onig_compat.h"」は、恐らくPHP側で
修正したと思いますが「oniggnu.h」の変更は、どちらが修正したのか
分かりませんでした。
mbstringのソース内では利用されていないようなので「oniggnu.h」への
修正は除外しても問題ないでしょうか。
変更点を少なくして(なるべく)そのまま適用したいので。
他に使っている人がいた場合、最悪「onigcmpt200.h」内に定義したいと
思っています。
#define MBCTYPE_ASCII RE_MBCTYPE_ASCII
#define MBCTYPE_EUC RE_MBCTYPE_EUC
#define MBCTYPE_SJIS RE_MBCTYPE_SJIS
#define MBCTYPE_UTF8 RE_MBCTYPE_UTF8
みたいな。
ちなみに「onigcmpt200.h」も、mbstringのソース内では何処にも定義
されていないようでした。
-------------------------------------------------------------------------------
--- /usr/local/src/php5.2-200606170630/ext/mbstring/oniguruma/oniggnu.h Sat Mar 19 17:52:22 2005
+++ /usr/local/src/oniguruma/oniggnu.h Thu Mar 10 16:29:00 2005
@@ -35,10 +35,10 @@
extern "C" {
#endif
-#define MBCTYPE_ASCII 0
-#define MBCTYPE_EUC 1
-#define MBCTYPE_SJIS 2
-#define MBCTYPE_UTF8 3
+#define RE_MBCTYPE_ASCII 0
+#define RE_MBCTYPE_EUC 1
+#define RE_MBCTYPE_SJIS 2
+#define RE_MBCTYPE_UTF8 3
/* GNU regex options */
#ifndef RE_NREGS
-------------------------------------------------------------------------------
--- /usr/local/src/php5.2-200606170630/ext/mbstring/oniguruma/oniguruma.h Sat Mar 19 17:52:22 2005
+++ /usr/local/src/oniguruma/oniguruma.h Fri Mar 25 11:02:33 2005
@@ -29,8 +29,6 @@
* SUCH DAMAGE.
*/
-#include "php_onig_compat.h"
-
#ifdef __cplusplus
extern "C" {
#endif
@@ -38,7 +36,7 @@
#define ONIGURUMA
#define ONIGURUMA_VERSION_MAJOR 3
#define ONIGURUMA_VERSION_MINOR 7
-#define ONIGURUMA_VERSION_TEENY 1
+#define ONIGURUMA_VERSION_TEENY 2
#ifdef __cplusplus
# ifndef HAVE_PROTOTYPES
@@ -484,6 +482,7 @@
OnigOptionType options; /* default option */
} OnigSyntaxType;
+ONIG_EXTERN OnigSyntaxType OnigSyntaxASIS;
ONIG_EXTERN OnigSyntaxType OnigSyntaxPosixBasic;
ONIG_EXTERN OnigSyntaxType OnigSyntaxPosixExtended;
ONIG_EXTERN OnigSyntaxType OnigSyntaxEmacs;
@@ -494,6 +493,7 @@
ONIG_EXTERN OnigSyntaxType OnigSyntaxRuby;
/* predefined syntaxes (see regsyntax.c) */
+#define ONIG_SYNTAX_ASIS (&OnigSyntaxASIS)
#define ONIG_SYNTAX_POSIX_BASIC (&OnigSyntaxPosixBasic)
#define ONIG_SYNTAX_POSIX_EXTENDED (&OnigSyntaxPosixExtended)
#define ONIG_SYNTAX_EMACS (&OnigSyntaxEmacs)
@@ -560,6 +560,7 @@
#define ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT (1<<17) /* \p{^..}, \P{^..} */
#define ONIG_SYN_OP2_CHAR_PROPERTY_PREFIX_IS (1<<18) /* \p{IsXDigit} */
#define ONIG_SYN_OP2_ESC_H_XDIGIT (1<<19) /* \h, \H */
+#define ONIG_SYN_OP2_INEFFECTIVE_ESCAPE (1<<20) /* \ */
/* syntax (behavior) */
#define ONIG_SYN_CONTEXT_INDEP_ANCHORS (1<<31) /* not implemented */
-------------------------------------------------------------------------------
--- /usr/local/src/php5.2-200606170630/ext/mbstring/oniguruma/reggnu.c Sat Mar 19 17:52:23 2005
+++ /usr/local/src/oniguruma/reggnu.c Thu Mar 10 16:29:29 2005
@@ -151,16 +151,16 @@
OnigEncoding enc;
switch (mb_code) {
- case MBCTYPE_ASCII:
+ case RE_MBCTYPE_ASCII:
enc = ONIG_ENCODING_ASCII;
break;
- case MBCTYPE_EUC:
+ case RE_MBCTYPE_EUC:
enc = ONIG_ENCODING_EUC_JP;
break;
- case MBCTYPE_SJIS:
+ case RE_MBCTYPE_SJIS:
enc = ONIG_ENCODING_SJIS;
break;
- case MBCTYPE_UTF8:
+ case RE_MBCTYPE_UTF8:
enc = ONIG_ENCODING_UTF8;
break;
default:
-------------------------------------------------------------------------------
--
Seiji Masugata <s.masugata @ digicom.dnp.co.jp>
PHP-dev メーリングリストの案内