ONIG_EXTERN
int onig_get_callout_data_dont_clear_old P_((OnigRegex reg, OnigMatchParam* mp, int callout_num, int slot, OnigType* type, OnigValue* val));
ONIG_EXTERN
+int onig_get_callout_data_by_callout_args_self_dont_clear_old P_((OnigCalloutArgs* args, int slot, OnigType* type, OnigValue* val));
+ONIG_EXTERN
int onig_get_callout_data P_((OnigRegex reg, OnigMatchParam* mp, int callout_num, int slot, OnigType* type, OnigValue* val));
ONIG_EXTERN
+int onig_get_callout_data_by_callout_args P_((OnigCalloutArgs* args, int callout_num, int slot, OnigType* type, OnigValue* val));
+ONIG_EXTERN
+int onig_get_callout_data_by_callout_args_self P_((OnigCalloutArgs* args, int slot, OnigType* type, OnigValue* val));
+ONIG_EXTERN
int onig_set_callout_data P_((OnigRegex reg, OnigMatchParam* mp, int callout_num, int slot, OnigType type, OnigValue* val));
-
+ONIG_EXTERN
+int onig_set_callout_data_by_callout_args P_((OnigCalloutArgs* args, int callout_num, int slot, OnigType type, OnigValue* val));
+ONIG_EXTERN
+int onig_set_callout_data_by_callout_args_self P_((OnigCalloutArgs* args, int slot, OnigType type, OnigValue* val));
ONIG_EXTERN
int onig_get_capture_range_in_callout P_((OnigCalloutArgs* args, int mem_num, int* begin, int* end));
ONIG_EXTERN
return (t == ONIG_TYPE_VOID ? 1 : ONIG_NORMAL);
}
+extern int
+onig_get_callout_data_by_callout_args_self_dont_clear_old(OnigCalloutArgs* args,
+ int slot, OnigType* type,
+ OnigValue* val)
+{
+ return onig_get_callout_data_dont_clear_old(args->regex, args->msa->mp,
+ args->num, slot, type, val);
+}
+
extern int
onig_get_callout_data(regex_t* reg, OnigMatchParam* mp,
int callout_num, int slot,
return onig_get_callout_data(reg, mp, num, slot, type, val);
}
+extern int
+onig_get_callout_data_by_callout_args(OnigCalloutArgs* args,
+ int callout_num, int slot,
+ OnigType* type, OnigValue* val)
+{
+ return onig_get_callout_data(args->regex, args->msa->mp, callout_num, slot,
+ type, val);
+}
+
+extern int
+onig_get_callout_data_by_callout_args_self(OnigCalloutArgs* args,
+ int slot, OnigType* type, OnigValue* val)
+{
+ return onig_get_callout_data(args->regex, args->msa->mp, args->num, slot,
+ type, val);
+}
+
extern int
onig_set_callout_data(regex_t* reg, OnigMatchParam* mp,
int callout_num, int slot,
return onig_set_callout_data(reg, mp, num, slot, type, val);
}
+
+extern int
+onig_set_callout_data_by_callout_args(OnigCalloutArgs* args,
+ int callout_num, int slot,
+ OnigType type, OnigValue* val)
+{
+ return onig_set_callout_data(args->regex, args->msa->mp, callout_num, slot,
+ type, val);
+}
+
+extern int
+onig_set_callout_data_by_callout_args_self(OnigCalloutArgs* args,
+ int slot, OnigType type, OnigValue* val)
+{
+ return onig_set_callout_data(args->regex, args->msa->mp, args->num, slot,
+ type, val);
+}
+
#else
#define ADJUST_MATCH_PARAM(reg, mp)
#endif /* USE_CALLOUT */
onig_builtin_total_count(OnigCalloutArgs* args, void* user_data ARG_UNUSED)
{
int r;
- int num;
int slot;
OnigType type;
OnigValue val;
OnigValue aval;
OnigCodePoint count_type;
- num = onig_get_callout_num_by_callout_args(args);
-
r = onig_get_arg_by_callout_args(args, 0, &type, &aval);
if (r != ONIG_NORMAL) return r;
return ONIGERR_INVALID_CALLOUT_ARG;
slot = 0;
- r = onig_get_callout_data_dont_clear_old(args->regex, args->msa->mp,
- num, slot, &type, &val);
+ r = onig_get_callout_data_by_callout_args_self_dont_clear_old(args, slot,
+ &type, &val);
if (r < ONIG_NORMAL)
return r;
else if (r > ONIG_NORMAL) {
val.l++;
}
- r = onig_set_callout_data(args->regex, args->msa->mp, num, slot,
- ONIG_TYPE_LONG, &val);
+ r = onig_set_callout_data_by_callout_args_self(args, slot, ONIG_TYPE_LONG, &val);
if (r != ONIG_NORMAL) return r;
return ONIG_CALLOUT_SUCCESS;
onig_builtin_max(OnigCalloutArgs* args, void* user_data ARG_UNUSED)
{
int r;
- int num;
int slot;
OnigType type;
OnigValue val;
(void )onig_check_callout_data_and_clear_old_values(args);
- num = onig_get_callout_num_by_callout_args(args);
slot = 0;
- r = onig_get_callout_data(args->regex, args->msa->mp, num, slot, &type, &val);
+ r = onig_get_callout_data_by_callout_args_self(args, slot, &type, &val);
if (r < ONIG_NORMAL)
return r;
else if (r > ONIG_NORMAL) {
val.l++;
}
- r = onig_set_callout_data(args->regex, args->msa->mp, num, slot,
- ONIG_TYPE_LONG, &val);
+ r = onig_set_callout_data_by_callout_args_self(args, slot, ONIG_TYPE_LONG, &val);
if (r != ONIG_NORMAL) return r;
return ONIG_CALLOUT_SUCCESS;
onig_builtin_cmp(OnigCalloutArgs* args, void* user_data ARG_UNUSED)
{
int r;
- int num;
int slot;
long lv;
long rv;
if (r != ONIG_NORMAL) return r;
if (type == ONIG_TYPE_TAG) {
- r = onig_get_callout_data(reg, args->msa->mp, val.tag, 0, &type, &val);
+ r = onig_get_callout_data_by_callout_args(args, val.tag, 0, &type, &val);
if (r < ONIG_NORMAL) return r;
else if (r > ONIG_NORMAL)
lv = 0L;
if (r != ONIG_NORMAL) return r;
if (type == ONIG_TYPE_TAG) {
- r = onig_get_callout_data(reg, args->msa->mp, val.tag, 0, &type, &val);
+ r = onig_get_callout_data_by_callout_args(args, val.tag, 0, &type, &val);
if (r < ONIG_NORMAL) return r;
else if (r > ONIG_NORMAL)
rv = 0L;
rv = val.l;
}
- num = onig_get_callout_num_by_callout_args(args);
slot = 0;
- r = onig_get_callout_data(reg, args->msa->mp, num, slot, &type, &val);
+ r = onig_get_callout_data_by_callout_args_self(args, slot, &type, &val);
if (r < ONIG_NORMAL)
return r;
else if (r > ONIG_NORMAL) {
break;
}
val.l = (long )op;
- r = onig_set_callout_data(reg, args->msa->mp, num, slot,
- ONIG_TYPE_LONG, &val);
+ r = onig_set_callout_data_by_callout_args_self(args, slot, ONIG_TYPE_LONG, &val);
if (r != ONIG_NORMAL) return r;
}
else {