Changeset: af97418781ad for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/af97418781ad
Modified Files:
clients/Tests/exports.stable.out
gdk/gdk.h
gdk/gdk_string.c
monetdb5/modules/atoms/Tests/asciify.test
monetdb5/modules/atoms/str.c
monetdb5/modules/kernel/Tests/batstr_asciify.test
monetdb5/modules/kernel/batstr.c
Branch: ascii-flag
Log Message:
Move asciify into GDK layer.
diffs (truncated from 953 to 300 lines):
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -16,6 +16,7 @@ BAT *BATallnotequal_grp2(BAT *l, BAT *r,
BAT *BATanyequal_grp(BAT *l, BAT *r, BAT *g, BAT *e, BAT *s);
BAT *BATanyequal_grp2(BAT *l, BAT *r, BAT *rid, BAT *g, BAT *e, BAT *s);
gdk_return BATappend(BAT *b, BAT *n, BAT *s, bool force)
__attribute__((__warn_unused_result__));
+BAT *BATasciify(BAT *b, BAT *s);
void BATassertProps(BAT *b);
atomDesc BATatoms[MAXATOMS];
BAT *BATattach(int tt, const char *heapfile, role_t role);
@@ -268,6 +269,7 @@ gdk_return GDKanalyticalntile(BAT *r, BA
gdk_return GDKanalyticalprod(BAT *r, BAT *p, BAT *o, BAT *b, BAT *s, BAT *e,
int tp1, int tp2, int frame_type);
gdk_return GDKanalyticalsum(BAT *r, BAT *p, BAT *o, BAT *b, BAT *s, BAT *e,
int tp1, int tp2, int frame_type);
gdk_return GDKanalyticalwindowbounds(BAT *r, BAT *b, BAT *p, BAT *l, const
void *restrict bound, int tp1, int tp2, int unit, bool preceding, oid
first_half);
+gdk_return GDKasciify(char **restrict buf, size_t *restrict buflen, const char
*restrict s);
int GDKatomcnt;
void GDKclrerr(void);
gdk_return GDKcopyenv(BAT **key, BAT **val, bool writable);
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -2348,6 +2348,8 @@ gdk_export int GDKstrcasecmp(const char
gdk_export char *GDKstrcasestr(const char *haystack, const char *needle);
gdk_export BAT *BATtolower(BAT *b, BAT *s);
gdk_export BAT *BATtoupper(BAT *b, BAT *s);
+gdk_export gdk_return GDKasciify(char **restrict buf, size_t *restrict buflen,
const char *restrict s);
+gdk_export BAT *BATasciify(BAT *b, BAT *s);
/*
* @- BAT sample operators
diff --git a/gdk/gdk_string.c b/gdk/gdk_string.c
--- a/gdk/gdk_string.c
+++ b/gdk/gdk_string.c
@@ -5062,3 +5062,657 @@ GDKstrcasestr(const char *haystack, cons
}
return NULL;
}
+
+static const int asciify[1280] = {
+ [0xC3] = 256 - 0x80, /* 303 ... */
+ [256+0x0] = 'A', /* U+00C0: LATIN CAPITAL LETTER A WITH GRAVE */
+ [256+0x1] = 'A', /* U+00C1: LATIN CAPITAL LETTER A WITH ACUTE */
+ [256+0x2] = 'A', /* U+00C2: LATIN CAPITAL LETTER A WITH
CIRCUMFLEX */
+ [256+0x3] = 'A', /* U+00C3: LATIN CAPITAL LETTER A WITH TILDE */
+ [256+0x4] = 'A', /* U+00C4: LATIN CAPITAL LETTER A WITH
DIAERESIS */
+ [256+0x5] = 'A', /* U+00C5: LATIN CAPITAL LETTER A WITH RING
ABOVE */
+ [256+0x7] = 'C', /* U+00C7: LATIN CAPITAL LETTER C WITH CEDILLA
*/
+ [256+0x8] = 'E', /* U+00C8: LATIN CAPITAL LETTER E WITH GRAVE */
+ [256+0x9] = 'E', /* U+00C9: LATIN CAPITAL LETTER E WITH ACUTE */
+ [256+0xA] = 'E', /* U+00CA: LATIN CAPITAL LETTER E WITH
CIRCUMFLEX */
+ [256+0xB] = 'E', /* U+00CB: LATIN CAPITAL LETTER E WITH
DIAERESIS */
+ [256+0xC] = 'I', /* U+00CC: LATIN CAPITAL LETTER I WITH GRAVE */
+ [256+0xD] = 'I', /* U+00CD: LATIN CAPITAL LETTER I WITH ACUTE */
+ [256+0xE] = 'I', /* U+00CE: LATIN CAPITAL LETTER I WITH
CIRCUMFLEX */
+ [256+0xF] = 'I', /* U+00CF: LATIN CAPITAL LETTER I WITH
DIAERESIS */
+ [256+0x11] = 'N', /* U+00D1: LATIN CAPITAL LETTER N WITH TILDE */
+ [256+0x12] = 'O', /* U+00D2: LATIN CAPITAL LETTER O WITH GRAVE */
+ [256+0x13] = 'O', /* U+00D3: LATIN CAPITAL LETTER O WITH ACUTE */
+ [256+0x14] = 'O', /* U+00D4: LATIN CAPITAL LETTER O WITH
CIRCUMFLEX */
+ [256+0x15] = 'O', /* U+00D5: LATIN CAPITAL LETTER O WITH TILDE */
+ [256+0x16] = 'O', /* U+00D6: LATIN CAPITAL LETTER O WITH
DIAERESIS */
+ [256+0x19] = 'U', /* U+00D9: LATIN CAPITAL LETTER U WITH GRAVE */
+ [256+0x1A] = 'U', /* U+00DA: LATIN CAPITAL LETTER U WITH ACUTE */
+ [256+0x1B] = 'U', /* U+00DB: LATIN CAPITAL LETTER U WITH
CIRCUMFLEX */
+ [256+0x1C] = 'U', /* U+00DC: LATIN CAPITAL LETTER U WITH
DIAERESIS */
+ [256+0x1D] = 'Y', /* U+00DD: LATIN CAPITAL LETTER Y WITH ACUTE */
+ [256+0x20] = 'a', /* U+00E0: LATIN SMALL LETTER A WITH GRAVE */
+ [256+0x21] = 'a', /* U+00E1: LATIN SMALL LETTER A WITH ACUTE */
+ [256+0x22] = 'a', /* U+00E2: LATIN SMALL LETTER A WITH CIRCUMFLEX
*/
+ [256+0x23] = 'a', /* U+00E3: LATIN SMALL LETTER A WITH TILDE */
+ [256+0x24] = 'a', /* U+00E4: LATIN SMALL LETTER A WITH DIAERESIS
*/
+ [256+0x25] = 'a', /* U+00E5: LATIN SMALL LETTER A WITH RING ABOVE
*/
+ [256+0x27] = 'c', /* U+00E7: LATIN SMALL LETTER C WITH CEDILLA */
+ [256+0x28] = 'e', /* U+00E8: LATIN SMALL LETTER E WITH GRAVE */
+ [256+0x29] = 'e', /* U+00E9: LATIN SMALL LETTER E WITH ACUTE */
+ [256+0x2A] = 'e', /* U+00EA: LATIN SMALL LETTER E WITH CIRCUMFLEX
*/
+ [256+0x2B] = 'e', /* U+00EB: LATIN SMALL LETTER E WITH DIAERESIS
*/
+ [256+0x2C] = 'i', /* U+00EC: LATIN SMALL LETTER I WITH GRAVE */
+ [256+0x2D] = 'i', /* U+00ED: LATIN SMALL LETTER I WITH ACUTE */
+ [256+0x2E] = 'i', /* U+00EE: LATIN SMALL LETTER I WITH CIRCUMFLEX
*/
+ [256+0x2F] = 'i', /* U+00EF: LATIN SMALL LETTER I WITH DIAERESIS
*/
+ [256+0x31] = 'n', /* U+00F1: LATIN SMALL LETTER N WITH TILDE */
+ [256+0x32] = 'o', /* U+00F2: LATIN SMALL LETTER O WITH GRAVE */
+ [256+0x33] = 'o', /* U+00F3: LATIN SMALL LETTER O WITH ACUTE */
+ [256+0x34] = 'o', /* U+00F4: LATIN SMALL LETTER O WITH CIRCUMFLEX
*/
+ [256+0x35] = 'o', /* U+00F5: LATIN SMALL LETTER O WITH TILDE */
+ [256+0x36] = 'o', /* U+00F6: LATIN SMALL LETTER O WITH DIAERESIS
*/
+ [256+0x39] = 'u', /* U+00F9: LATIN SMALL LETTER U WITH GRAVE */
+ [256+0x3A] = 'u', /* U+00FA: LATIN SMALL LETTER U WITH ACUTE */
+ [256+0x3B] = 'u', /* U+00FB: LATIN SMALL LETTER U WITH CIRCUMFLEX
*/
+ [256+0x3C] = 'u', /* U+00FC: LATIN SMALL LETTER U WITH DIAERESIS
*/
+ [256+0x3D] = 'y', /* U+00FD: LATIN SMALL LETTER Y WITH ACUTE */
+ [256+0x3F] = 'y', /* U+00FF: LATIN SMALL LETTER Y WITH DIAERESIS
*/
+ [0xC4] = 320 - 0x80, /* 304 ... */
+ [320+0x0] = 'A', /* U+0100: LATIN CAPITAL LETTER A WITH MACRON */
+ [320+0x1] = 'a', /* U+0101: LATIN SMALL LETTER A WITH MACRON */
+ [320+0x2] = 'A', /* U+0102: LATIN CAPITAL LETTER A WITH BREVE */
+ [320+0x3] = 'a', /* U+0103: LATIN SMALL LETTER A WITH BREVE */
+ [320+0x4] = 'A', /* U+0104: LATIN CAPITAL LETTER A WITH OGONEK */
+ [320+0x5] = 'a', /* U+0105: LATIN SMALL LETTER A WITH OGONEK */
+ [320+0x6] = 'C', /* U+0106: LATIN CAPITAL LETTER C WITH ACUTE */
+ [320+0x7] = 'c', /* U+0107: LATIN SMALL LETTER C WITH ACUTE */
+ [320+0x8] = 'C', /* U+0108: LATIN CAPITAL LETTER C WITH
CIRCUMFLEX */
+ [320+0x9] = 'c', /* U+0109: LATIN SMALL LETTER C WITH CIRCUMFLEX
*/
+ [320+0xA] = 'C', /* U+010A: LATIN CAPITAL LETTER C WITH DOT
ABOVE */
+ [320+0xB] = 'c', /* U+010B: LATIN SMALL LETTER C WITH DOT ABOVE
*/
+ [320+0xC] = 'C', /* U+010C: LATIN CAPITAL LETTER C WITH CARON */
+ [320+0xD] = 'c', /* U+010D: LATIN SMALL LETTER C WITH CARON */
+ [320+0xE] = 'D', /* U+010E: LATIN CAPITAL LETTER D WITH CARON */
+ [320+0xF] = 'd', /* U+010F: LATIN SMALL LETTER D WITH CARON */
+ [320+0x12] = 'E', /* U+0112: LATIN CAPITAL LETTER E WITH MACRON */
+ [320+0x13] = 'e', /* U+0113: LATIN SMALL LETTER E WITH MACRON */
+ [320+0x14] = 'E', /* U+0114: LATIN CAPITAL LETTER E WITH BREVE */
+ [320+0x15] = 'e', /* U+0115: LATIN SMALL LETTER E WITH BREVE */
+ [320+0x16] = 'E', /* U+0116: LATIN CAPITAL LETTER E WITH DOT
ABOVE */
+ [320+0x17] = 'e', /* U+0117: LATIN SMALL LETTER E WITH DOT ABOVE
*/
+ [320+0x18] = 'E', /* U+0118: LATIN CAPITAL LETTER E WITH OGONEK */
+ [320+0x19] = 'e', /* U+0119: LATIN SMALL LETTER E WITH OGONEK */
+ [320+0x1A] = 'E', /* U+011A: LATIN CAPITAL LETTER E WITH CARON */
+ [320+0x1B] = 'e', /* U+011B: LATIN SMALL LETTER E WITH CARON */
+ [320+0x1C] = 'G', /* U+011C: LATIN CAPITAL LETTER G WITH
CIRCUMFLEX */
+ [320+0x1D] = 'g', /* U+011D: LATIN SMALL LETTER G WITH CIRCUMFLEX
*/
+ [320+0x1E] = 'G', /* U+011E: LATIN CAPITAL LETTER G WITH BREVE */
+ [320+0x1F] = 'g', /* U+011F: LATIN SMALL LETTER G WITH BREVE */
+ [320+0x20] = 'G', /* U+0120: LATIN CAPITAL LETTER G WITH DOT
ABOVE */
+ [320+0x21] = 'g', /* U+0121: LATIN SMALL LETTER G WITH DOT ABOVE
*/
+ [320+0x22] = 'G', /* U+0122: LATIN CAPITAL LETTER G WITH CEDILLA
*/
+ [320+0x23] = 'g', /* U+0123: LATIN SMALL LETTER G WITH CEDILLA */
+ [320+0x24] = 'H', /* U+0124: LATIN CAPITAL LETTER H WITH
CIRCUMFLEX */
+ [320+0x25] = 'h', /* U+0125: LATIN SMALL LETTER H WITH CIRCUMFLEX
*/
+ [320+0x28] = 'I', /* U+0128: LATIN CAPITAL LETTER I WITH TILDE */
+ [320+0x29] = 'i', /* U+0129: LATIN SMALL LETTER I WITH TILDE */
+ [320+0x2A] = 'I', /* U+012A: LATIN CAPITAL LETTER I WITH MACRON */
+ [320+0x2B] = 'i', /* U+012B: LATIN SMALL LETTER I WITH MACRON */
+ [320+0x2C] = 'I', /* U+012C: LATIN CAPITAL LETTER I WITH BREVE */
+ [320+0x2D] = 'i', /* U+012D: LATIN SMALL LETTER I WITH BREVE */
+ [320+0x2E] = 'I', /* U+012E: LATIN CAPITAL LETTER I WITH OGONEK */
+ [320+0x2F] = 'i', /* U+012F: LATIN SMALL LETTER I WITH OGONEK */
+ [320+0x30] = 'I', /* U+0130: LATIN CAPITAL LETTER I WITH DOT
ABOVE */
+ [320+0x34] = 'J', /* U+0134: LATIN CAPITAL LETTER J WITH
CIRCUMFLEX */
+ [320+0x35] = 'j', /* U+0135: LATIN SMALL LETTER J WITH CIRCUMFLEX
*/
+ [320+0x36] = 'K', /* U+0136: LATIN CAPITAL LETTER K WITH CEDILLA
*/
+ [320+0x37] = 'k', /* U+0137: LATIN SMALL LETTER K WITH CEDILLA */
+ [320+0x39] = 'L', /* U+0139: LATIN CAPITAL LETTER L WITH ACUTE */
+ [320+0x3A] = 'l', /* U+013A: LATIN SMALL LETTER L WITH ACUTE */
+ [320+0x3B] = 'L', /* U+013B: LATIN CAPITAL LETTER L WITH CEDILLA
*/
+ [320+0x3C] = 'l', /* U+013C: LATIN SMALL LETTER L WITH CEDILLA */
+ [320+0x3D] = 'L', /* U+013D: LATIN CAPITAL LETTER L WITH CARON */
+ [320+0x3E] = 'l', /* U+013E: LATIN SMALL LETTER L WITH CARON */
+ [0xC5] = 384 - 0x80, /* 305 ... */
+ [384+0x3] = 'N', /* U+0143: LATIN CAPITAL LETTER N WITH ACUTE */
+ [384+0x4] = 'n', /* U+0144: LATIN SMALL LETTER N WITH ACUTE */
+ [384+0x5] = 'N', /* U+0145: LATIN CAPITAL LETTER N WITH CEDILLA
*/
+ [384+0x6] = 'n', /* U+0146: LATIN SMALL LETTER N WITH CEDILLA */
+ [384+0x7] = 'N', /* U+0147: LATIN CAPITAL LETTER N WITH CARON */
+ [384+0x8] = 'n', /* U+0148: LATIN SMALL LETTER N WITH CARON */
+ [384+0xC] = 'O', /* U+014C: LATIN CAPITAL LETTER O WITH MACRON */
+ [384+0xD] = 'o', /* U+014D: LATIN SMALL LETTER O WITH MACRON */
+ [384+0xE] = 'O', /* U+014E: LATIN CAPITAL LETTER O WITH BREVE */
+ [384+0xF] = 'o', /* U+014F: LATIN SMALL LETTER O WITH BREVE */
+ [384+0x10] = 'O', /* U+0150: LATIN CAPITAL LETTER O WITH DOUBLE
ACUTE */
+ [384+0x11] = 'o', /* U+0151: LATIN SMALL LETTER O WITH DOUBLE
ACUTE */
+ [384+0x14] = 'R', /* U+0154: LATIN CAPITAL LETTER R WITH ACUTE */
+ [384+0x15] = 'r', /* U+0155: LATIN SMALL LETTER R WITH ACUTE */
+ [384+0x16] = 'R', /* U+0156: LATIN CAPITAL LETTER R WITH CEDILLA
*/
+ [384+0x17] = 'r', /* U+0157: LATIN SMALL LETTER R WITH CEDILLA */
+ [384+0x18] = 'R', /* U+0158: LATIN CAPITAL LETTER R WITH CARON */
+ [384+0x19] = 'r', /* U+0159: LATIN SMALL LETTER R WITH CARON */
+ [384+0x1A] = 'S', /* U+015A: LATIN CAPITAL LETTER S WITH ACUTE */
+ [384+0x1B] = 's', /* U+015B: LATIN SMALL LETTER S WITH ACUTE */
+ [384+0x1C] = 'S', /* U+015C: LATIN CAPITAL LETTER S WITH
CIRCUMFLEX */
+ [384+0x1D] = 's', /* U+015D: LATIN SMALL LETTER S WITH CIRCUMFLEX
*/
+ [384+0x1E] = 'S', /* U+015E: LATIN CAPITAL LETTER S WITH CEDILLA
*/
+ [384+0x1F] = 's', /* U+015F: LATIN SMALL LETTER S WITH CEDILLA */
+ [384+0x20] = 'S', /* U+0160: LATIN CAPITAL LETTER S WITH CARON */
+ [384+0x21] = 's', /* U+0161: LATIN SMALL LETTER S WITH CARON */
+ [384+0x22] = 'T', /* U+0162: LATIN CAPITAL LETTER T WITH CEDILLA
*/
+ [384+0x23] = 't', /* U+0163: LATIN SMALL LETTER T WITH CEDILLA */
+ [384+0x24] = 'T', /* U+0164: LATIN CAPITAL LETTER T WITH CARON */
+ [384+0x25] = 't', /* U+0165: LATIN SMALL LETTER T WITH CARON */
+ [384+0x28] = 'U', /* U+0168: LATIN CAPITAL LETTER U WITH TILDE */
+ [384+0x29] = 'u', /* U+0169: LATIN SMALL LETTER U WITH TILDE */
+ [384+0x2A] = 'U', /* U+016A: LATIN CAPITAL LETTER U WITH MACRON */
+ [384+0x2B] = 'u', /* U+016B: LATIN SMALL LETTER U WITH MACRON */
+ [384+0x2C] = 'U', /* U+016C: LATIN CAPITAL LETTER U WITH BREVE */
+ [384+0x2D] = 'u', /* U+016D: LATIN SMALL LETTER U WITH BREVE */
+ [384+0x2E] = 'U', /* U+016E: LATIN CAPITAL LETTER U WITH RING
ABOVE */
+ [384+0x2F] = 'u', /* U+016F: LATIN SMALL LETTER U WITH RING ABOVE
*/
+ [384+0x30] = 'U', /* U+0170: LATIN CAPITAL LETTER U WITH DOUBLE
ACUTE */
+ [384+0x31] = 'u', /* U+0171: LATIN SMALL LETTER U WITH DOUBLE
ACUTE */
+ [384+0x32] = 'U', /* U+0172: LATIN CAPITAL LETTER U WITH OGONEK */
+ [384+0x33] = 'u', /* U+0173: LATIN SMALL LETTER U WITH OGONEK */
+ [384+0x34] = 'W', /* U+0174: LATIN CAPITAL LETTER W WITH
CIRCUMFLEX */
+ [384+0x35] = 'w', /* U+0175: LATIN SMALL LETTER W WITH CIRCUMFLEX
*/
+ [384+0x36] = 'Y', /* U+0176: LATIN CAPITAL LETTER Y WITH
CIRCUMFLEX */
+ [384+0x37] = 'y', /* U+0177: LATIN SMALL LETTER Y WITH CIRCUMFLEX
*/
+ [384+0x38] = 'Y', /* U+0178: LATIN CAPITAL LETTER Y WITH
DIAERESIS */
+ [384+0x39] = 'Z', /* U+0179: LATIN CAPITAL LETTER Z WITH ACUTE */
+ [384+0x3A] = 'z', /* U+017A: LATIN SMALL LETTER Z WITH ACUTE */
+ [384+0x3B] = 'Z', /* U+017B: LATIN CAPITAL LETTER Z WITH DOT
ABOVE */
+ [384+0x3C] = 'z', /* U+017C: LATIN SMALL LETTER Z WITH DOT ABOVE
*/
+ [384+0x3D] = 'Z', /* U+017D: LATIN CAPITAL LETTER Z WITH CARON */
+ [384+0x3E] = 'z', /* U+017E: LATIN SMALL LETTER Z WITH CARON */
+ [0xC6] = 448 - 0x80, /* 306 ... */
+ [448+0x20] = 'O', /* U+01A0: LATIN CAPITAL LETTER O WITH HORN */
+ [448+0x21] = 'o', /* U+01A1: LATIN SMALL LETTER O WITH HORN */
+ [448+0x2F] = 'U', /* U+01AF: LATIN CAPITAL LETTER U WITH HORN */
+ [448+0x30] = 'u', /* U+01B0: LATIN SMALL LETTER U WITH HORN */
+ [0xC7] = 512 - 0x80, /* 307 ... */
+ [512+0xD] = 'A', /* U+01CD: LATIN CAPITAL LETTER A WITH CARON */
+ [512+0xE] = 'a', /* U+01CE: LATIN SMALL LETTER A WITH CARON */
+ [512+0xF] = 'I', /* U+01CF: LATIN CAPITAL LETTER I WITH CARON */
+ [512+0x10] = 'i', /* U+01D0: LATIN SMALL LETTER I WITH CARON */
+ [512+0x11] = 'O', /* U+01D1: LATIN CAPITAL LETTER O WITH CARON */
+ [512+0x12] = 'o', /* U+01D2: LATIN SMALL LETTER O WITH CARON */
+ [512+0x13] = 'U', /* U+01D3: LATIN CAPITAL LETTER U WITH CARON */
+ [512+0x14] = 'u', /* U+01D4: LATIN SMALL LETTER U WITH CARON */
+ [512+0x15] = 'U', /* U+01D5: LATIN CAPITAL LETTER U WITH
DIAERESIS AND MACRON */
+ [512+0x16] = 'u', /* U+01D6: LATIN SMALL LETTER U WITH DIAERESIS
AND MACRON */
+ [512+0x17] = 'U', /* U+01D7: LATIN CAPITAL LETTER U WITH
DIAERESIS AND ACUTE */
+ [512+0x18] = 'u', /* U+01D8: LATIN SMALL LETTER U WITH DIAERESIS
AND ACUTE */
+ [512+0x19] = 'U', /* U+01D9: LATIN CAPITAL LETTER U WITH
DIAERESIS AND CARON */
+ [512+0x1A] = 'u', /* U+01DA: LATIN SMALL LETTER U WITH DIAERESIS
AND CARON */
+ [512+0x1B] = 'U', /* U+01DB: LATIN CAPITAL LETTER U WITH
DIAERESIS AND GRAVE */
+ [512+0x1C] = 'u', /* U+01DC: LATIN SMALL LETTER U WITH DIAERESIS
AND GRAVE */
+ [512+0x1E] = 'A', /* U+01DE: LATIN CAPITAL LETTER A WITH
DIAERESIS AND MACRON */
+ [512+0x1F] = 'a', /* U+01DF: LATIN SMALL LETTER A WITH DIAERESIS
AND MACRON */
+ [512+0x20] = 'A', /* U+01E0: LATIN CAPITAL LETTER A WITH DOT
ABOVE AND MACRON */
+ [512+0x21] = 'a', /* U+01E1: LATIN SMALL LETTER A WITH DOT ABOVE
AND MACRON */
+ [512+0x26] = 'G', /* U+01E6: LATIN CAPITAL LETTER G WITH CARON */
+ [512+0x27] = 'g', /* U+01E7: LATIN SMALL LETTER G WITH CARON */
+ [512+0x28] = 'K', /* U+01E8: LATIN CAPITAL LETTER K WITH CARON */
+ [512+0x29] = 'k', /* U+01E9: LATIN SMALL LETTER K WITH CARON */
+ [512+0x2A] = 'O', /* U+01EA: LATIN CAPITAL LETTER O WITH OGONEK */
+ [512+0x2B] = 'o', /* U+01EB: LATIN SMALL LETTER O WITH OGONEK */
+ [512+0x2C] = 'O', /* U+01EC: LATIN CAPITAL LETTER O WITH OGONEK
AND MACRON */
+ [512+0x2D] = 'o', /* U+01ED: LATIN SMALL LETTER O WITH OGONEK AND
MACRON */
+ [512+0x30] = 'j', /* U+01F0: LATIN SMALL LETTER J WITH CARON */
+ [512+0x34] = 'G', /* U+01F4: LATIN CAPITAL LETTER G WITH ACUTE */
+ [512+0x35] = 'g', /* U+01F5: LATIN SMALL LETTER G WITH ACUTE */
+ [512+0x38] = 'N', /* U+01F8: LATIN CAPITAL LETTER N WITH GRAVE */
+ [512+0x39] = 'n', /* U+01F9: LATIN SMALL LETTER N WITH GRAVE */
+ [512+0x3A] = 'A', /* U+01FA: LATIN CAPITAL LETTER A WITH RING
ABOVE AND ACUTE */
+ [512+0x3B] = 'a', /* U+01FB: LATIN SMALL LETTER A WITH RING ABOVE
AND ACUTE */
+ [0xC8] = 576 - 0x80, /* 310 ... */
+ [576+0x0] = 'A', /* U+0200: LATIN CAPITAL LETTER A WITH DOUBLE
GRAVE */
+ [576+0x1] = 'a', /* U+0201: LATIN SMALL LETTER A WITH DOUBLE
GRAVE */
+ [576+0x2] = 'A', /* U+0202: LATIN CAPITAL LETTER A WITH INVERTED
BREVE */
+ [576+0x3] = 'a', /* U+0203: LATIN SMALL LETTER A WITH INVERTED
BREVE */
+ [576+0x4] = 'E', /* U+0204: LATIN CAPITAL LETTER E WITH DOUBLE
GRAVE */
+ [576+0x5] = 'e', /* U+0205: LATIN SMALL LETTER E WITH DOUBLE
GRAVE */
+ [576+0x6] = 'E', /* U+0206: LATIN CAPITAL LETTER E WITH INVERTED
BREVE */
+ [576+0x7] = 'e', /* U+0207: LATIN SMALL LETTER E WITH INVERTED
BREVE */
+ [576+0x8] = 'I', /* U+0208: LATIN CAPITAL LETTER I WITH DOUBLE
GRAVE */
+ [576+0x9] = 'i', /* U+0209: LATIN SMALL LETTER I WITH DOUBLE
GRAVE */
+ [576+0xA] = 'I', /* U+020A: LATIN CAPITAL LETTER I WITH INVERTED
BREVE */
+ [576+0xB] = 'i', /* U+020B: LATIN SMALL LETTER I WITH INVERTED
BREVE */
+ [576+0xC] = 'O', /* U+020C: LATIN CAPITAL LETTER O WITH DOUBLE
GRAVE */
+ [576+0xD] = 'o', /* U+020D: LATIN SMALL LETTER O WITH DOUBLE
GRAVE */
+ [576+0xE] = 'O', /* U+020E: LATIN CAPITAL LETTER O WITH INVERTED
BREVE */
+ [576+0xF] = 'o', /* U+020F: LATIN SMALL LETTER O WITH INVERTED
BREVE */
+ [576+0x10] = 'R', /* U+0210: LATIN CAPITAL LETTER R WITH DOUBLE
GRAVE */
+ [576+0x11] = 'r', /* U+0211: LATIN SMALL LETTER R WITH DOUBLE
GRAVE */
+ [576+0x12] = 'R', /* U+0212: LATIN CAPITAL LETTER R WITH INVERTED
BREVE */
+ [576+0x13] = 'r', /* U+0213: LATIN SMALL LETTER R WITH INVERTED
BREVE */
+ [576+0x14] = 'U', /* U+0214: LATIN CAPITAL LETTER U WITH DOUBLE
GRAVE */
+ [576+0x15] = 'u', /* U+0215: LATIN SMALL LETTER U WITH DOUBLE
GRAVE */
+ [576+0x16] = 'U', /* U+0216: LATIN CAPITAL LETTER U WITH INVERTED
BREVE */
+ [576+0x17] = 'u', /* U+0217: LATIN SMALL LETTER U WITH INVERTED
BREVE */
+ [576+0x18] = 'S', /* U+0218: LATIN CAPITAL LETTER S WITH COMMA
BELOW */
+ [576+0x19] = 's', /* U+0219: LATIN SMALL LETTER S WITH COMMA
BELOW */
+ [576+0x1A] = 'T', /* U+021A: LATIN CAPITAL LETTER T WITH COMMA
BELOW */
+ [576+0x1B] = 't', /* U+021B: LATIN SMALL LETTER T WITH COMMA
BELOW */
+ [576+0x1E] = 'H', /* U+021E: LATIN CAPITAL LETTER H WITH CARON */
+ [576+0x1F] = 'h', /* U+021F: LATIN SMALL LETTER H WITH CARON */
+ [576+0x26] = 'A', /* U+0226: LATIN CAPITAL LETTER A WITH DOT
ABOVE */
+ [576+0x27] = 'a', /* U+0227: LATIN SMALL LETTER A WITH DOT ABOVE
*/
+ [576+0x28] = 'E', /* U+0228: LATIN CAPITAL LETTER E WITH CEDILLA
*/
+ [576+0x29] = 'e', /* U+0229: LATIN SMALL LETTER E WITH CEDILLA */
+ [576+0x2A] = 'O', /* U+022A: LATIN CAPITAL LETTER O WITH
DIAERESIS AND MACRON */
+ [576+0x2B] = 'o', /* U+022B: LATIN SMALL LETTER O WITH DIAERESIS
AND MACRON */
+ [576+0x2C] = 'O', /* U+022C: LATIN CAPITAL LETTER O WITH TILDE
AND MACRON */
+ [576+0x2D] = 'o', /* U+022D: LATIN SMALL LETTER O WITH TILDE AND
MACRON */
+ [576+0x2E] = 'O', /* U+022E: LATIN CAPITAL LETTER O WITH DOT
ABOVE */
+ [576+0x2F] = 'o', /* U+022F: LATIN SMALL LETTER O WITH DOT ABOVE
*/
+ [576+0x30] = 'O', /* U+0230: LATIN CAPITAL LETTER O WITH DOT
ABOVE AND MACRON */
+ [576+0x31] = 'o', /* U+0231: LATIN SMALL LETTER O WITH DOT ABOVE
AND MACRON */
+ [576+0x32] = 'Y', /* U+0232: LATIN CAPITAL LETTER Y WITH MACRON */
+ [576+0x33] = 'y', /* U+0233: LATIN SMALL LETTER Y WITH MACRON */
+ [0xCD] = 640 - 0x80, /* 315 ... */
+ [640+0x3E] = ';', /* U+037E: GREEK QUESTION MARK */
+ [0xE1] = 704 - 0x80, /* 341 ... */
+ [704+0x38] = 768 - 0x80, /* 341 270 ... */
+ [768+0x0] = 'A', /* U+1E00: LATIN CAPITAL LETTER A WITH RING
BELOW */
+ [768+0x1] = 'a', /* U+1E01: LATIN SMALL LETTER A WITH RING BELOW
*/
+ [768+0x2] = 'B', /* U+1E02: LATIN CAPITAL LETTER B WITH DOT
ABOVE */
+ [768+0x3] = 'b', /* U+1E03: LATIN SMALL LETTER B WITH DOT ABOVE
*/
+ [768+0x4] = 'B', /* U+1E04: LATIN CAPITAL LETTER B WITH DOT
BELOW */
+ [768+0x5] = 'b', /* U+1E05: LATIN SMALL LETTER B WITH DOT BELOW
*/
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]