From ac9212c1d03bd23f6322bef39a4a0384b5afcc5d Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Tue, 6 Jan 1998 13:40:27 +0000 Subject: [PATCH] Syncing crashed repository with my work tree. --- charset/Makefile | 46 ++++- charset/U-cat.h | 457 ++++++++++++++++++++++++++++++++++++++++++ charset/U-lower.h | 248 +++++++++++++++++++++++ charset/U-sig.h | 172 ++++++++++++++++ charset/U-unacc.h | 229 +++++++++++++++++++++ charset/U-upper.h | 229 +++++++++++++++++++++ charset/debug.c | 41 ++++ charset/misc/gentab | 43 ++++ charset/misc/mksig | 40 ++++ charset/misc/mkunacc | 34 ++++ charset/misc/unisplit | 30 +++ charset/set/sig | 98 +++++++++ charset/strlen.c | 17 ++ charset/test.c | 55 +++++ charset/tocat.c | 9 + charset/tolower.c | 9 + charset/tosig.c | 9 + charset/toupper.c | 9 + charset/unaccent.c | 9 + charset/unicode.h | 121 +++++++++++ charset/utf8.c | 41 ++++ lib/config.h | 11 +- lib/fastbuf.c | 4 +- lib/lib.h | 9 + lib/realloc.c | 19 ++ lib/regex.c | 4 +- lib/url.c | 4 +- lib/wordsplit.c | 2 +- 28 files changed, 1984 insertions(+), 15 deletions(-) create mode 100644 charset/U-cat.h create mode 100644 charset/U-lower.h create mode 100644 charset/U-sig.h create mode 100644 charset/U-unacc.h create mode 100644 charset/U-upper.h create mode 100644 charset/debug.c create mode 100644 charset/misc/gentab create mode 100644 charset/misc/mksig create mode 100644 charset/misc/mkunacc create mode 100644 charset/misc/unisplit create mode 100644 charset/set/sig create mode 100644 charset/strlen.c create mode 100644 charset/test.c create mode 100644 charset/tocat.c create mode 100644 charset/tolower.c create mode 100644 charset/tosig.c create mode 100644 charset/toupper.c create mode 100644 charset/unaccent.c create mode 100644 charset/unicode.h create mode 100644 charset/utf8.c create mode 100644 lib/realloc.c diff --git a/charset/Makefile b/charset/Makefile index 5cdd4898..fab75f42 100644 --- a/charset/Makefile +++ b/charset/Makefile @@ -1,19 +1,51 @@ -# Makefile for the Sherlock Charset Data Files (c) 1997 Martin Mares +# Makefile for the Sherlock UniCode Library (c) 1997 Martin Mares -all: .stamp +CLIB=../lib/libunicode.a + +OBJS=toupper.o tolower.o tocat.o utf8.o unaccent.o tosig.o strlen.o debug.o + +all: .stamp $(CLIB) .stamp: mkdir -p $(TOPDIR)/run/char ln -sf `pwd`/set $(TOPDIR)/run/char - ln -sf `pwd`/exp $(TOPDIR)/run/char touch .stamp -buildall: - rm -rf exp +$(CLIB): $(OBJS) + rm -f $(CLIB) + ar rcs $(CLIB) $(OBJS) + +toupper.o: toupper.c unicode.h U-upper.h +tolower.o: tolower.c unicode.h U-lower.h +tocat.o: tocat.c unicode.h U-cat.h +utf8.o: utf8.c unicode.h +unaccent.o: unaccent.c unicode.h U-unacc.h +tosig.o: tosig.c unicode.h U-sig.h +strlen.o: strlen.c unicode.h +debug.o: debug.c unicode.h + +test: test.o $(CLIB) $(TOPDIR)/lib/libsh.a + $(CC) $(LDFLAGS) test.o -o test -lsh -lunicode + +test.o: test.c unicode.h + +buildall: cleanall mkdir exp - for a in `find set -type f` ; do b=`basename $$a` ; echo $$b ; misc/mkexpands $$b >exp/$$b ; done + for a in `find set -type f -maxdepth 1` ; do b=`basename $$a` ; echo $$b ; misc/mkexpands $$b >exp/$$b ; done + misc/unisplit + misc/gentab _U_cat byte U-cat.h + misc/gentab _U_lower word U-lower.h + misc/gentab _U_upper word U-upper.h + misc/mkunacc >misc/u-unacc + misc/gentab _U_unaccent word U-unacc.h + misc/mksig >misc/u-sig + misc/gentab _U_sig byte U-sig.h + +cleanall: + rm -rf exp misc/u-* U-*.h tags: + etags *.[ch] clean: - rm -f .stamp + rm -f .stamp misc/u-* test diff --git a/charset/U-cat.h b/charset/U-cat.h new file mode 100644 index 00000000..ddd9bcd1 --- /dev/null +++ b/charset/U-cat.h @@ -0,0 +1,457 @@ +/* Generated automatically by gentab. Please don't edit. */ + +static byte _U_cat_00[256] = { +_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL, +_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL, +_C_BLANK,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,0,0,0,0,0,0, +0,_C_UPPER|_C_XDIGIT,_C_UPPER|_C_XDIGIT,_C_UPPER|_C_XDIGIT,_C_UPPER|_C_XDIGIT,_C_UPPER|_C_XDIGIT,_C_UPPER|_C_XDIGIT,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, +_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,0,0,_C_INNER, +0,_C_LOWER|_C_XDIGIT,_C_LOWER|_C_XDIGIT,_C_LOWER|_C_XDIGIT,_C_LOWER|_C_XDIGIT,_C_LOWER|_C_XDIGIT,_C_LOWER|_C_XDIGIT,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,_C_CTRL, +_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL, +_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL, +_C_BLANK,0,0,0,0,0,0,0,0,0,_C_LOWER,0,0,0,0,0, +0,0,0,0,0,_C_LOWER,0,0,0,0,_C_LOWER,0,0,0,0,0, +_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, +_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER +}; + +static byte _U_cat_01[256] = { +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER, +_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_LOWER, +_C_LOWER,_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER, +_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,0,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER, +_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_LOWER,_C_LOWER,0,_C_UPPER,_C_LOWER,0,0, +0,0,0,0,_C_UPPER,0,_C_LOWER,_C_UPPER,0,_C_LOWER,_C_UPPER,0,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER, +_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_LOWER,_C_UPPER,0,_C_LOWER,_C_UPPER,_C_LOWER,0,0,0,0,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER +}; + +static byte _U_cat_02[256] = { +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static byte _U_cat_03[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,_C_UPPER,0,_C_UPPER,_C_UPPER,_C_UPPER,0,_C_UPPER,0,_C_UPPER,_C_UPPER, +_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, +_C_UPPER,_C_UPPER,0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0, +_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,_C_LOWER,0,0,0,_C_UPPER,0,_C_UPPER,0,_C_UPPER,0, +_C_UPPER,0,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static byte _U_cat_04[256] = { +0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,_C_UPPER,_C_UPPER, +_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, +_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, +0,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,_C_LOWER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +0,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,0,0,_C_UPPER,_C_LOWER,0,0,_C_UPPER,_C_LOWER,0,0,0, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,0,0,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,0,0,_C_UPPER,_C_LOWER,0,0,0,0,0,0 +}; + +static byte _U_cat_05[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, +_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, +_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,0,0,0,0,0,0,0, +0,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static byte _U_cat_10[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, +_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, +_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,0,0,0,0,0,0,0,0, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,0,0,0,0 +}; + +static byte _U_cat_1E[256] = { +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER, +_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,0,0,0,0,0,0 +}; + +static byte _U_cat_1F[256] = { +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,_C_UPPER,0,_C_UPPER,0,_C_UPPER,0,_C_UPPER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,_C_UPPER,0, +0,0,_C_LOWER,_C_LOWER,_C_LOWER,0,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,0, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,0,0, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,0, +0,0,_C_LOWER,_C_LOWER,_C_LOWER,0,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,0 +}; + +static byte _U_cat_20[256] = { +_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,_C_BLANK,_C_BLANK,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_C_LOWER, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static byte _U_cat_21[256] = { +0,0,_C_UPPER,0,0,0,0,_C_UPPER,0,0,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,_C_LOWER, +_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,0,_C_UPPER,0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0, +_C_UPPER,_C_UPPER,_C_UPPER,0,_C_UPPER,0,_C_UPPER,0,_C_UPPER,0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,_C_LOWER, +_C_UPPER,_C_UPPER,0,_C_UPPER,_C_LOWER,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static byte _U_cat_24[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, +_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static byte _U_cat_30[256] = { +_C_BLANK,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static byte _U_cat_33[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,_C_LOWER,_C_UPPER,_C_LOWER,0,_C_LOWER,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,_C_LOWER,0,0,0,_C_LOWER,_C_LOWER,_C_LOWER, +0,0,0,0,0,0,0,0,0,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,_C_LOWER,0,0, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,_C_UPPER,0,0,0,0,0,_C_UPPER, +0,_C_UPPER,0,0,_C_LOWER,_C_LOWER,0,0,0,0,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_LOWER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_UPPER,0,_C_UPPER,_C_UPPER,_C_LOWER,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static byte _U_cat_D8[256] = { +_C_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static byte _U_cat_DB[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_C_CTRL, +_C_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_C_CTRL +}; + +static byte _U_cat_DC[256] = { +_C_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static byte _U_cat_DF[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_C_CTRL +}; + +static byte _U_cat_E0[256] = { +_C_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static byte _U_cat_F8[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_C_CTRL +}; + +static byte _U_cat_FB[256] = { +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,0,0,0,0, +0,0,0,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static byte _U_cat_FE[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_C_BLANK +}; + +static byte _U_cat_FF[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER, +_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,0,0,0, +0,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER, +_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +byte *_U_cat[256] = { +_U_cat_00,_U_cat_01,_U_cat_02,_U_cat_03,_U_cat_04,_U_cat_05,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +_U_cat_10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_cat_1E,_U_cat_1F, +_U_cat_20,_U_cat_21,NULL,NULL,_U_cat_24,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +_U_cat_30,NULL,NULL,_U_cat_33,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_cat_D8,NULL,NULL,_U_cat_DB,_U_cat_DC,NULL,NULL,_U_cat_DF, +_U_cat_E0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_cat_F8,NULL,NULL,_U_cat_FB,NULL,NULL,_U_cat_FE,_U_cat_FF +}; diff --git a/charset/U-lower.h b/charset/U-lower.h new file mode 100644 index 00000000..d7b34c8f --- /dev/null +++ b/charset/U-lower.h @@ -0,0 +1,248 @@ +/* Generated automatically by gentab. Please don't edit. */ + +static word _U_lower_00[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF, +0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0,0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static word _U_lower_01[256] = { +0x0101,0,0x0103,0,0x0105,0,0x0107,0,0x0109,0,0x010B,0,0x010D,0,0x010F,0, +0x0111,0,0x0113,0,0x0115,0,0x0117,0,0x0119,0,0x011B,0,0x011D,0,0x011F,0, +0x0121,0,0x0123,0,0x0125,0,0x0127,0,0x0129,0,0x012B,0,0x012D,0,0x012F,0, +0x0069,0,0x0133,0,0x0135,0,0x0137,0,0,0x013A,0,0x013C,0,0x013E,0,0x0140, +0,0x0142,0,0x0144,0,0x0146,0,0x0148,0,0,0x014B,0,0x014D,0,0x014F,0, +0x0151,0,0x0153,0,0x0155,0,0x0157,0,0x0159,0,0x015B,0,0x015D,0,0x015F,0, +0x0161,0,0x0163,0,0x0165,0,0x0167,0,0x0169,0,0x016B,0,0x016D,0,0x016F,0, +0x0171,0,0x0173,0,0x0175,0,0x0177,0,0x00FF,0x017A,0,0x017C,0,0x017E,0,0, +0,0x0253,0x0183,0,0x0185,0,0x0254,0x0188,0,0x0256,0x0257,0x018C,0,0,0x0258,0x0259, +0x025B,0x0192,0,0x0260,0x0263,0,0x0269,0x0268,0x0199,0,0,0,0x026F,0x0272,0,0, +0x01A1,0,0x01A3,0,0x01A5,0,0,0x01A8,0,0x0283,0,0,0x01AD,0,0x0288,0x01B0, +0,0x028A,0x028B,0x01B4,0,0x01B6,0,0x0292,0x01B9,0,0,0,0x01BD,0,0,0, +0,0,0,0,0x01C6,0x01C6,0,0x01C9,0x01C9,0,0x01CC,0x01CC,0,0x01CE,0,0x01D0, +0,0x01D2,0,0x01D4,0,0x01D6,0,0x01D8,0,0x01DA,0,0x01DC,0,0,0x01DF,0, +0x01E1,0,0x01E3,0,0x01E5,0,0x01E7,0,0x01E9,0,0x01EB,0,0x01ED,0,0x01EF,0, +0,0x01F3,0x01F3,0,0x01F5,0,0,0,0,0,0x01FB,0,0x01FD,0,0x01FF,0 +}; + +static word _U_lower_02[256] = { +0x0201,0,0x0203,0,0x0205,0,0x0207,0,0x0209,0,0x020B,0,0x020D,0,0x020F,0, +0x0211,0,0x0213,0,0x0215,0,0x0217,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static word _U_lower_03[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0x03AC,0,0x03AD,0x03AE,0x03AF,0,0x03CC,0,0x03CD,0x03CE, +0,0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7,0x03B8,0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF, +0x03C0,0x03C1,0,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,0x03C8,0x03C9,0x03CA,0x03CB,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0x03E3,0,0x03E5,0,0x03E7,0,0x03E9,0,0x03EB,0,0x03ED,0,0x03EF,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static word _U_lower_04[256] = { +0,0x0451,0x0452,0x0453,0x0454,0x0455,0x0456,0x0457,0x0458,0x0459,0x045A,0x045B,0x045C,0,0x045E,0x045F, +0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F, +0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x0461,0,0x0463,0,0x0465,0,0x0467,0,0x0469,0,0x046B,0,0x046D,0,0x046F,0, +0x0471,0,0x0473,0,0x0475,0,0x0477,0,0x0479,0,0x047B,0,0x047D,0,0x047F,0, +0x0481,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x0491,0,0x0493,0,0x0495,0,0x0497,0,0x0499,0,0x049B,0,0x049D,0,0x049F,0, +0x04A1,0,0x04A3,0,0x04A5,0,0x04A7,0,0x04A9,0,0x04AB,0,0x04AD,0,0x04AF,0, +0x04B1,0,0x04B3,0,0x04B5,0,0x04B7,0,0x04B9,0,0x04BB,0,0x04BD,0,0x04BF,0, +0,0x04C2,0,0x04C4,0,0,0,0x04C8,0,0,0,0x04CC,0,0,0,0, +0x04D1,0,0x04D3,0,0x04D5,0,0x04D7,0,0x04D9,0,0x04DB,0,0x04DD,0,0x04DF,0, +0x04E1,0,0x04E3,0,0x04E5,0,0x04E7,0,0x04E9,0,0x04EB,0,0,0,0x04EF,0, +0x04F1,0,0x04F3,0,0x04F5,0,0,0,0x04F9,0,0,0,0,0,0,0 +}; + +static word _U_lower_05[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0x0561,0x0562,0x0563,0x0564,0x0565,0x0566,0x0567,0x0568,0x0569,0x056A,0x056B,0x056C,0x056D,0x056E,0x056F, +0x0570,0x0571,0x0572,0x0573,0x0574,0x0575,0x0576,0x0577,0x0578,0x0579,0x057A,0x057B,0x057C,0x057D,0x057E,0x057F, +0x0580,0x0581,0x0582,0x0583,0x0584,0x0585,0x0586,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static word _U_lower_10[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x10D0,0x10D1,0x10D2,0x10D3,0x10D4,0x10D5,0x10D6,0x10D7,0x10D8,0x10D9,0x10DA,0x10DB,0x10DC,0x10DD,0x10DE,0x10DF, +0x10E0,0x10E1,0x10E2,0x10E3,0x10E4,0x10E5,0x10E6,0x10E7,0x10E8,0x10E9,0x10EA,0x10EB,0x10EC,0x10ED,0x10EE,0x10EF, +0x10F0,0x10F1,0x10F2,0x10F3,0x10F4,0x10F5,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static word _U_lower_1E[256] = { +0x1E01,0,0x1E03,0,0x1E05,0,0x1E07,0,0x1E09,0,0x1E0B,0,0x1E0D,0,0x1E0F,0, +0x1E11,0,0x1E13,0,0x1E15,0,0x1E17,0,0x1E19,0,0x1E1B,0,0x1E1D,0,0x1E1F,0, +0x1E21,0,0x1E23,0,0x1E25,0,0x1E27,0,0x1E29,0,0x1E2B,0,0x1E2D,0,0x1E2F,0, +0x1E31,0,0x1E33,0,0x1E35,0,0x1E37,0,0x1E39,0,0x1E3B,0,0x1E3D,0,0x1E3F,0, +0x1E41,0,0x1E43,0,0x1E45,0,0x1E47,0,0x1E49,0,0x1E4B,0,0x1E4D,0,0x1E4F,0, +0x1E51,0,0x1E53,0,0x1E55,0,0x1E57,0,0x1E59,0,0x1E5B,0,0x1E5D,0,0x1E5F,0, +0x1E61,0,0x1E63,0,0x1E65,0,0x1E67,0,0x1E69,0,0x1E6B,0,0x1E6D,0,0x1E6F,0, +0x1E71,0,0x1E73,0,0x1E75,0,0x1E77,0,0x1E79,0,0x1E7B,0,0x1E7D,0,0x1E7F,0, +0x1E81,0,0x1E83,0,0x1E85,0,0x1E87,0,0x1E89,0,0x1E8B,0,0x1E8D,0,0x1E8F,0, +0x1E91,0,0x1E93,0,0x1E95,0,0,0,0,0,0,0,0,0,0,0, +0x1EA1,0,0x1EA3,0,0x1EA5,0,0x1EA7,0,0x1EA9,0,0x1EAB,0,0x1EAD,0,0x1EAF,0, +0x1EB1,0,0x1EB3,0,0x1EB5,0,0x1EB7,0,0x1EB9,0,0x1EBB,0,0x1EBD,0,0x1EBF,0, +0x1EC1,0,0x1EC3,0,0x1EC5,0,0x1EC7,0,0x1EC9,0,0x1ECB,0,0x1ECD,0,0x1ECF,0, +0x1ED1,0,0x1ED3,0,0x1ED5,0,0x1ED7,0,0x1ED9,0,0x1EDB,0,0x1EDD,0,0x1EDF,0, +0x1EE1,0,0x1EE3,0,0x1EE5,0,0x1EE7,0,0x1EE9,0,0x1EEB,0,0x1EED,0,0x1EEF,0, +0x1EF1,0,0x1EF3,0,0x1EF5,0,0x1EF7,0,0x1EF9,0,0,0,0,0,0,0 +}; + +static word _U_lower_1F[256] = { +0,0,0,0,0,0,0,0,0x1F00,0x1F01,0x1F02,0x1F03,0x1F04,0x1F05,0x1F06,0x1F07, +0,0,0,0,0,0,0,0,0x1F10,0x1F11,0x1F12,0x1F13,0x1F14,0x1F15,0,0, +0,0,0,0,0,0,0,0,0x1F20,0x1F21,0x1F22,0x1F23,0x1F24,0x1F25,0x1F26,0x1F27, +0,0,0,0,0,0,0,0,0x1F30,0x1F31,0x1F32,0x1F33,0x1F34,0x1F35,0x1F36,0x1F37, +0,0,0,0,0,0,0,0,0x1F40,0x1F41,0x1F42,0x1F43,0x1F44,0x1F45,0,0, +0,0,0,0,0,0,0,0,0,0x1F51,0,0x1F53,0,0x1F55,0,0x1F57, +0,0,0,0,0,0,0,0,0x1F60,0x1F61,0x1F62,0x1F63,0x1F64,0x1F65,0x1F66,0x1F67, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x1F80,0x1F81,0x1F82,0x1F83,0x1F84,0x1F85,0x1F86,0x1F87, +0,0,0,0,0,0,0,0,0x1F90,0x1F91,0x1F92,0x1F93,0x1F94,0x1F95,0x1F96,0x1F97, +0,0,0,0,0,0,0,0,0x1FA0,0x1FA1,0x1FA2,0x1FA3,0x1FA4,0x1FA5,0x1FA6,0x1FA7, +0,0,0,0,0,0,0,0,0x1FB0,0x1FB1,0x1F70,0x1F71,0x1FB3,0,0,0, +0,0,0,0,0,0,0,0,0x1F72,0x1F73,0x1F74,0x1F75,0x1FC3,0,0,0, +0,0,0,0,0,0,0,0,0x1FD0,0x1FD1,0x1F76,0x1F77,0,0,0,0, +0,0,0,0,0,0,0,0,0x1FE0,0x1FE1,0x1F7A,0x1F7B,0x1FE5,0,0,0, +0,0,0,0,0,0,0,0,0x1F78,0x1F79,0x1F7C,0x1F7D,0x1FF3,0,0,0 +}; + +static word _U_lower_21[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x2170,0x2171,0x2172,0x2173,0x2174,0x2175,0x2176,0x2177,0x2178,0x2179,0x217A,0x217B,0x217C,0x217D,0x217E,0x217F, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static word _U_lower_24[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0x24D0,0x24D1,0x24D2,0x24D3,0x24D4,0x24D5,0x24D6,0x24D7,0x24D8,0x24D9, +0x24DA,0x24DB,0x24DC,0x24DD,0x24DE,0x24DF,0x24E0,0x24E1,0x24E2,0x24E3,0x24E4,0x24E5,0x24E6,0x24E7,0x24E8,0x24E9, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static word _U_lower_FF[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xFF41,0xFF42,0xFF43,0xFF44,0xFF45,0xFF46,0xFF47,0xFF48,0xFF49,0xFF4A,0xFF4B,0xFF4C,0xFF4D,0xFF4E,0xFF4F, +0xFF50,0xFF51,0xFF52,0xFF53,0xFF54,0xFF55,0xFF56,0xFF57,0xFF58,0xFF59,0xFF5A,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +word *_U_lower[256] = { +_U_lower_00,_U_lower_01,_U_lower_02,_U_lower_03,_U_lower_04,_U_lower_05,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +_U_lower_10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_lower_1E,_U_lower_1F, +NULL,_U_lower_21,NULL,NULL,_U_lower_24,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_lower_FF +}; diff --git a/charset/U-sig.h b/charset/U-sig.h new file mode 100644 index 00000000..5fceac33 --- /dev/null +++ b/charset/U-sig.h @@ -0,0 +1,172 @@ +/* Generated automatically by gentab. Please don't edit. */ + +static byte _U_sig_00[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0,0,0,0,0, +0,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0x61,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0x6F,0,0,0,0,0, +0x41,0x41,0x41,0x41,0x41,0x41,0,0x43,0x45,0x45,0x45,0x45,0x49,0x49,0x49,0x49, +0,0x4E,0x4F,0x4F,0x4F,0x4F,0x4F,0,0,0x55,0x55,0x55,0x55,0x59,0,0, +0x41,0x41,0x41,0x41,0x41,0x41,0,0x43,0x45,0x45,0x45,0x45,0x49,0x49,0x49,0x49, +0,0x4E,0x4F,0x4F,0x4F,0x4F,0x4F,0,0,0x55,0x55,0x55,0x55,0x59,0,0x59 +}; + +static byte _U_sig_01[256] = { +0x41,0x41,0x41,0x41,0x41,0x41,0x43,0x43,0x43,0x43,0x43,0x43,0x43,0x43,0x44,0x44, +0,0,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x47,0x47,0x47,0x47, +0x47,0x47,0x47,0x47,0x48,0x48,0,0,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49, +0x49,0x49,0,0,0x4A,0x4A,0x4B,0x4B,0,0x4C,0x4C,0x4C,0x4C,0x4C,0x4C,0, +0,0,0,0x4E,0x4E,0x4E,0x4E,0x4E,0x4E,0,0,0,0x4F,0x4F,0x4F,0x4F, +0x4F,0x4F,0,0,0x52,0x52,0x52,0x52,0x52,0x52,0x53,0x53,0x53,0x53,0x53,0x53, +0x53,0x53,0x54,0x54,0x54,0x54,0,0,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, +0x55,0x55,0x55,0x55,0x57,0x57,0x59,0x59,0x59,0x5A,0x5A,0x5A,0x5A,0x5A,0x5A,0x53, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x4F,0x4F,0,0,0,0,0,0,0,0,0,0,0,0,0,0x55, +0x55,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0x41,0x41,0x49, +0x49,0x4F,0x4F,0x55,0x55,0,0,0,0,0,0,0,0,0,0,0, +0x41,0x41,0,0,0,0,0x47,0x47,0x4B,0x4B,0x4F,0x4F,0,0,0,0, +0x6A,0,0,0,0x47,0x47,0,0,0,0,0,0,0,0,0,0 +}; + +static byte _U_sig_02[256] = { +0x41,0x41,0x41,0x41,0x45,0x45,0x45,0x45,0x49,0x49,0x49,0x49,0x4F,0x4F,0x4F,0x4F, +0x52,0x52,0x52,0x52,0x55,0x55,0x55,0x55,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static byte _U_sig_1E[256] = { +0x41,0x41,0x42,0x42,0x42,0x42,0x42,0x42,0,0,0x44,0x44,0x44,0x44,0x44,0x44, +0x44,0x44,0x44,0x44,0,0,0,0,0x45,0x45,0x45,0x45,0,0,0x46,0x46, +0x47,0x47,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x49,0x49,0,0, +0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4C,0x4C,0,0,0x4C,0x4C,0x4C,0x4C,0x4D,0x4D, +0x4D,0x4D,0x4D,0x4D,0x4E,0x4E,0x4E,0x4E,0x4E,0x4E,0x4E,0x4E,0,0,0,0, +0,0,0,0,0x50,0x50,0x50,0x50,0x52,0x52,0x52,0x52,0,0,0x52,0x52, +0x53,0x53,0x53,0x53,0,0,0,0,0,0,0x54,0x54,0x54,0x54,0x54,0x54, +0x54,0x54,0x55,0x55,0x55,0x55,0x55,0x55,0,0,0,0,0x56,0x56,0x56,0x56, +0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x58,0x58,0x58,0x58,0x59,0x59, +0x5A,0x5A,0x5A,0x5A,0x5A,0x5A,0x68,0x74,0x77,0x79,0,0,0,0,0,0, +0x41,0x41,0x41,0x41,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x45,0x45,0x45,0x45,0x45,0x45,0,0, +0,0,0,0,0,0,0,0,0x49,0x49,0x49,0x49,0x4F,0x4F,0x4F,0x4F, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x55,0x55,0x55,0x55,0,0,0,0,0,0,0,0, +0,0,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0,0,0,0,0,0 +}; + +static byte _U_sig_20[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x6E, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static byte _U_sig_21[256] = { +0,0,0x43,0,0,0,0,0,0,0,0x67,0x48,0x48,0x48,0x68,0, +0x49,0x49,0x4C,0x6C,0,0x4E,0,0,0x50,0x50,0x51,0x52,0x52,0x52,0,0, +0,0,0,0,0x5A,0,0,0,0x5A,0,0x4B,0,0x42,0x43,0,0x65, +0x45,0x46,0,0x4D,0x6F,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static byte _U_sig_24[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A, +0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A, +0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50, +0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static byte _U_sig_FF[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0,0,0,0,0, +0,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +byte *_U_sig[256] = { +_U_sig_00,_U_sig_01,_U_sig_02,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_sig_1E,NULL, +_U_sig_20,_U_sig_21,NULL,NULL,_U_sig_24,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_sig_FF +}; diff --git a/charset/U-unacc.h b/charset/U-unacc.h new file mode 100644 index 00000000..94849bd4 --- /dev/null +++ b/charset/U-unacc.h @@ -0,0 +1,229 @@ +/* Generated automatically by gentab. Please don't edit. */ + +static word _U_unaccent_00[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0x0061,0,0,0,0,0, +0,0,0,0,0,0x03BC,0,0,0,0,0x006F,0,0,0,0,0, +0x0041,0x0041,0x0041,0x0041,0x0041,0x0041,0,0x0043,0x0045,0x0045,0x0045,0x0045,0x0049,0x0049,0x0049,0x0049, +0,0x004E,0x004F,0x004F,0x004F,0x004F,0x004F,0,0,0x0055,0x0055,0x0055,0x0055,0x0059,0,0, +0x0061,0x0061,0x0061,0x0061,0x0061,0x0061,0,0x0063,0x0065,0x0065,0x0065,0x0065,0x0069,0x0069,0x0069,0x0069, +0,0x006E,0x006F,0x006F,0x006F,0x006F,0x006F,0,0,0x0075,0x0075,0x0075,0x0075,0x0079,0,0x0079 +}; + +static word _U_unaccent_01[256] = { +0x0041,0x0061,0x0041,0x0061,0x0041,0x0061,0x0043,0x0063,0x0043,0x0063,0x0043,0x0063,0x0043,0x0063,0x0044,0x0064, +0,0,0x0045,0x0065,0x0045,0x0065,0x0045,0x0065,0x0045,0x0065,0x0045,0x0065,0x0047,0x0067,0x0047,0x0067, +0x0047,0x0067,0x0047,0x0067,0x0048,0x0068,0,0,0x0049,0x0069,0x0049,0x0069,0x0049,0x0069,0x0049,0x0069, +0x0049,0,0,0,0x004A,0x006A,0x004B,0x006B,0,0x004C,0x006C,0x004C,0x006C,0x004C,0x006C,0, +0,0,0,0x004E,0x006E,0x004E,0x006E,0x004E,0x006E,0,0,0,0x004F,0x006F,0x004F,0x006F, +0x004F,0x006F,0,0,0x0052,0x0072,0x0052,0x0072,0x0052,0x0072,0x0053,0x0073,0x0053,0x0073,0x0053,0x0073, +0x0053,0x0073,0x0054,0x0074,0x0054,0x0074,0,0,0x0055,0x0075,0x0055,0x0075,0x0055,0x0075,0x0055,0x0075, +0x0055,0x0075,0x0055,0x0075,0x0057,0x0077,0x0059,0x0079,0x0059,0x005A,0x007A,0x005A,0x007A,0x005A,0x007A,0x0073, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x004F,0x006F,0,0,0,0,0,0,0,0,0,0,0,0,0,0x0055, +0x0075,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0x0041,0x0061,0x0049, +0x0069,0x004F,0x006F,0x0055,0x0075,0x00DC,0x00FC,0x00DC,0x00FC,0x00DC,0x00FC,0x00DC,0x00FC,0,0x00C4,0x00E4, +0x0041,0x0061,0x00C6,0x00E6,0,0,0x0047,0x0067,0x004B,0x006B,0x004F,0x006F,0x01EA,0x01EB,0x01B7,0x0292, +0x006A,0,0,0,0x0047,0x0067,0,0,0,0,0x00C5,0x00E5,0x00C6,0x00E6,0x00D8,0x00F8 +}; + +static word _U_unaccent_02[256] = { +0x0041,0x0061,0x0041,0x0061,0x0045,0x0065,0x0045,0x0065,0x0049,0x0069,0x0049,0x0069,0x004F,0x006F,0x004F,0x006F, +0x0052,0x0072,0x0052,0x0072,0x0055,0x0075,0x0055,0x0075,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x0068,0x0266,0x006A,0x0072,0x0279,0x027B,0x0281,0x0077,0x0079,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x0263,0x006C,0x0073,0x0078,0x0295,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static word _U_unaccent_03[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0x0391,0,0x0395,0x0397,0x0399,0,0x039F,0,0x03A5,0x03A9, +0x03B9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0x0399,0x03A5,0x03B1,0x03B5,0x03B7,0x03B9, +0x03C5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0x03B9,0x03C5,0x03BF,0x03C5,0x03C9,0, +0,0,0,0x03D2,0x03D2,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static word _U_unaccent_04[256] = { +0,0x0415,0,0x0413,0,0,0,0x0406,0,0,0,0,0x041A,0,0x0423,0, +0,0,0,0,0,0,0,0,0,0x0418,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0x0438,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0x0435,0,0x0433,0,0,0,0x0456,0,0,0,0,0x043A,0,0x0443,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0x0474,0x0475,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0x0416,0x0436,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x0410,0x0430,0x0410,0x0430,0x00C6,0x00E6,0x0415,0x0435,0x018F,0x0259,0x018F,0x0259,0x0416,0x0436,0x0417,0x0437, +0x01B7,0x0292,0x0418,0x0438,0x0418,0x0438,0x041E,0x043E,0x019F,0x0275,0x019F,0x0275,0,0,0x0423,0x0443, +0x0423,0x0443,0x0423,0x0443,0x0427,0x0447,0,0,0x042B,0x044B,0,0,0,0,0,0 +}; + +static word _U_unaccent_1E[256] = { +0x0041,0x0061,0x0042,0x0062,0x0042,0x0062,0x0042,0x0062,0x00C7,0x00E7,0x0044,0x0064,0x0044,0x0064,0x0044,0x0064, +0x0044,0x0064,0x0044,0x0064,0x0112,0x0113,0x0112,0x0113,0x0045,0x0065,0x0045,0x0065,0x0114,0x0115,0x0046,0x0066, +0x0047,0x0067,0x0048,0x0068,0x0048,0x0068,0x0048,0x0068,0x0048,0x0068,0x0048,0x0068,0x0049,0x0069,0x00CF,0x00EF, +0x004B,0x006B,0x004B,0x006B,0x004B,0x006B,0x004C,0x006C,0x1E36,0x1E37,0x004C,0x006C,0x004C,0x006C,0x004D,0x006D, +0x004D,0x006D,0x004D,0x006D,0x004E,0x006E,0x004E,0x006E,0x004E,0x006E,0x004E,0x006E,0x00D5,0x00F5,0x00D5,0x00F5, +0x014C,0x014D,0x014C,0x014D,0x0050,0x0070,0x0050,0x0070,0x0052,0x0072,0x0052,0x0072,0x1E5A,0x1E5B,0x0052,0x0072, +0x0053,0x0073,0x0053,0x0073,0x015A,0x015B,0x0160,0x0161,0x1E62,0x1E63,0x0054,0x0074,0x0054,0x0074,0x0054,0x0074, +0x0054,0x0074,0x0055,0x0075,0x0055,0x0075,0x0055,0x0075,0x0168,0x0169,0x016A,0x016B,0x0056,0x0076,0x0056,0x0076, +0x0057,0x0077,0x0057,0x0077,0x0057,0x0077,0x0057,0x0077,0x0057,0x0077,0x0058,0x0078,0x0058,0x0078,0x0059,0x0079, +0x005A,0x007A,0x005A,0x007A,0x005A,0x007A,0x0068,0x0074,0x0077,0x0079,0,0x017F,0,0,0,0, +0x0041,0x0061,0x0041,0x0061,0x00C2,0x00E2,0x00C2,0x00E2,0x00C2,0x00E2,0x00C2,0x00E2,0x00C2,0x00E2,0x0102,0x0103, +0x0102,0x0103,0x0102,0x0103,0x0102,0x0103,0x0102,0x0103,0x0045,0x0065,0x0045,0x0065,0x0045,0x0065,0x00CA,0x00EA, +0x00CA,0x00EA,0x00CA,0x00EA,0x00CA,0x00EA,0x00CA,0x00EA,0x0049,0x0069,0x0049,0x0069,0x004F,0x006F,0x004F,0x006F, +0x00D4,0x00F4,0x00D4,0x00F4,0x00D4,0x00F4,0x00D4,0x00F4,0x00D4,0x00F4,0x01A0,0x01A1,0x01A0,0x01A1,0x01A0,0x01A1, +0x01A0,0x01A1,0x01A0,0x01A1,0x0055,0x0075,0x0055,0x0075,0x01AF,0x01B0,0x01AF,0x01B0,0x01AF,0x01B0,0x01AF,0x01B0, +0x01AF,0x01B0,0x0059,0x0079,0x0059,0x0079,0x0059,0x0079,0x0059,0x0079,0,0,0,0,0,0 +}; + +static word _U_unaccent_1F[256] = { +0x03B1,0x03B1,0x1F00,0x1F01,0x1F00,0x1F01,0x1F00,0x1F01,0x0391,0x0391,0x1F08,0x1F09,0x1F08,0x1F09,0x1F08,0x1F09, +0x03B5,0x03B5,0x1F10,0x1F11,0x1F10,0x1F11,0,0,0x0395,0x0395,0x1F18,0x1F19,0x1F18,0x1F19,0,0, +0x03B7,0x03B7,0x1F20,0x1F21,0x1F20,0x1F21,0x1F20,0x1F21,0x0397,0x0397,0x1F28,0x1F29,0x1F28,0x1F29,0x1F28,0x1F29, +0x03B9,0x03B9,0x1F30,0x1F31,0x1F30,0x1F31,0x1F30,0x1F31,0x0399,0x0399,0x1F38,0x1F39,0x1F38,0x1F39,0x1F38,0x1F39, +0x03BF,0x03BF,0x1F40,0x1F41,0x1F40,0x1F41,0,0,0x039F,0x039F,0x1F48,0x1F49,0x1F48,0x1F49,0,0, +0x03C5,0x03C5,0x1F50,0x1F51,0x1F50,0x1F51,0x1F50,0x1F51,0,0x03A5,0,0x1F59,0,0x1F59,0,0x1F59, +0x03C9,0x03C9,0x1F60,0x1F61,0x1F60,0x1F61,0x1F60,0x1F61,0x03A9,0x03A9,0x1F68,0x1F69,0x1F68,0x1F69,0x1F68,0x1F69, +0x03B1,0x03B1,0x03B5,0x03B5,0x03B7,0x03B7,0x03B9,0x03B9,0x03BF,0x03BF,0x03C5,0x03C5,0x03C9,0x03C9,0,0, +0x1F00,0x1F01,0x1F02,0x1F03,0x1F04,0x1F05,0x1F06,0x1F07,0x1F08,0x1F09,0x1F0A,0x1F0B,0x1F0C,0x1F0D,0x1F0E,0x1F0F, +0x1F20,0x1F21,0x1F22,0x1F23,0x1F24,0x1F25,0x1F26,0x1F27,0x1F28,0x1F29,0x1F2A,0x1F2B,0x1F2C,0x1F2D,0x1F2E,0x1F2F, +0x1F60,0x1F61,0x1F62,0x1F63,0x1F64,0x1F65,0x1F66,0x1F67,0x1F68,0x1F69,0x1F6A,0x1F6B,0x1F6C,0x1F6D,0x1F6E,0x1F6F, +0x03B1,0x03B1,0x1F70,0x03B1,0x1F71,0,0x03B1,0x1FB6,0x0391,0x0391,0x0391,0x0391,0x0391,0,0x0399,0, +0,0,0x1F74,0x03B7,0x1F75,0,0x03B7,0x1FC6,0x0395,0x0395,0x0397,0x0397,0x0397,0,0,0, +0x03B9,0x03B9,0x03CA,0x03CA,0,0,0x03B9,0x03CA,0x0399,0x0399,0x0399,0x0399,0,0,0,0, +0x03C5,0x03C5,0x03CB,0x03CB,0x03C1,0x03C1,0x03C5,0x03CB,0x03A5,0x03A5,0x03A5,0x03A5,0x03A1,0,0,0, +0,0,0x1F7C,0x03C9,0x1F79,0,0x03C9,0x1FF6,0x039F,0x039F,0x03A9,0x03A9,0x03A9,0,0,0 +}; + +static word _U_unaccent_20[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x006E, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static word _U_unaccent_21[256] = { +0,0,0x0043,0,0,0,0,0x0190,0,0,0x0067,0x0048,0x0048,0x0048,0x0068,0x0127, +0x0049,0x0049,0x004C,0x006C,0,0x004E,0,0,0x0050,0x0050,0x0051,0x0052,0x0052,0x0052,0,0, +0,0,0,0,0x005A,0,0x03A9,0,0x005A,0,0x004B,0x00C5,0x0042,0x0043,0,0x0065, +0x0045,0x0046,0,0x004D,0x006F,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x0049,0,0,0,0x0056,0,0,0,0,0x0058,0,0,0x004C,0x0043,0x0044,0x004D, +0x0069,0,0,0,0x0076,0,0,0,0,0x0078,0,0,0x006C,0x0063,0x0064,0x006D, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static word _U_unaccent_24[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A, +0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A, +0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070, +0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static word _U_unaccent_FF[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0,0,0,0,0, +0,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +word *_U_unaccent[256] = { +_U_unaccent_00,_U_unaccent_01,_U_unaccent_02,_U_unaccent_03,_U_unaccent_04,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_unaccent_1E,_U_unaccent_1F, +_U_unaccent_20,_U_unaccent_21,NULL,NULL,_U_unaccent_24,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_unaccent_FF +}; diff --git a/charset/U-upper.h b/charset/U-upper.h new file mode 100644 index 00000000..8d5ae5f7 --- /dev/null +++ b/charset/U-upper.h @@ -0,0 +1,229 @@ +/* Generated automatically by gentab. Please don't edit. */ + +static word _U_upper_00[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, +0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0,0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x0178 +}; + +static word _U_upper_01[256] = { +0,0x0100,0,0x0102,0,0x0104,0,0x0106,0,0x0108,0,0x010A,0,0x010C,0,0x010E, +0,0x0110,0,0x0112,0,0x0114,0,0x0116,0,0x0118,0,0x011A,0,0x011C,0,0x011E, +0,0x0120,0,0x0122,0,0x0124,0,0x0126,0,0x0128,0,0x012A,0,0x012C,0,0x012E, +0,0x0049,0,0x0132,0,0x0134,0,0x0136,0,0,0x0139,0,0x013B,0,0x013D,0, +0x013F,0,0x0141,0,0x0143,0,0x0145,0,0x0147,0,0,0x014A,0,0x014C,0,0x014E, +0,0x0150,0,0x0152,0,0x0154,0,0x0156,0,0x0158,0,0x015A,0,0x015C,0,0x015E, +0,0x0160,0,0x0162,0,0x0164,0,0x0166,0,0x0168,0,0x016A,0,0x016C,0,0x016E, +0,0x0170,0,0x0172,0,0x0174,0,0x0176,0,0,0x0179,0,0x017B,0,0x017D,0x0053, +0,0,0,0x0182,0,0x0184,0,0,0x0187,0,0,0,0x018B,0,0,0, +0,0,0x0191,0,0,0,0,0,0,0x0198,0,0,0,0,0,0, +0,0x01A0,0,0x01A2,0,0x01A4,0,0,0x01A7,0,0,0,0,0x01AC,0,0, +0x01AF,0,0,0,0x01B3,0,0x01B5,0,0,0x01B8,0,0,0,0x01BC,0,0, +0,0,0,0,0,0x01C4,0x01C4,0,0x01C7,0x01C7,0,0x01CA,0x01CA,0,0x01CD,0, +0x01CF,0,0x01D1,0,0x01D3,0,0x01D5,0,0x01D7,0,0x01D9,0,0x01DB,0,0,0x01DE, +0,0x01E0,0,0x01E2,0,0x01E4,0,0x01E6,0,0x01E8,0,0x01EA,0,0x01EC,0,0x01EE, +0,0,0x01F1,0x01F1,0,0x01F4,0,0,0,0,0,0x01FA,0,0x01FC,0,0x01FE +}; + +static word _U_upper_02[256] = { +0,0x0200,0,0x0202,0,0x0204,0,0x0206,0,0x0208,0,0x020A,0,0x020C,0,0x020E, +0,0x0210,0,0x0212,0,0x0214,0,0x0216,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0x0181,0x0186,0,0x0189,0x018A,0x018E,0x018F,0,0x0190,0,0,0,0, +0x0193,0,0,0x0194,0,0,0,0,0x0197,0x0196,0,0,0,0,0,0x019C, +0,0,0x019D,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0x01A9,0,0,0,0,0x01AE,0,0x01B1,0x01B2,0,0,0,0, +0,0,0x01B7,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static word _U_upper_03[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x0386,0x0388,0x0389,0x038A, +0,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,0x0398,0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F, +0x03A0,0x03A1,0,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7,0x03A8,0x03A9,0x03AA,0x03AB,0x038C,0x038E,0x038F,0, +0x0392,0x0398,0,0,0,0x03A6,0x03A0,0,0,0,0,0,0,0,0,0, +0,0,0,0x03E2,0,0x03E4,0,0x03E6,0,0x03E8,0,0x03EA,0,0x03EC,0,0x03EE, +0x039A,0x03A1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static word _U_upper_04[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F, +0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F, +0,0x0401,0x0402,0x0403,0x0404,0x0405,0x0406,0x0407,0x0408,0x0409,0x040A,0x040B,0x040C,0,0x040E,0x040F, +0,0x0460,0,0x0462,0,0x0464,0,0x0466,0,0x0468,0,0x046A,0,0x046C,0,0x046E, +0,0x0470,0,0x0472,0,0x0474,0,0x0476,0,0x0478,0,0x047A,0,0x047C,0,0x047E, +0,0x0480,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0x0490,0,0x0492,0,0x0494,0,0x0496,0,0x0498,0,0x049A,0,0x049C,0,0x049E, +0,0x04A0,0,0x04A2,0,0x04A4,0,0x04A6,0,0x04A8,0,0x04AA,0,0x04AC,0,0x04AE, +0,0x04B0,0,0x04B2,0,0x04B4,0,0x04B6,0,0x04B8,0,0x04BA,0,0x04BC,0,0x04BE, +0,0,0x04C1,0,0x04C3,0,0,0,0x04C7,0,0,0,0x04CB,0,0,0, +0,0x04D0,0,0x04D2,0,0x04D4,0,0x04D6,0,0x04D8,0,0x04DA,0,0x04DC,0,0x04DE, +0,0x04E0,0,0x04E2,0,0x04E4,0,0x04E6,0,0x04E8,0,0x04EA,0,0,0,0x04EE, +0,0x04F0,0,0x04F2,0,0x04F4,0,0,0,0x04F8,0,0,0,0,0,0 +}; + +static word _U_upper_05[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0x0531,0x0532,0x0533,0x0534,0x0535,0x0536,0x0537,0x0538,0x0539,0x053A,0x053B,0x053C,0x053D,0x053E,0x053F, +0x0540,0x0541,0x0542,0x0543,0x0544,0x0545,0x0546,0x0547,0x0548,0x0549,0x054A,0x054B,0x054C,0x054D,0x054E,0x054F, +0x0550,0x0551,0x0552,0x0553,0x0554,0x0555,0x0556,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static word _U_upper_1E[256] = { +0,0x1E00,0,0x1E02,0,0x1E04,0,0x1E06,0,0x1E08,0,0x1E0A,0,0x1E0C,0,0x1E0E, +0,0x1E10,0,0x1E12,0,0x1E14,0,0x1E16,0,0x1E18,0,0x1E1A,0,0x1E1C,0,0x1E1E, +0,0x1E20,0,0x1E22,0,0x1E24,0,0x1E26,0,0x1E28,0,0x1E2A,0,0x1E2C,0,0x1E2E, +0,0x1E30,0,0x1E32,0,0x1E34,0,0x1E36,0,0x1E38,0,0x1E3A,0,0x1E3C,0,0x1E3E, +0,0x1E40,0,0x1E42,0,0x1E44,0,0x1E46,0,0x1E48,0,0x1E4A,0,0x1E4C,0,0x1E4E, +0,0x1E50,0,0x1E52,0,0x1E54,0,0x1E56,0,0x1E58,0,0x1E5A,0,0x1E5C,0,0x1E5E, +0,0x1E60,0,0x1E62,0,0x1E64,0,0x1E66,0,0x1E68,0,0x1E6A,0,0x1E6C,0,0x1E6E, +0,0x1E70,0,0x1E72,0,0x1E74,0,0x1E76,0,0x1E78,0,0x1E7A,0,0x1E7C,0,0x1E7E, +0,0x1E80,0,0x1E82,0,0x1E84,0,0x1E86,0,0x1E88,0,0x1E8A,0,0x1E8C,0,0x1E8E, +0,0x1E90,0,0x1E92,0,0x1E94,0,0,0,0,0,0,0,0,0,0, +0,0x1EA0,0,0x1EA2,0,0x1EA4,0,0x1EA6,0,0x1EA8,0,0x1EAA,0,0x1EAC,0,0x1EAE, +0,0x1EB0,0,0x1EB2,0,0x1EB4,0,0x1EB6,0,0x1EB8,0,0x1EBA,0,0x1EBC,0,0x1EBE, +0,0x1EC0,0,0x1EC2,0,0x1EC4,0,0x1EC6,0,0x1EC8,0,0x1ECA,0,0x1ECC,0,0x1ECE, +0,0x1ED0,0,0x1ED2,0,0x1ED4,0,0x1ED6,0,0x1ED8,0,0x1EDA,0,0x1EDC,0,0x1EDE, +0,0x1EE0,0,0x1EE2,0,0x1EE4,0,0x1EE6,0,0x1EE8,0,0x1EEA,0,0x1EEC,0,0x1EEE, +0,0x1EF0,0,0x1EF2,0,0x1EF4,0,0x1EF6,0,0x1EF8,0,0,0,0,0,0 +}; + +static word _U_upper_1F[256] = { +0x1F08,0x1F09,0x1F0A,0x1F0B,0x1F0C,0x1F0D,0x1F0E,0x1F0F,0,0,0,0,0,0,0,0, +0x1F18,0x1F19,0x1F1A,0x1F1B,0x1F1C,0x1F1D,0,0,0,0,0,0,0,0,0,0, +0x1F28,0x1F29,0x1F2A,0x1F2B,0x1F2C,0x1F2D,0x1F2E,0x1F2F,0,0,0,0,0,0,0,0, +0x1F38,0x1F39,0x1F3A,0x1F3B,0x1F3C,0x1F3D,0x1F3E,0x1F3F,0,0,0,0,0,0,0,0, +0x1F48,0x1F49,0x1F4A,0x1F4B,0x1F4C,0x1F4D,0,0,0,0,0,0,0,0,0,0, +0,0x1F59,0,0x1F5B,0,0x1F5D,0,0x1F5F,0,0,0,0,0,0,0,0, +0x1F68,0x1F69,0x1F6A,0x1F6B,0x1F6C,0x1F6D,0x1F6E,0x1F6F,0,0,0,0,0,0,0,0, +0x1FBA,0x1FBB,0x1FC8,0x1FC9,0x1FCA,0x1FCB,0x1FDA,0x1FDB,0x1FF8,0x1FF9,0x1FEA,0x1FEB,0x1FFA,0x1FFB,0,0, +0x1F88,0x1F89,0x1F8A,0x1F8B,0x1F8C,0x1F8D,0x1F8E,0x1F8F,0,0,0,0,0,0,0,0, +0x1F98,0x1F99,0x1F9A,0x1F9B,0x1F9C,0x1F9D,0x1F9E,0x1F9F,0,0,0,0,0,0,0,0, +0x1FA8,0x1FA9,0x1FAA,0x1FAB,0x1FAC,0x1FAD,0x1FAE,0x1FAF,0,0,0,0,0,0,0,0, +0x1FB8,0x1FB9,0,0x1FBC,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0x1FCC,0,0,0,0,0,0,0,0,0,0,0,0, +0x1FD8,0x1FD9,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x1FE8,0x1FE9,0,0,0,0x1FEC,0,0,0,0,0,0,0,0,0,0, +0,0,0,0x1FFC,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static word _U_upper_21[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,0x2167,0x2168,0x2169,0x216A,0x216B,0x216C,0x216D,0x216E,0x216F, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static word _U_upper_24[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x24B6,0x24B7,0x24B8,0x24B9,0x24BA,0x24BB,0x24BC,0x24BD,0x24BE,0x24BF,0x24C0,0x24C1,0x24C2,0x24C3,0x24C4,0x24C5, +0x24C6,0x24C7,0x24C8,0x24C9,0x24CA,0x24CB,0x24CC,0x24CD,0x24CE,0x24CF,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static word _U_upper_FF[256] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xFF21,0xFF22,0xFF23,0xFF24,0xFF25,0xFF26,0xFF27,0xFF28,0xFF29,0xFF2A,0xFF2B,0xFF2C,0xFF2D,0xFF2E,0xFF2F, +0xFF30,0xFF31,0xFF32,0xFF33,0xFF34,0xFF35,0xFF36,0xFF37,0xFF38,0xFF39,0xFF3A,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +word *_U_upper[256] = { +_U_upper_00,_U_upper_01,_U_upper_02,_U_upper_03,_U_upper_04,_U_upper_05,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_upper_1E,_U_upper_1F, +NULL,_U_upper_21,NULL,NULL,_U_upper_24,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_upper_FF +}; diff --git a/charset/debug.c b/charset/debug.c new file mode 100644 index 00000000..7874856e --- /dev/null +++ b/charset/debug.c @@ -0,0 +1,41 @@ +/* + * The UniCode Library -- Debugging Support Functions + * + * (c) 1997 Martin Mares, + */ + +#include +#include + +#include "unicode.h" + +static byte * +get_static_buffer(uns size) +{ + static byte *static_debug_buffer; + static uns static_debug_size; + + if (!static_debug_buffer) + { + if (size < 1024) + size = 1024; + static_debug_buffer = xmalloc(size); + static_debug_size = size; + } + else if (static_debug_size < size) + { + size = (size+1023) & ~1023; + static_debug_buffer = xrealloc(static_debug_buffer, size); + static_debug_size = size; + } + return static_debug_buffer; +} + +byte * +static_ucs2_to_utf8(word *w) +{ + byte *buf = get_static_buffer(Ustrlen(w) * 3 + 1); + + ucs2_to_utf8(buf, w); + return buf; +} diff --git a/charset/misc/gentab b/charset/misc/gentab new file mode 100644 index 00000000..81bbb185 --- /dev/null +++ b/charset/misc/gentab @@ -0,0 +1,43 @@ +#!/usr/bin/perl +# +# Generate C Language Table for UniCode Data +# (c) 1997 Martin Mares +# + +$name=$ARGV[0]; +$type=$ARGV[1]; + +while () { + chomp; + ($i,$j) = split/\s+/; + ($i =~ /^(..)(..)$/) || die "Syntax error at $i"; + $table{$1} = "$name" . "_$1"; + $val{$i} = $j; +} + +print "/* Generated automatically by gentab. Please don't edit. */\n\n"; + +for($i=0; $i<256; $i++) { + $x = sprintf("%02X", $i); + if (defined($table{$x})) { + print "static $type $table{$x}\[256\] = \{\n"; + for($j=0; $j<256; $j++) { + $y = $x . sprintf("%02X", $j); + if ($val{$y}) { print $val{$y}; } + else { print "0"; } + if ($j != 255) { print ","; } + if ($j % 16 == 15) { print "\n"; } + } + print "\};\n\n"; + } +} + +print "$type \*$name\[256\] = \{\n"; +for($j=0; $j<256; $j++) { + $y = sprintf("%02X", $j); + if (defined $table{$y}) { print $table{$y}; } + else { print "NULL"; } + if ($j != 255) { print ","; } + if ($j % 16 == 15) { print "\n"; } +} +print "\};\n"; diff --git a/charset/misc/mksig b/charset/misc/mksig new file mode 100644 index 00000000..f718f216 --- /dev/null +++ b/charset/misc/mksig @@ -0,0 +1,40 @@ +#!/usr/bin/perl +# +# Create Word Signature Table +# (c) 1997 Martin Mares +# + +open (U, "misc/u-upper") || die "No uppercase map"; +while () { + chomp; + /^(....)\t0x(....)$/ || die "Syntax error"; + $upper{$1} = $2; +} +close U; + +open (U, "misc/u-unacc") || die "No unaccent map"; +while () { + chomp; + /^(....)\t0x(....)$/ || die "Syntax error"; + $unacc{$1} = $2; +} +close U; + +open (U, "set/sig") || die "No signature set"; +while () { + chomp; + /^(..)\t(....)\t/ || next; + $sigset{$2} = $1; +} +close U; + +open (U, "misc/u-cat") || die "No category map"; +while () { + chomp; + /^(....)\t/ || die "Syntax error"; + $from = $1; + /_C_(UPPER|LOWER)/ || next; + $to = (defined $upper{$from}) ? $upper{$from} : $from; + $to = (defined $unacc{$to}) ? $unacc{$to} : $to; + if (defined $sigset{$to}) { print "$from\t0x$sigset{$to}\n"; } +} diff --git a/charset/misc/mkunacc b/charset/misc/mkunacc new file mode 100644 index 00000000..e8f9528f --- /dev/null +++ b/charset/misc/mkunacc @@ -0,0 +1,34 @@ +#!/usr/bin/perl +# +# Create Unicode Unaccenting Table +# (c) 1997 Martin Mares +# + +open (UNI, "/tmp/unicode") || die "No Unicode Data File"; +while () { + chomp; + ($num,$name,$cat,$_,$_,$exp) = split /;/; + if ($cat =~ /^L[ul]$/) { $letter{$num} = 1; } + if ($cat =~ /^Mn$/) { $accent{$num} = 1; } +} +close UNI; + +open (UNI, "/tmp/unicode") || die "No Unicode Data File"; +while () { + chomp; + ($num,$name,$cat,$_,$_,$exp) = split /;/; + if ($exp ne "") { + $exp =~ s/^<.*> *//g; + $good = 1; + $e = ""; + foreach $a (split(/\s+/, $exp)) { + if ($accent{$a}) { } + elsif ($letter{$a}) { + if ($e ne "") { $good = 0; } + else { $e = $a; } + } else { $good = 0; } + } + if ($good && $e ne "") { print "$num\t0x$e\n"; } + } +} +close UNI; diff --git a/charset/misc/unisplit b/charset/misc/unisplit new file mode 100644 index 00000000..0fdc4b3b --- /dev/null +++ b/charset/misc/unisplit @@ -0,0 +1,30 @@ +#!/usr/bin/perl +# +# Split Unicode Data File +# (c) 1997 Martin Mares +# + +open(I, "/tmp/unicode") || die "Unable to open UniCode data file"; +open(C, ">misc/u-cat") || die "cat file open"; +open(U, ">misc/u-upper") || die "upper file open"; +open(L, ">misc/u-lower") || die "lower file open"; +while () { + chomp; + (/^$/ || /^#/) && next; + ($code,$name,$cat,$comb,$bidir,$decomp,$d0,$d1,$d2,$n0,$mirr,$cmt2,$upper,$lower,$title) = split /;/; + if ($cat =~ /^C/) { $ccat = "_C_CTRL"; } + elsif ($cat =~ /^Z/) { $ccat = "_C_BLANK"; } + elsif ($cat =~ /^Ll/) { $ccat = "_C_LOWER"; } + elsif ($cat =~ /^Lu/) { $ccat = "_C_UPPER"; } + elsif ($code ge "0030" && $code le "0039") { $ccat = "_C_DIGIT|_C_XDIGIT"; } + elsif ($code eq "005F") { $ccat = "_C_INNER"; } + else { $ccat = ""; } + if ($code ge "0041" && $code le "0046" || $code ge "0061" && $code le "0066") { $ccat = $ccat . "|_C_XDIGIT"; } + if ($ccat ne "") { print C "$code\t$ccat\n"; } + if ($upper ne "") { print U "$code\t0x$upper\n"; } + if ($lower ne "") { print L "$code\t0x$lower\n"; } +} +close I; +close C; +close U; +close L; diff --git a/charset/set/sig b/charset/set/sig new file mode 100644 index 00000000..ca2ffa8a --- /dev/null +++ b/charset/set/sig @@ -0,0 +1,98 @@ +# Charset File Used For Word Signatures +# (c) 1997 Martin Mares + +20 0020 SPACE +21 0021 EXCLAMATION MARK +22 0022 QUOTATION MARK +23 0023 NUMBER SIGN +24 0024 DOLLAR SIGN +25 0025 PERCENT SIGN +26 0026 AMPERSAND +27 0027 APOSTROPHE +28 0028 LEFT PARENTHESIS +29 0029 RIGHT PARENTHESIS +2A 002A ASTERISK +2B 002B PLUS SIGN +2C 002C COMMA +2D 002D HYPHEN-MINUS +2E 002E FULL STOP +2F 002F SOLIDUS +30 0030 DIGIT ZERO +31 0031 DIGIT ONE +32 0032 DIGIT TWO +33 0033 DIGIT THREE +34 0034 DIGIT FOUR +35 0035 DIGIT FIVE +36 0036 DIGIT SIX +37 0037 DIGIT SEVEN +38 0038 DIGIT EIGHT +39 0039 DIGIT NINE +3A 003A COLON +3B 003B SEMICOLON +3C 003C LESS-THAN SIGN +3D 003D EQUALS SIGN +3E 003E GREATER-THAN SIGN +3F 003F QUESTION MARK +40 0040 COMMERCIAL AT +41 0041 LATIN CAPITAL LETTER A +42 0042 LATIN CAPITAL LETTER B +43 0043 LATIN CAPITAL LETTER C +44 0044 LATIN CAPITAL LETTER D +45 0045 LATIN CAPITAL LETTER E +46 0046 LATIN CAPITAL LETTER F +47 0047 LATIN CAPITAL LETTER G +48 0048 LATIN CAPITAL LETTER H +49 0049 LATIN CAPITAL LETTER I +4A 004A LATIN CAPITAL LETTER J +4B 004B LATIN CAPITAL LETTER K +4C 004C LATIN CAPITAL LETTER L +4D 004D LATIN CAPITAL LETTER M +4E 004E LATIN CAPITAL LETTER N +4F 004F LATIN CAPITAL LETTER O +50 0050 LATIN CAPITAL LETTER P +51 0051 LATIN CAPITAL LETTER Q +52 0052 LATIN CAPITAL LETTER R +53 0053 LATIN CAPITAL LETTER S +54 0054 LATIN CAPITAL LETTER T +55 0055 LATIN CAPITAL LETTER U +56 0056 LATIN CAPITAL LETTER V +57 0057 LATIN CAPITAL LETTER W +58 0058 LATIN CAPITAL LETTER X +59 0059 LATIN CAPITAL LETTER Y +5A 005A LATIN CAPITAL LETTER Z +5B 005B LEFT SQUARE BRACKET +5C 005C REVERSE SOLIDUS +5D 005D RIGHT SQUARE BRACKET +5E 005E CIRCUMFLEX ACCENT +5F 005F LOW LINE +60 0060 GRAVE ACCENT +61 0061 LATIN SMALL LETTER A +62 0062 LATIN SMALL LETTER B +63 0063 LATIN SMALL LETTER C +64 0064 LATIN SMALL LETTER D +65 0065 LATIN SMALL LETTER E +66 0066 LATIN SMALL LETTER F +67 0067 LATIN SMALL LETTER G +68 0068 LATIN SMALL LETTER H +69 0069 LATIN SMALL LETTER I +6A 006A LATIN SMALL LETTER J +6B 006B LATIN SMALL LETTER K +6C 006C LATIN SMALL LETTER L +6D 006D LATIN SMALL LETTER M +6E 006E LATIN SMALL LETTER N +6F 006F LATIN SMALL LETTER O +70 0070 LATIN SMALL LETTER P +71 0071 LATIN SMALL LETTER Q +72 0072 LATIN SMALL LETTER R +73 0073 LATIN SMALL LETTER S +74 0074 LATIN SMALL LETTER T +75 0075 LATIN SMALL LETTER U +76 0076 LATIN SMALL LETTER V +77 0077 LATIN SMALL LETTER W +78 0078 LATIN SMALL LETTER X +79 0079 LATIN SMALL LETTER Y +7A 007A LATIN SMALL LETTER Z +7B 007B LEFT CURLY BRACKET +7C 007C VERTICAL LINE +7D 007D RIGHT CURLY BRACKET +7E 007E TILDE diff --git a/charset/strlen.c b/charset/strlen.c new file mode 100644 index 00000000..723b6624 --- /dev/null +++ b/charset/strlen.c @@ -0,0 +1,17 @@ +/* + * The UniCode Library -- String Length + * + * (c) 1997 Martin Mares, + */ + +#include "unicode.h" + +uns +Ustrlen(word *w) +{ + word *z = w; + + while (*z) + z++; + return z - w; +} diff --git a/charset/test.c b/charset/test.c new file mode 100644 index 00000000..a39779a9 --- /dev/null +++ b/charset/test.c @@ -0,0 +1,55 @@ +#include +#include +#include + +#include +#include + +int main(void) +{ + byte buf[256]; + byte *c; + word u[256], *w; + + while (fgets(buf, sizeof(buf), stdin)) + { + if (c = strchr(buf, '\n')) + *c = 0; + utf8_to_ucs2(u, buf); + ucs2_to_utf8(buf, u); + puts(buf); + c = buf; + for(w=u; *w; w++) + *c++ = Usig(*w); + *c = 0; + puts(buf); + for(w=u; *w; w++) + *w = Uunaccent(*w); + ucs2_to_utf8(buf, u); + puts(buf); + for(w=u; *w; w++) + *w = Utoupper(*w); + ucs2_to_utf8(buf, u); + puts(buf); + for(w=u; *w; w++) + *w = Utolower(*w); + ucs2_to_utf8(buf, u); + puts(buf); + for(w=u; *w; w++) + if (!Cprint(*w)) + putchar('?'); + else if (Cdigit(*w)) + putchar('0'); + else if (Clower(*w)) + putchar('a'); + else if (Cupper(*w)) + putchar('A'); + else if (Cblank(*w)) + putchar('_'); + else + putchar('.'); + putchar('\n'); + } + + return 0; +} diff --git a/charset/tocat.c b/charset/tocat.c new file mode 100644 index 00000000..243e2fa1 --- /dev/null +++ b/charset/tocat.c @@ -0,0 +1,9 @@ +/* + * The UniCode Library -- Category Table + * + * (c) 1997 Martin Mares, + */ + +#include "unicode.h" + +#include "U-cat.h" diff --git a/charset/tolower.c b/charset/tolower.c new file mode 100644 index 00000000..75bcc9dd --- /dev/null +++ b/charset/tolower.c @@ -0,0 +1,9 @@ +/* + * The UniCode Library -- Lowercase Table + * + * (c) 1997 Martin Mares, + */ + +#include "unicode.h" + +#include "U-lower.h" diff --git a/charset/tosig.c b/charset/tosig.c new file mode 100644 index 00000000..53f4bd22 --- /dev/null +++ b/charset/tosig.c @@ -0,0 +1,9 @@ +/* + * The UniCode Library -- Signaturing Table + * + * (c) 1997 Martin Mares, + */ + +#include "unicode.h" + +#include "U-sig.h" diff --git a/charset/toupper.c b/charset/toupper.c new file mode 100644 index 00000000..f37eb604 --- /dev/null +++ b/charset/toupper.c @@ -0,0 +1,9 @@ +/* + * The UniCode Library -- Uppercase Table + * + * (c) 1997 Martin Mares, + */ + +#include "unicode.h" + +#include "U-upper.h" diff --git a/charset/unaccent.c b/charset/unaccent.c new file mode 100644 index 00000000..9345201a --- /dev/null +++ b/charset/unaccent.c @@ -0,0 +1,9 @@ +/* + * The UniCode Library -- Unaccenting Table + * + * (c) 1997 Martin Mares, + */ + +#include "unicode.h" + +#include "U-unacc.h" diff --git a/charset/unicode.h b/charset/unicode.h new file mode 100644 index 00000000..5319e371 --- /dev/null +++ b/charset/unicode.h @@ -0,0 +1,121 @@ +/* + * The UniCode Library + * + * (c) 1997 Martin Mares, + */ + +#ifndef _UNICODE_H +#define _UNICODE_H + +#include +#include + +extern byte *_U_cat[], *_U_sig[]; +extern word *_U_upper[], *_U_lower[], *_U_unaccent[]; + +static inline uns Ucategory(word x) +{ + if (_U_cat[x >> 8U]) + return _U_cat[x >> 8U][x & 0xff]; + else + return 0; +} + +static inline word Utoupper(word x) +{ + word w = (_U_upper[x >> 8U]) ? _U_upper[x >> 8U][x & 0xff] : 0; + return w ? w : x; +} + +static inline word Utolower(word x) +{ + word w = (_U_lower[x >> 8U]) ? _U_lower[x >> 8U][x & 0xff] : 0; + return w ? w : x; +} + +static inline word Uunaccent(word x) +{ + word w = (_U_unaccent[x >> 8U]) ? _U_unaccent[x >> 8U][x & 0xff] : 0; + return w ? w : x; +} + +static inline byte Usig(word x) +{ + if (_U_sig[x >> 8U]) + return _U_sig[x >> 8U][x & 0xff] ? : 0xff; + else + return 0xff; +} + +#define UCat(x,y) (Ucategory(x) & (y)) + +#define Uupper(x) UCat(x, _C_UPPER) +#define Ulower(x) UCat(x, _C_LOWER) +#define Ualpha(x) UCat(x, _C_ALPHA) +#define Ualnum(x) UCat(x, _C_ALNUM) +#define Uprint(x) !Uctrl(x) +#define Udigit(x) UCat(x, _C_DIGIT) +#define Uxdigit(x) UCat(x, _C_XDIGIT) +#define Uword(x) UCat(x, _C_WORD) +#define Ublank(x) UCat(x, _C_BLANK) +#define Uctrl(x) UCat(x, _C_CTRL) +#define Uspace(x) Ublank(x) + +#define UNI_REPLACEMENT 0xfffc + +#define PUT_UTF8(p,u) do { \ + if (u < 0x80) \ + *p++ = u; \ + else if (u < 0x800) \ + { \ + *p++ = 0xc0 | (u >> 6); \ + *p++ = 0x80 | (u & 0x3f); \ + } \ + else \ + { \ + *p++ = 0xe0 | (u >> 12); \ + *p++ = 0x80 | ((u >> 6) & 0x3f); \ + *p++ = 0x80 | (u & 0x3f); \ + } \ + } while(0) + +#define IS_UTF8(c) ((c) >= 0xc0) + +#define GET_UTF8_CHAR(p,u) do { \ + if (*p >= 0xf0) \ + { /* Too large, use replacement char */ \ + p++; \ + while ((*p & 0xc0) == 0x80) \ + p++; \ + u = UNI_REPLACEMENT; \ + } \ + else if (*p >= 0xe0) \ + { \ + u = *p++ & 0x0f; \ + if ((*p & 0xc0) == 0x80) \ + u = (u << 6) | (*p++ & 0x3f); \ + if ((*p & 0xc0) == 0x80) \ + u = (u << 6) | (*p++ & 0x3f); \ + } \ + else \ + { \ + u = *p++ & 0x1f; \ + if ((*p & 0xc0) == 0x80) \ + u = (u << 6) | (*p++ & 0x3f); \ + } \ + } while (0) \ + +#define GET_UTF8(p,u) \ + if (IS_UTF8(*p)) \ + GET_UTF8_CHAR(p,u); \ + else \ + u = *p++ + +#define UTF8_SPACE(u) ((u) < 0x80 ? 1 : (u) < 0x800 ? 2 : 3) + +uns ucs2_to_utf8(byte *, word *); +uns utf8_to_ucs2(word *, byte *); +byte *static_ucs2_to_utf8(word *); +uns Ustrlen(word *); + +#endif diff --git a/charset/utf8.c b/charset/utf8.c new file mode 100644 index 00000000..915addee --- /dev/null +++ b/charset/utf8.c @@ -0,0 +1,41 @@ +/* + * The UniCode Library -- UTF-8 Functions + * + * (c) 1997 Martin Mares, + */ + +#include "unicode.h" + +uns +ucs2_to_utf8(byte *d, word *s) +{ + byte *d0 = d; + + while (*s) + { + uns u = *s++; + PUT_UTF8(d,u); + } + *d = 0; + return d - d0; +} + +uns +utf8_to_ucs2(word *d, byte *s) +{ + word *d0 = d; + + while (*s) + if (IS_UTF8(*s)) + { + uns u; + GET_UTF8_CHAR(s,u); + *d++ = u; + } + else if (*s >= 0x80) + *d++ = UNI_REPLACEMENT; + else + *d++ = *s++; + *d = 0; + return d0 - d; +} diff --git a/lib/config.h b/lib/config.h index e9b84fc3..3c06a470 100644 --- a/lib/config.h +++ b/lib/config.h @@ -4,9 +4,12 @@ * (c) 1997 Martin Mares, */ +#ifndef _SHERLOCK_CONFIG_H +#define _SHERLOCK_CONFIG_H + /* Version */ -#define SHER_VER "0.1" +#define SHER_VER "1.0" /* Types */ @@ -18,6 +21,10 @@ typedef unsigned int ulg; /* exactly 32 bits, unsigned */ typedef int slg; /* exactly 32 bits, signed */ typedef unsigned int uns; /* at least 32 bits */ +#ifndef NULL +#define NULL (void *)0 +#endif + /* CPU characteristics */ #define CPU_LITTLE_ENDIAN @@ -39,3 +46,5 @@ typedef unsigned int uns; /* at least 32 bits */ #define NONRET #endif + +#endif diff --git a/lib/fastbuf.c b/lib/fastbuf.c index 4c0bf6db..e5f1a873 100644 --- a/lib/fastbuf.c +++ b/lib/fastbuf.c @@ -78,7 +78,7 @@ wrbuf(struct fastbuf *f) if (l) { if (write(f->fd, f->buffer, l) != l) - die("Error writing %s: %m"); + die("Error writing %s: %m", f->name); f->bptr = f->buffer; f->fdpos += l; f->pos = f->fdpos; @@ -295,7 +295,7 @@ void bbcopy(struct fastbuf *f, struct fastbuf *t, uns l) while (l >= t->buflen) { wrbuf(t); - if (read(f->fd, t->buffer, t->buflen) != t->buflen) + if ((uns) read(f->fd, t->buffer, t->buflen) != t->buflen) die("bbcopy: %s exhausted", f->name); f->fdpos += t->buflen; t->bptr = t->bufend; diff --git a/lib/lib.h b/lib/lib.h index 59cb6621..2e1225f8 100644 --- a/lib/lib.h +++ b/lib/lib.h @@ -4,6 +4,9 @@ * (c) 1997 Martin Mares, */ +#ifndef _SHERLOCK_LIB_H +#define _SHERLOCK_LIB_H + #include /* Temporary Files */ @@ -60,6 +63,7 @@ void open_log_file(byte *); /* Allocation */ void *xmalloc(uns); +void *xrealloc(void *, uns); byte *stralloc(byte *); /* Content-Type pattern matching and filters */ @@ -107,6 +111,9 @@ struct oattr *prepend_attr(struct odes *, uns, byte *); /* oname.c */ +#define OID_MIN 0x10000 /* Values less than this have special meaning */ + +ulg new_oid(uns); void mk_obj_name(byte *, ulg, byte *); int dump_obj_to_file(byte *, ulg, struct odes *, int); @@ -145,3 +152,5 @@ regex *rx_compile(byte *r); void rx_free(regex *r); int rx_match(regex *r, byte *s); int rx_subst(regex *r, byte *by, byte *src, byte *dest, uns destlen); + +#endif diff --git a/lib/realloc.c b/lib/realloc.c new file mode 100644 index 00000000..78c6b19b --- /dev/null +++ b/lib/realloc.c @@ -0,0 +1,19 @@ +/* + * Sherlock Library -- Memory Re-allocation + * + * (c) 1997 Martin Mares, + */ + +#include +#include + +#include "lib.h" + +void * +xrealloc(void *old, uns size) +{ + void *x = realloc(old, size); + if (!x) + die("Cannot reallocate %d bytes of memory", size); + return x; +} diff --git a/lib/regex.c b/lib/regex.c index 524591ea..888f36b9 100644 --- a/lib/regex.c +++ b/lib/regex.c @@ -44,7 +44,7 @@ rx_free(regex *r) int rx_match(regex *r, byte *s) { - uns len = strlen(s); + int len = strlen(s); r->len_cache = len; if (re_match(&r->buf, s, len, 0, &r->regs) < 0) @@ -69,7 +69,7 @@ rx_subst(regex *r, byte *by, byte *src, byte *dest, uns destlen) by++; if (*by >= '0' && *by <= '9') /* \0 gets replaced by entire pattern */ { - int j = *by++ - '0'; + uns j = *by++ - '0'; if (j < r->regs.num_regs) { byte *s = src + r->regs.start[j]; diff --git a/lib/url.c b/lib/url.c index bf08e62b..9e428c0a 100644 --- a/lib/url.c +++ b/lib/url.c @@ -258,7 +258,7 @@ url_normalize(struct url *u, struct url *b) && u->rest && (k = strchr(u->rest, '#'))) *k = 0; /* Kill fragment reference */ - if (u->port == ~0) + if (u->port == ~0U) u->port = std_ports[u->protoid]; if ( u->protocol && !u->host @@ -365,7 +365,7 @@ url_pack(struct url *u, byte *d) d = append(d, "@", e); } d = append(d, u->host, e); - if (u->port != std_ports[u->protoid] && u->port != ~0) + if (u->port != std_ports[u->protoid] && u->port != ~0U) { char z[10]; sprintf(z, "%d", u->port); diff --git a/lib/wordsplit.c b/lib/wordsplit.c index eea94762..fe657fc7 100644 --- a/lib/wordsplit.c +++ b/lib/wordsplit.c @@ -12,7 +12,7 @@ int wordsplit(byte *src, byte **dst, uns max) { - int cnt = 0; + uns cnt = 0; for(;;) { -- 2.39.2