[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 メーリングリストの案内