]> granicus.if.org Git - onig/commitdiff
add tag_start and tag_end member into CalloutListEntry
authorK.Kosako <kosako@sofnec.co.jp>
Fri, 2 Mar 2018 05:54:20 +0000 (14:54 +0900)
committerK.Kosako <kosako@sofnec.co.jp>
Fri, 2 Mar 2018 05:54:20 +0000 (14:54 +0900)
src/regint.h
src/regparse.c

index c018d5c5639fe29955cc81fe42f56424a10cd7da..86b40a1d932357c9c32deef610a7b65a3313f848 100644 (file)
@@ -260,8 +260,10 @@ typedef struct {
   OnigCalloutOf of;
   int           in;
   int           name_id;
+  UChar*        tag_start;
+  UChar*        tag_end;
   OnigCalloutType type;
-  OnigCalloutFunc start_func; /* may be a monitor func */
+  OnigCalloutFunc start_func;
   OnigCalloutFunc end_func;
   union {
     struct {
index 55b37239247709b415dd1bb7357b91e7b5e29c82..c831cd5e03bd287755700f81da1c5c6943fd8f9e 100644 (file)
@@ -1846,6 +1846,7 @@ callout_tag_entry(regex_t* reg, UChar* name, UChar* name_end,
 {
   int r;
   RegexExt* ext;
+  CalloutListEntry* e;
 
   r = ext_ensure_tag_table(reg);
   if (r != ONIG_NORMAL) return r;
@@ -1853,6 +1854,10 @@ callout_tag_entry(regex_t* reg, UChar* name, UChar* name_end,
   ext = onig_get_regex_ext(reg);
   r = callout_tag_entry_raw(ext->tag_table, name, name_end, entry_val);
 
+  e = onig_reg_callout_list_at(reg, entry_val);
+  e->tag_start = name;
+  e->tag_end   = name_end;
+
   return r;
 }
 
@@ -2542,10 +2547,12 @@ reg_callout_list_entry(ScanEnv* env, int* rnum)
 
   e = ext->callout_list + num;
 
-  e->flag = 0;
-  e->of   = 0;
-  e->in   = ONIG_CALLOUT_OF_CONTENTS;
-  e->type = 0;
+  e->flag      = 0;
+  e->of        = 0;
+  e->in        = ONIG_CALLOUT_OF_CONTENTS;
+  e->type      = 0;
+  e->tag_start = 0;
+  e->tag_end   = 0;
   e->start_func       = 0;
   e->end_func         = 0;
   e->u.arg.num        = 0;