From: K.Kosako Date: Wed, 14 Mar 2018 02:23:42 +0000 (+0900) Subject: add ONIG_CALLOUT_MISMATCH X-Git-Tag: v6.8.0~11 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=942711d7b348b698c2ee7312549407204e927a7d;p=onig add ONIG_CALLOUT_MISMATCH --- diff --git a/src/oniguruma.h b/src/oniguruma.h index d329b33..31cb5cd 100644 --- a/src/oniguruma.h +++ b/src/oniguruma.h @@ -758,9 +758,10 @@ typedef int (*OnigCalloutFunc)(OnigCalloutArgs* args, void* user_data); /* callout function return values (less than -1: error code) */ typedef enum { - ONIG_CALLOUT_FAIL = -1, - ONIG_CALLOUT_SUCCESS = 0, - ONIG_CALLOUT_ABORT = ONIG_ABORT /* == -3 */ + ONIG_CALLOUT_FAIL = 1, + ONIG_CALLOUT_SUCCESS = 0, + ONIG_CALLOUT_MISMATCH = ONIG_MISMATCH, /* == -1 */ + ONIG_CALLOUT_ABORT = ONIG_ABORT /* == -3 */ } OnigCalloutResult; typedef enum { @@ -1013,9 +1014,9 @@ int onig_get_used_stack_size_in_callout P_((OnigCalloutArgs* args, int* used_num ONIG_EXTERN int onig_builtin_fail P_((OnigCalloutArgs* args, void* user_data)); ONIG_EXTERN -int onig_builtin_abort P_((OnigCalloutArgs* args, void* user_data)); +int onig_builtin_mismatch P_((OnigCalloutArgs* args, void* user_data)); ONIG_EXTERN -int onig_builtin_success P_((OnigCalloutArgs* args, void* user_data)); +int onig_builtin_abort P_((OnigCalloutArgs* args, void* user_data)); ONIG_EXTERN int onig_builtin_error P_((OnigCalloutArgs* args, void* user_data)); ONIG_EXTERN diff --git a/src/regexec.c b/src/regexec.c index f0524c2..4918057 100644 --- a/src/regexec.c +++ b/src/regexec.c @@ -888,6 +888,7 @@ onig_region_copy(OnigRegion* to, OnigRegion* from) case ONIG_CALLOUT_FAIL:\ case ONIG_CALLOUT_SUCCESS:\ break;\ + case ONIG_CALLOUT_MISMATCH:\ case ONIG_CALLOUT_ABORT:\ default:\ if (result > 0) {\ @@ -3898,7 +3899,8 @@ match_at(regex_t* reg, const UChar* str, const UChar* end, case ONIG_CALLOUT_SUCCESS: goto retraction_callout2; break; - case ONIG_CALLOUT_ABORT: /* == ONIG_ABORT */ + case ONIG_CALLOUT_MISMATCH: /* == ONIG_MISMATCH */ + case ONIG_CALLOUT_ABORT: /* == ONIG_ABORT */ /* fall */ default: /* error code */ if (call_result > 0) { @@ -5293,17 +5295,25 @@ onig_builtin_fail(OnigCalloutArgs* args ARG_UNUSED, void* user_data ARG_UNUSED) return ONIG_CALLOUT_FAIL; } +extern int +onig_builtin_mismatch(OnigCalloutArgs* args ARG_UNUSED, void* user_data ARG_UNUSED) +{ + 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) { return ONIG_CALLOUT_SUCCESS; } +#endif extern int onig_builtin_error(OnigCalloutArgs* args, void* user_data ARG_UNUSED)