summaryrefslogtreecommitdiff
path: root/src/unicode-7.0/unicode_fold3_key.c
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff-webhosting.net>2016-05-10 05:15:59 +0200
committerJörg Frings-Fürst <debian@jff-webhosting.net>2016-05-10 05:15:59 +0200
commite706cbe5496e1829d1ddbe4d5bb0a6728204e510 (patch)
treec72d1848ac6aef07703848d0ffbe80f1336a81cd /src/unicode-7.0/unicode_fold3_key.c
parent69ab3addbc2dbbc90c311b2845cd25a2159435cd (diff)
parent5e01a4852b31d537307994248869caf38b4023cc (diff)
new upstream release
Diffstat (limited to 'src/unicode-7.0/unicode_fold3_key.c')
-rw-r--r--src/unicode-7.0/unicode_fold3_key.c113
1 files changed, 113 insertions, 0 deletions
diff --git a/src/unicode-7.0/unicode_fold3_key.c b/src/unicode-7.0/unicode_fold3_key.c
new file mode 100644
index 0000000..8095b1c
--- /dev/null
+++ b/src/unicode-7.0/unicode_fold3_key.c
@@ -0,0 +1,113 @@
+/* This file was converted by gperf_fold_key_conv.py
+ from gperf output file. */
+/* ANSI-C code produced by gperf version 3.0.3 */
+/* Command-line: /Library/Developer/CommandLineTools/usr/bin/gperf -n -C -T -c -t -j1 -L ANSI-C -F,-1 -N unicode_fold3_key unicode_fold3_key.gperf */
+/* Computed positions: -k'3,6,9' */
+
+
+
+/* This gperf source file was generated by make_unicode_fold_data.py */
+#include <string.h>
+#include "regenc.h"
+
+#define TOTAL_KEYWORDS 14
+#define MIN_WORD_LENGTH 9
+#define MAX_WORD_LENGTH 9
+#define MIN_HASH_VALUE 0
+#define MAX_HASH_VALUE 13
+/* maximum key range = 14, duplicates = 0 */
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+/*ARGSUSED*/
+static unsigned int
+hash(OnigCodePoint codes[])
+{
+ static const unsigned char asso_values[] =
+ {
+ 6, 3, 14, 14, 14, 14, 14, 14, 1, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 0,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 0, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 4, 14, 14, 5, 14, 14, 4, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 10, 14, 14,
+ 14, 14, 14, 9, 14, 1, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 0, 14, 14,
+ 14, 8, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14
+ };
+ return asso_values[(unsigned char)onig_codes_byte_at(codes, 8)] + asso_values[(unsigned char)onig_codes_byte_at(codes, 5)] + asso_values[(unsigned char)onig_codes_byte_at(codes, 2)];
+}
+
+int
+unicode_fold3_key(OnigCodePoint codes[])
+{
+ static const int wordlist[] =
+ {
+
+ 62,
+
+ 47,
+
+ 31,
+
+ 57,
+
+ 41,
+
+ 25,
+
+ 52,
+
+ 36,
+
+ 20,
+
+ 67,
+
+ 15,
+
+ 10,
+
+ 5,
+
+ 0
+ };
+
+ if (0 == 0)
+ {
+ int key = hash(codes);
+
+ if (key <= MAX_HASH_VALUE)
+ {
+ int index = wordlist[key];
+
+ if (index >= 0 && onig_codes_cmp(codes, OnigUnicodeFolds3 + index, 3) == 0)
+ return index;
+ }
+ }
+ return -1;
+}
+
+