name = "FAIL"; BC0_P(name, fail);
name = "MISMATCH"; BC0_P(name, mismatch);
- name = "ABORT"; BC0_P(name, abort);
- name = "ERROR"; BC_P(name, error, 1, &t_long);
name = "MAX"; BC_B(name, max, 1, &t_long);
+ name = "ERROR";
+ args[0] = ONIG_TYPE_LONG; opts[0].l = ONIG_ABORT;
+ BC_P_O(name, error, 1, args, 1, opts);
+
name = "COUNT";
args[0] = ONIG_TYPE_CHAR; opts[0].c = '>';
BC_B_O(name, count, 1, args, 1, opts);
ONIG_EXTERN
int onig_builtin_mismatch P_((OnigCalloutArgs* args, void* user_data));
ONIG_EXTERN
-int onig_builtin_abort P_((OnigCalloutArgs* args, void* user_data));
-ONIG_EXTERN
int onig_builtin_error P_((OnigCalloutArgs* args, void* user_data));
ONIG_EXTERN
int onig_builtin_count P_((OnigCalloutArgs* args, void* user_data));
return ONIG_CALLOUT_MISMATCH;
}
-extern int
-onig_builtin_abort(OnigCalloutArgs* args ARG_UNUSED, void* user_data ARG_UNUSED)
-{
- return ONIG_CALLOUT_ABORT;
-}
-
#if 0
extern int
onig_builtin_success(OnigCalloutArgs* args ARG_UNUSED, void* user_data ARG_UNUSED)
if (id < 0) return id;\
} while(0)
+#define BC_P_O(name, func, nts, ts, nopts, opts) do {\
+ int len = onigenc_str_bytelen_null(enc, (UChar* )name);\
+ id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\
+ (UChar* )(name), (UChar* )((name) + len),\
+ ONIG_CALLOUT_IN_PROGRESS,\
+ onig_builtin_ ## func, 0, (nts), (ts), (nopts), (opts));\
+ if (id < 0) return id;\
+} while(0)
+
#define BC_B(name, func, na, ts) do {\
int len = onigenc_str_bytelen_null(enc, (UChar* )name);\
id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\
name = "\000F\000A\000I\000L\000\000"; BC0_P(name, fail);
name = "\000M\000I\000S\000M\000A\000T\000C\000H\000\000"; BC0_P(name, mismatch);
- name = "\000A\000B\000O\000R\000T\000\000"; BC0_P(name, abort);
- name = "\000E\000R\000R\000O\000R\000\000"; BC_P(name, error, 1, &t_long);
name = "\000M\000A\000X\000\000"; BC_B(name, max, 1, &t_long);
+ name = "\000E\000R\000R\000O\000R\000\000";
+ args[0] = ONIG_TYPE_LONG; opts[0].l = ONIG_ABORT;
+ BC_P_O(name, error, 1, args, 1, opts);
+
name = "\000C\000O\000U\000N\000T\000\000";
args[0] = ONIG_TYPE_CHAR; opts[0].c = '>';
BC_B_O(name, count, 1, args, 1, opts);
name = "F\000A\000I\000L\000\000\000"; BC0_P(name, fail);
name = "M\000I\000S\000M\000A\000T\000C\000H\000\000\000"; BC0_P(name, mismatch);
- name = "A\000B\000O\000R\000T\000\000\000"; BC0_P(name, abort);
- name = "E\000R\000R\000O\000R\000\000\000"; BC_P(name, error, 1, &t_long);
name = "M\000A\000X\000\000\000"; BC_B(name, max, 1, &t_long);
+ name = "E\000R\000R\000O\000R\000\000\000";
+ args[0] = ONIG_TYPE_LONG; opts[0].l = ONIG_ABORT;
+ BC_P_O(name, error, 1, args, 1, opts);
+
name = "C\000O\000U\000N\000T\000\000\000";
args[0] = ONIG_TYPE_CHAR; opts[0].c = '>';
BC_B_O(name, count, 1, args, 1, opts);