]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regerror.c
MdeModulePkg RegularExpressionDxe: Update Oniguruma to 6.9.0
[mirror_edk2.git] / MdeModulePkg / Universal / RegularExpressionDxe / Oniguruma / regerror.c
index 1544e23f103711a4d309fdce39a8463ba7bb8ca6..222e8e613673ab2adb601f1cc5f07c9572f62d30 100644 (file)
@@ -2,11 +2,9 @@
   regerror.c -  Oniguruma (regular expression library)\r
 **********************************************************************/\r
 /*-\r
- * Copyright (c) 2002-2007  K.Kosako  <sndgk393 AT ybb DOT ne DOT jp>\r
+ * Copyright (c) 2002-2018  K.Kosako  <sndgk393 AT ybb DOT ne DOT jp>\r
  * All rights reserved.\r
  *\r
- * (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>\r
- *\r
  * Redistribution and use in source and binary forms, with or without\r
  * modification, are permitted provided that the following conditions\r
  * are met:\r
  * SUCH DAMAGE.\r
  */\r
 \r
-#define HAVE_STDARG_PROTOTYPES\r
-\r
 #include "regint.h"\r
-\r
+#define HAVE_STDARG_PROTOTYPES\r
 #if 0\r
 #include <stdio.h> /* for vsnprintf() */\r
 \r
@@ -50,17 +46,21 @@ onig_error_code_to_format(int code)
 {\r
   char *p;\r
 \r
-  if (code >= 0) return (UChar* )0;\r
-\r
   switch (code) {\r
   case ONIG_MISMATCH:\r
     p = "mismatch"; break;\r
   case ONIG_NO_SUPPORT_CONFIG:\r
     p = "no support in this configuration"; break;\r
+  case ONIG_ABORT:\r
+    p = "abort"; break;\r
   case ONIGERR_MEMORY:\r
     p = "fail to memory allocation"; break;\r
   case ONIGERR_MATCH_STACK_LIMIT_OVER:\r
     p = "match-stack limit over"; break;\r
+  case ONIGERR_PARSE_DEPTH_LIMIT_OVER:\r
+    p = "parse depth limit over"; break;\r
+  case ONIGERR_RETRY_LIMIT_IN_MATCH_OVER:\r
+    p = "retry-limit-in-match over"; break;\r
   case ONIGERR_TYPE_BUG:\r
     p = "undefined type (bug)"; break;\r
   case ONIGERR_PARSER_BUG:\r
@@ -75,6 +75,8 @@ onig_error_code_to_format(int code)
     p = "default multibyte-encoding is not setted"; break;\r
   case ONIGERR_SPECIFIED_ENCODING_CANT_CONVERT_TO_WIDE_CHAR:\r
     p = "can't convert to wide-char on specified multibyte-encoding"; break;\r
+  case ONIGERR_FAIL_TO_INITIALIZE:\r
+    p = "fail to initialize"; break;\r
   case ONIGERR_INVALID_ARGUMENT:\r
     p = "invalid argument"; break;\r
   case ONIGERR_END_PATTERN_AT_LEFT_BRACE:\r
@@ -138,13 +140,11 @@ onig_error_code_to_format(int code)
   case ONIGERR_TOO_BIG_BACKREF_NUMBER:\r
     p = "too big backref number"; break;\r
   case ONIGERR_INVALID_BACKREF:\r
-#ifdef USE_NAMED_GROUP\r
     p = "invalid backref number/name"; break;\r
-#else\r
-    p = "invalid backref number"; break;\r
-#endif\r
   case ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED:\r
     p = "numbered backref/call is not allowed. (use name)"; break;\r
+  case ONIGERR_TOO_MANY_CAPTURES:\r
+    p = "too many captures"; break;\r
   case ONIGERR_TOO_BIG_WIDE_CHAR_VALUE:\r
     p = "too big wide-char value"; break;\r
   case ONIGERR_TOO_LONG_WIDE_CHAR_VALUE:\r
@@ -156,11 +156,7 @@ onig_error_code_to_format(int code)
   case ONIGERR_INVALID_GROUP_NAME:\r
     p = "invalid group name <%n>"; break;\r
   case ONIGERR_INVALID_CHAR_IN_GROUP_NAME:\r
-#ifdef USE_NAMED_GROUP\r
     p = "invalid char in group name <%n>"; break;\r
-#else\r
-    p = "invalid char in group number <%n>"; break;\r
-#endif\r
   case ONIGERR_UNDEFINED_NAME_REFERENCE:\r
     p = "undefined name <%n> reference"; break;\r
   case ONIGERR_UNDEFINED_GROUP_REFERENCE:\r
@@ -175,12 +171,30 @@ onig_error_code_to_format(int code)
     p = "group number is too big for capture history"; break;\r
   case ONIGERR_INVALID_CHAR_PROPERTY_NAME:\r
     p = "invalid character property name {%n}"; break;\r
+  case ONIGERR_INVALID_IF_ELSE_SYNTAX:\r
+    p = "invalid if-else syntax"; break;\r
+  case ONIGERR_INVALID_ABSENT_GROUP_PATTERN:\r
+    p = "invalid absent group pattern"; break;\r
+  case ONIGERR_INVALID_ABSENT_GROUP_GENERATOR_PATTERN:\r
+    p = "invalid absent group generator pattern"; break;\r
+  case ONIGERR_INVALID_CALLOUT_PATTERN:\r
+    p = "invalid callout pattern"; break;\r
+  case ONIGERR_INVALID_CALLOUT_NAME:\r
+    p = "invalid callout name"; break;\r
+  case ONIGERR_UNDEFINED_CALLOUT_NAME:\r
+    p = "undefined callout name"; break;\r
+  case ONIGERR_INVALID_CALLOUT_BODY:\r
+    p = "invalid callout body"; break;\r
+  case ONIGERR_INVALID_CALLOUT_TAG_NAME:\r
+    p = "invalid callout tag name"; break;\r
+  case ONIGERR_INVALID_CALLOUT_ARG:\r
+    p = "invalid callout arg"; break;\r
   case ONIGERR_NOT_SUPPORTED_ENCODING_COMBINATION:\r
     p = "not supported encoding combination"; break;\r
   case ONIGERR_INVALID_COMBINATION_OF_OPTIONS:\r
     p = "invalid combination of options"; break;\r
-  case ONIGERR_OVER_THREAD_PASS_LIMIT_COUNT:\r
-    p = "over thread pass limit count"; break;\r
+  case ONIGERR_LIBRARY_IS_NOT_INITIALIZED:\r
+    p = "library is not initialized"; break;\r
 \r
   default:\r
     p = "undefined error code"; break;\r
@@ -212,24 +226,24 @@ static int to_ascii(OnigEncoding enc, UChar *s, UChar *end,
     while (p < end) {\r
       code = ONIGENC_MBC_TO_CODE(enc, p, end);\r
       if (code >= 0x80) {\r
-       if (code > 0xffff && len + 10 <= buf_size) {\r
-         sprint_byte_with_x((char*)(&(buf[len])), (unsigned int)(code >> 24));\r
-         sprint_byte((char*)(&(buf[len+4])),      (unsigned int)(code >> 16));\r
-         sprint_byte((char*)(&(buf[len+6])),      (unsigned int)(code >>  8));\r
-         sprint_byte((char*)(&(buf[len+8])),      (unsigned int)code);\r
-         len += 10;\r
-       }\r
-       else if (len + 6 <= buf_size) {\r
-         sprint_byte_with_x((char*)(&(buf[len])), (unsigned int)(code >> 8));\r
-         sprint_byte((char*)(&(buf[len+4])),      (unsigned int)code);\r
-         len += 6;\r
-       }\r
-       else {\r
-         break;\r
-       }\r
+        if (code > 0xffff && len + 10 <= buf_size) {\r
+          sprint_byte_with_x((char*)(&(buf[len])), (unsigned int)(code >> 24));\r
+          sprint_byte((char*)(&(buf[len+4])),      (unsigned int)(code >> 16));\r
+          sprint_byte((char*)(&(buf[len+6])),      (unsigned int)(code >>  8));\r
+          sprint_byte((char*)(&(buf[len+8])),      (unsigned int)code);\r
+          len += 10;\r
+        }\r
+        else if (len + 6 <= buf_size) {\r
+          sprint_byte_with_x((char*)(&(buf[len])), (unsigned int)(code >> 8));\r
+          sprint_byte((char*)(&(buf[len+4])),      (unsigned int)code);\r
+          len += 6;\r
+        }\r
+        else {\r
+          break;\r
+        }\r
       }\r
       else {\r
-       buf[len++] = (UChar )code;\r
+        buf[len++] = (UChar )code;\r
       }\r
 \r
       p += enclen(enc, p);\r
@@ -239,7 +253,7 @@ static int to_ascii(OnigEncoding enc, UChar *s, UChar *end,
     *is_over = ((p < end) ? 1 : 0);\r
   }\r
   else {\r
-    len = MIN((int)(end - s), buf_size);\r
+    len = MIN((int )(end - s), buf_size);\r
     xmemcpy(buf, s, (size_t )len);\r
     *is_over = ((buf_size < (end - s)) ? 1 : 0);\r
   }\r
@@ -280,39 +294,35 @@ onig_error_code_to_str(s, code, va_alist)
   case ONIGERR_INVALID_CHAR_PROPERTY_NAME:\r
     einfo = va_arg(vargs, OnigErrorInfo*);\r
     len = to_ascii(einfo->enc, einfo->par, einfo->par_end,\r
-                  parbuf, MAX_ERROR_PAR_LEN - 3, &is_over);\r
+                   parbuf, MAX_ERROR_PAR_LEN - 3, &is_over);\r
     q = onig_error_code_to_format(code);\r
     p = s;\r
     while (*q != '\0') {\r
       if (*q == '%') {\r
-       q++;\r
-       if (*q == 'n') { /* '%n': name */\r
-         xmemcpy(p, parbuf, len);\r
-         p += len;\r
-         if (is_over != 0) {\r
-           xmemcpy(p, "...", 3);\r
-           p += 3;\r
-         }\r
-         q++;\r
-       }\r
-       else\r
-         goto normal_char;\r
+        q++;\r
+        if (*q == 'n') { /* '%n': name */\r
+          xmemcpy(p, parbuf, len);\r
+          p += len;\r
+          if (is_over != 0) {\r
+            xmemcpy(p, "...", 3);\r
+            p += 3;\r
+          }\r
+          q++;\r
+        }\r
+        else\r
+          goto normal_char;\r
       }\r
       else {\r
       normal_char:\r
-       *p++ = *q++;\r
+        *p++ = *q++;\r
       }\r
     }\r
     *p = '\0';\r
-    len = (int)(p - s);\r
+    len = (int )(p - s);\r
     break;\r
 \r
   default:\r
     q = onig_error_code_to_format(code);\r
-    if (q == NULL) {\r
-      len = 0;\r
-      break;\r
-    }\r
     len = onigenc_str_bytelen_null(ONIG_ENCODING_ASCII, q);\r
     xmemcpy(s, q, len);\r
     s[len] = '\0';\r
@@ -349,7 +359,7 @@ onig_snprintf_with_pattern(buf, bufsize, enc, pat, pat_end, fmt, va_alist)
   n = xvsnprintf((char* )buf, bufsize, (const char* )fmt, args);\r
   va_end(args);\r
 \r
-  need = (int)(pat_end - pat) * 4 + 4;\r
+  need = (int )(pat_end - pat) * 4 + 4;\r
 \r
   if (n + need < bufsize) {\r
     strcat_s((char* )buf, bufsize, ": /");\r
@@ -357,40 +367,40 @@ onig_snprintf_with_pattern(buf, bufsize, enc, pat, pat_end, fmt, va_alist)
 \r
     p = pat;\r
     while (p < pat_end) {\r
-      if (*p == '\\') {\r
-       *s++ = *p++;\r
-       len = enclen(enc, p);\r
-       while (len-- > 0) *s++ = *p++;\r
-      }\r
-      else if (*p == '/') {\r
-       *s++ = (unsigned char )'\\';\r
-       *s++ = *p++;\r
-      }\r
-      else if (ONIGENC_IS_MBC_HEAD(enc, p)) {\r
+      if (ONIGENC_IS_MBC_HEAD(enc, p)) {\r
         len = enclen(enc, p);\r
         if (ONIGENC_MBC_MINLEN(enc) == 1) {\r
           while (len-- > 0) *s++ = *p++;\r
         }\r
-        else { /* for UTF16 */\r
+        else { /* for UTF16/32 */\r
           int blen;\r
 \r
           while (len-- > 0) {\r
-           sprint_byte_with_x((char* )bs, (unsigned int )(*p++));\r
+            sprint_byte_with_x((char* )bs, (unsigned int )(*p++));\r
             blen = onigenc_str_bytelen_null(ONIG_ENCODING_ASCII, bs);\r
             bp = bs;\r
             while (blen-- > 0) *s++ = *bp++;\r
           }\r
         }\r
       }\r
+      else if (*p == '\\') {\r
+        *s++ = *p++;\r
+        len = enclen(enc, p);\r
+        while (len-- > 0) *s++ = *p++;\r
+      }\r
+      else if (*p == '/') {\r
+        *s++ = (unsigned char )'\\';\r
+        *s++ = *p++;\r
+      }\r
       else if (!ONIGENC_IS_CODE_PRINT(enc, *p) &&\r
-              !ONIGENC_IS_CODE_SPACE(enc, *p)) {\r
-       sprint_byte_with_x((char* )bs, (unsigned int )(*p++));\r
-       len = onigenc_str_bytelen_null(ONIG_ENCODING_ASCII, bs);\r
+               !ONIGENC_IS_CODE_SPACE(enc, *p)) {\r
+        sprint_byte_with_x((char* )bs, (unsigned int )(*p++));\r
+        len = onigenc_str_bytelen_null(ONIG_ENCODING_ASCII, bs);\r
         bp = bs;\r
-       while (len-- > 0) *s++ = *bp++;\r
+        while (len-- > 0) *s++ = *bp++;\r
       }\r
       else {\r
-       *s++ = *p++;\r
+        *s++ = *p++;\r
       }\r
     }\r
 \r