]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/ascii.c
MdeModulePkg RegularExpressionDxe: Update Oniguruma to 6.9.0
[mirror_edk2.git] / MdeModulePkg / Universal / RegularExpressionDxe / Oniguruma / ascii.c
diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/ascii.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/ascii.c
new file mode 100644 (file)
index 0000000..ef961c9
--- /dev/null
@@ -0,0 +1,118 @@
+/**********************************************************************\r
+  ascii.c -  Oniguruma (regular expression library)\r
+**********************************************************************/\r
+/*-\r
+ * Copyright (c) 2002-2018  K.Kosako  <sndgk393 AT ybb DOT ne DOT jp>\r
+ * All rights reserved.\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
+ * 1. Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ * 2. Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the distribution.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
+ * SUCH DAMAGE.\r
+ */\r
+\r
+#include "regint.h"   /* for USE_CALLOUT */\r
+\r
+static int\r
+init(void)\r
+{\r
+#ifdef USE_CALLOUT\r
+\r
+    int id;\r
+    OnigEncoding enc;\r
+    char* name;\r
+    unsigned int args[4];\r
+    OnigValue    opts[4];\r
+\r
+    enc = ONIG_ENCODING_ASCII;\r
+\r
+    name = "FAIL";        BC0_P(name, fail);\r
+    name = "MISMATCH";    BC0_P(name, mismatch);\r
+\r
+    name = "MAX";\r
+    args[0] = ONIG_TYPE_TAG | ONIG_TYPE_LONG;\r
+    args[1] = ONIG_TYPE_CHAR;\r
+    opts[0].c = 'X';\r
+    BC_B_O(name, max, 2, args, 1, opts);\r
+\r
+    name = "ERROR";\r
+    args[0] = ONIG_TYPE_LONG; opts[0].l = ONIG_ABORT;\r
+    BC_P_O(name, error, 1, args, 1, opts);\r
+\r
+    name = "COUNT";\r
+    args[0] = ONIG_TYPE_CHAR; opts[0].c = '>';\r
+    BC_B_O(name, count, 1, args, 1, opts);\r
+\r
+    name = "TOTAL_COUNT";\r
+    args[0] = ONIG_TYPE_CHAR; opts[0].c = '>';\r
+    BC_B_O(name, total_count, 1, args, 1, opts);\r
+\r
+    name = "CMP";\r
+    args[0] = ONIG_TYPE_TAG | ONIG_TYPE_LONG;\r
+    args[1] = ONIG_TYPE_STRING;\r
+    args[2] = ONIG_TYPE_TAG | ONIG_TYPE_LONG;\r
+    BC_P(name, cmp, 3, args);\r
+\r
+#endif /* USE_CALLOUT */\r
+\r
+  return ONIG_NORMAL;\r
+}\r
+\r
+#if 0\r
+static int\r
+is_initialized(void)\r
+{\r
+  /* Don't use this function */\r
+  /* can't answer, because builtin callout entries removed in onig_end() */\r
+  return 0;\r
+}\r
+#endif\r
+\r
+static int\r
+ascii_is_code_ctype(OnigCodePoint code, unsigned int ctype)\r
+{\r
+  if (code < 128)\r
+    return ONIGENC_IS_ASCII_CODE_CTYPE(code, ctype);\r
+  else\r
+    return FALSE;\r
+}\r
+\r
+OnigEncodingType OnigEncodingASCII = {\r
+  onigenc_single_byte_mbc_enc_len,\r
+  "US-ASCII",  /* name */\r
+  1,           /* max enc length */\r
+  1,           /* min enc length */\r
+  onigenc_is_mbc_newline_0x0a,\r
+  onigenc_single_byte_mbc_to_code,\r
+  onigenc_single_byte_code_to_mbclen,\r
+  onigenc_single_byte_code_to_mbc,\r
+  onigenc_ascii_mbc_case_fold,\r
+  onigenc_ascii_apply_all_case_fold,\r
+  onigenc_ascii_get_case_fold_codes_by_str,\r
+  onigenc_minimum_property_name_to_ctype,\r
+  ascii_is_code_ctype,\r
+  onigenc_not_support_get_ctype_code_range,\r
+  onigenc_single_byte_left_adjust_char_head,\r
+  onigenc_always_true_is_allowed_reverse_match,\r
+  init,\r
+  0, /* is_initialized */\r
+  onigenc_always_true_is_valid_mbc_string,\r
+  ENC_FLAG_ASCII_COMPATIBLE,\r
+  0, 0\r
+};\r