diff options
| author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2016-05-10 05:15:59 +0200 | 
|---|---|---|
| committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2016-05-10 05:15:59 +0200 | 
| commit | e706cbe5496e1829d1ddbe4d5bb0a6728204e510 (patch) | |
| tree | c72d1848ac6aef07703848d0ffbe80f1336a81cd /src/unicode-7.0/unicode_fold2_key.c | |
| parent | 69ab3addbc2dbbc90c311b2845cd25a2159435cd (diff) | |
| parent | 5e01a4852b31d537307994248869caf38b4023cc (diff) | |
new upstream release
Diffstat (limited to 'src/unicode-7.0/unicode_fold2_key.c')
| -rw-r--r-- | src/unicode-7.0/unicode_fold2_key.c | 203 | 
1 files changed, 203 insertions, 0 deletions
| diff --git a/src/unicode-7.0/unicode_fold2_key.c b/src/unicode-7.0/unicode_fold2_key.c new file mode 100644 index 0000000..74e9876 --- /dev/null +++ b/src/unicode-7.0/unicode_fold2_key.c @@ -0,0 +1,203 @@ +/* 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_fold2_key unicode_fold2_key.gperf  */ +/* Computed positions: -k'3,6' */ + + + +/* This gperf source file was generated by make_unicode_fold_data.py */ +#include <string.h> +#include "regenc.h" + +#define TOTAL_KEYWORDS 59 +#define MIN_WORD_LENGTH 6 +#define MAX_WORD_LENGTH 6 +#define MIN_HASH_VALUE 0 +#define MAX_HASH_VALUE 58 +/* maximum key range = 59, duplicates = 0 */ + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +/*ARGSUSED*/ +static unsigned int +hash(OnigCodePoint codes[]) +{ +  static const unsigned char asso_values[] = +    { +      58, 57, 56, 55, 54, 53, 52, 16, 50, 59, +      15, 59, 25, 59, 59, 59, 59, 59, 59,  3, +      59, 59, 59, 59, 59, 59, 59, 59, 59, 59, +      59, 59, 49, 48, 47, 46, 45, 44, 43, 42, +      59, 59, 59, 59, 59, 59, 59, 59, 59, 21, +      59, 59, 59, 59, 59, 59, 59, 59, 59, 59, +      59, 59, 59, 59, 59, 59,  2, 59, 59, 59, +      59, 59, 59, 59, 59, 59, 59, 59, 59, 59, +      59, 59, 59, 59, 59, 59, 59, 59, 59, 59, +      59, 59, 59, 59, 59, 59, 40, 20, 39, 38, +      37, 14,  5, 36, 20,  7, 25, 34, 29, 32, +      16, 59, 31, 59, 59,  2,  1, 59, 25, 15, +      59, 14, 59, 59, 28, 59,  2, 59, 59, 59, +      11, 59, 59, 59, 59, 59, 59, 59, 59, 59, +      59, 59, 59, 59, 59, 59, 59, 59, 59, 59, +      59, 59, 59, 59, 59, 59, 59, 59, 59, 59, +      59, 59, 59, 59, 59, 59, 59, 59, 59, 59, +      59, 59, 24, 59, 22, 59, 59, 11, 59, 59, +      59, 59, 59,  7, 59,  0, 59, 59, 16, 59, +       1, 59, 59, 16, 59, 59, 59, 15, 59, 59, +      59,  6, 59, 59, 59, 59,  0, 59, 59, 59, +      59, 59, 59, 59, 59, 59, 59, 59, 59, 59, +      59, 59, 59, 59, 59, 59, 59, 59, 59, 59, +      59, 59, 59, 59, 59, 59, 59, 59, 59, 59, +      59, 59, 59, 59, 59, 59, 59, 59, 59, 59, +      59, 59, 59, 59, 59, 59 +    }; +  return asso_values[(unsigned char)onig_codes_byte_at(codes, 5)] + asso_values[(unsigned char)onig_codes_byte_at(codes, 2)]; +} + +int +unicode_fold2_key(OnigCodePoint codes[]) +{ +  static const int wordlist[] = +    { + +      101, + +      253, + +      76, + +      29, + +      24, + +      239, + +      96, + +      71, + +      92, + +      67, + +      4, + +      62, + +      8, + +      58, + +      234, + +      109, + +      164, + +      88, + +      84, + +      80, + +      214, + +      0, + +      54, + +      261, + +      50, + +      105, + +      121, + +      125, + +      257, + +      42, + +      38, + +      249, + +      46, + +      117, + +      12, + +      113, + +      244, + +      229, + +      224, + +      219, + +      209, + +      16, + +      204, + +      199, + +      194, + +      189, + +      184, + +      179, + +      174, + +      169, + +      20, + +      34, + +      159, + +      154, + +      149, + +      144, + +      139, + +      134, + +      129 +    }; + +  if (0 == 0) +    { +      int key = hash(codes); + +      if (key <= MAX_HASH_VALUE) +        { +          int index = wordlist[key]; + +          if (index >= 0 && onig_codes_cmp(codes, OnigUnicodeFolds2 + index, 2) == 0) +            return index; +        } +    } +  return -1; +} + + | 
