aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/ruby/onigmo.h6
-rw-r--r--regexec.c2
2 files changed, 8 insertions, 0 deletions
diff --git a/include/ruby/onigmo.h b/include/ruby/onigmo.h
index 385f2d6a8b..34b8268d59 100644
--- a/include/ruby/onigmo.h
+++ b/include/ruby/onigmo.h
@@ -701,6 +701,7 @@ ONIG_EXTERN const OnigSyntaxType* OnigDefaultSyntax;
#define ONIG_IS_CAPTURE_HISTORY_GROUP(r, i) \
((i) <= ONIG_MAX_CAPTURE_HISTORY_GROUP && (r)->list && (r)->list[i])
+#ifdef USE_CAPTURE_HISTORY
typedef struct OnigCaptureTreeNodeStruct {
int group; /* group number */
OnigPosition beg;
@@ -709,6 +710,7 @@ typedef struct OnigCaptureTreeNodeStruct {
int num_childs;
struct OnigCaptureTreeNodeStruct** childs;
} OnigCaptureTreeNode;
+#endif
/* match result region type */
struct re_registers {
@@ -716,8 +718,10 @@ struct re_registers {
int num_regs;
OnigPosition* beg;
OnigPosition* end;
+#ifdef USE_CAPTURE_HISTORY
/* extended */
OnigCaptureTreeNode* history_root; /* capture history tree root */
+#endif
};
/* capture tree traverse */
@@ -866,8 +870,10 @@ ONIG_EXTERN
int onig_number_of_captures(const OnigRegexType *reg);
ONIG_EXTERN
int onig_number_of_capture_histories(const OnigRegexType *reg);
+#ifdef USE_CAPTURE_HISTORY
ONIG_EXTERN
OnigCaptureTreeNode* onig_get_capture_tree(OnigRegion* region);
+#endif
ONIG_EXTERN
int onig_capture_tree_traverse(OnigRegion* region, int at, int(*callback_func)(int,OnigPosition,OnigPosition,int,int,void*), void* arg);
ONIG_EXTERN
diff --git a/regexec.c b/regexec.c
index 9b6232e30b..10ada4d81d 100644
--- a/regexec.c
+++ b/regexec.c
@@ -323,7 +323,9 @@ onig_region_init(OnigRegion* region)
region->allocated = 0;
region->beg = (OnigPosition* )0;
region->end = (OnigPosition* )0;
+#ifdef USE_CAPTURE_HISTORY
region->history_root = (OnigCaptureTreeNode* )0;
+#endif
}
extern OnigRegion*