]> granicus.if.org Git - onig/commitdiff
add ONIG_CALLOUT_MISMATCH
authorK.Kosako <kosako@sofnec.co.jp>
Wed, 14 Mar 2018 02:23:42 +0000 (11:23 +0900)
committerK.Kosako <kosako@sofnec.co.jp>
Wed, 14 Mar 2018 02:23:42 +0000 (11:23 +0900)
src/oniguruma.h
src/regexec.c

index d329b339a3683225129800e2c6343d69051ccee8..31cb5cd9fcb683bd7db95b04a5abe9d773229d04 100644 (file)
@@ -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
index f0524c2c7ecdd3755b12f2cf218a945ce1dfa6d2..491805764d04e68c1bcef5dfbe456676e08182e9 100644 (file)
@@ -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)