First working version of a FATFileSystem compatible Chan FAT v0.8 implementation. This is intended to use with long file names and RTOS support. For now long file names work but RTOS support is still untested.

Dependents:   USB_MSC USB_CDC_MSD_Hello TFTPServerTest DMXStation ... more

Committer:
NeoBelerophon
Date:
Fri Feb 04 21:14:33 2011 +0000
Revision:
2:629e4be333f3
Parent:
0:8ea634413549
getdir() did not work -> remove

Who changed what in which revision?

UserRevisionLine numberNew contents of line
NeoBelerophon 0:8ea634413549 1 /*------------------------------------------------------------------------*/
NeoBelerophon 0:8ea634413549 2 /* Unicode - Local code bidirectional converter (C)ChaN, 2009 */
NeoBelerophon 0:8ea634413549 3 /* (SBCS code pages) */
NeoBelerophon 0:8ea634413549 4 /*------------------------------------------------------------------------*/
NeoBelerophon 0:8ea634413549 5 /* 437 U.S. (OEM)
NeoBelerophon 0:8ea634413549 6 / 720 Arabic (OEM)
NeoBelerophon 0:8ea634413549 7 / 1256 Arabic (Windows)
NeoBelerophon 0:8ea634413549 8 / 737 Greek (OEM)
NeoBelerophon 0:8ea634413549 9 / 1253 Greek (Windows)
NeoBelerophon 0:8ea634413549 10 / 1250 Central Europe (Windows)
NeoBelerophon 0:8ea634413549 11 / 775 Baltic (OEM)
NeoBelerophon 0:8ea634413549 12 / 1257 Baltic (Windows)
NeoBelerophon 0:8ea634413549 13 / 850 Multilingual Latin 1 (OEM)
NeoBelerophon 0:8ea634413549 14 / 852 Latin 2 (OEM)
NeoBelerophon 0:8ea634413549 15 / 1252 Latin 1 (Windows)
NeoBelerophon 0:8ea634413549 16 / 855 Cyrillic (OEM)
NeoBelerophon 0:8ea634413549 17 / 1251 Cyrillic (Windows)
NeoBelerophon 0:8ea634413549 18 / 866 Russian (OEM)
NeoBelerophon 0:8ea634413549 19 / 857 Turkish (OEM)
NeoBelerophon 0:8ea634413549 20 / 1254 Turkish (Windows)
NeoBelerophon 0:8ea634413549 21 / 858 Multilingual Latin 1 + Euro (OEM)
NeoBelerophon 0:8ea634413549 22 / 862 Hebrew (OEM)
NeoBelerophon 0:8ea634413549 23 / 1255 Hebrew (Windows)
NeoBelerophon 0:8ea634413549 24 / 874 Thai (OEM, Windows)
NeoBelerophon 0:8ea634413549 25 / 1258 Vietnam (OEM, Windows)
NeoBelerophon 0:8ea634413549 26 */
NeoBelerophon 0:8ea634413549 27
NeoBelerophon 0:8ea634413549 28 #include "../ff.h"
NeoBelerophon 0:8ea634413549 29
NeoBelerophon 0:8ea634413549 30
NeoBelerophon 0:8ea634413549 31 #if _CODE_PAGE == 437
NeoBelerophon 0:8ea634413549 32 #define _TBLDEF 1
NeoBelerophon 0:8ea634413549 33 static
NeoBelerophon 0:8ea634413549 34 const WCHAR Tbl[] = { /* CP437(0x80-0xFF) to Unicode conversion table */
NeoBelerophon 0:8ea634413549 35 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7,
NeoBelerophon 0:8ea634413549 36 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5,
NeoBelerophon 0:8ea634413549 37 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9,
NeoBelerophon 0:8ea634413549 38 0x00FF, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192,
NeoBelerophon 0:8ea634413549 39 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA,
NeoBelerophon 0:8ea634413549 40 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,
NeoBelerophon 0:8ea634413549 41 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
NeoBelerophon 0:8ea634413549 42 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,
NeoBelerophon 0:8ea634413549 43 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,
NeoBelerophon 0:8ea634413549 44 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,
NeoBelerophon 0:8ea634413549 45 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,
NeoBelerophon 0:8ea634413549 46 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,
NeoBelerophon 0:8ea634413549 47 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4,
NeoBelerophon 0:8ea634413549 48 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229,
NeoBelerophon 0:8ea634413549 49 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248,
NeoBelerophon 0:8ea634413549 50 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0
NeoBelerophon 0:8ea634413549 51 };
NeoBelerophon 0:8ea634413549 52
NeoBelerophon 0:8ea634413549 53 #elif _CODE_PAGE == 720
NeoBelerophon 0:8ea634413549 54 #define _TBLDEF 1
NeoBelerophon 0:8ea634413549 55 static
NeoBelerophon 0:8ea634413549 56 const WCHAR Tbl[] = { /* CP720(0x80-0xFF) to Unicode conversion table */
NeoBelerophon 0:8ea634413549 57 0x0000, 0x0000, 0x00E9, 0x00E2, 0x0000, 0x00E0, 0x0000, 0x00E7,
NeoBelerophon 0:8ea634413549 58 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0000, 0x0000, 0x0000,
NeoBelerophon 0:8ea634413549 59 0x0000, 0x0651, 0x0652, 0x00F4, 0x00A4, 0x0640, 0x00FB, 0x00F9,
NeoBelerophon 0:8ea634413549 60 0x0621, 0x0622, 0x0623, 0x0624, 0x00A3, 0x0625, 0x0626, 0x0627,
NeoBelerophon 0:8ea634413549 61 0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F,
NeoBelerophon 0:8ea634413549 62 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x00AB, 0x00BB,
NeoBelerophon 0:8ea634413549 63 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
NeoBelerophon 0:8ea634413549 64 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,
NeoBelerophon 0:8ea634413549 65 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,
NeoBelerophon 0:8ea634413549 66 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,
NeoBelerophon 0:8ea634413549 67 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,
NeoBelerophon 0:8ea634413549 68 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,
NeoBelerophon 0:8ea634413549 69 0x0636, 0x0637, 0x0638, 0x0639, 0x063A, 0x0641, 0x00B5, 0x0642,
NeoBelerophon 0:8ea634413549 70 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, 0x064A,
NeoBelerophon 0:8ea634413549 71 0x2261, 0x064B, 0x064C, 0x064D, 0x064E, 0x064F, 0xO650, 0x2248,
NeoBelerophon 0:8ea634413549 72 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0
NeoBelerophon 0:8ea634413549 73 };
NeoBelerophon 0:8ea634413549 74
NeoBelerophon 0:8ea634413549 75 #elif _CODE_PAGE == 737
NeoBelerophon 0:8ea634413549 76 #define _TBLDEF 1
NeoBelerophon 0:8ea634413549 77 static
NeoBelerophon 0:8ea634413549 78 const WCHAR Tbl[] = { /* CP737(0x80-0xFF) to Unicode conversion table */
NeoBelerophon 0:8ea634413549 79 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398,
NeoBelerophon 0:8ea634413549 80 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, 0x03A0,
NeoBelerophon 0:8ea634413549 81 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9,
NeoBelerophon 0:8ea634413549 82 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, 0x03B8,
NeoBelerophon 0:8ea634413549 83 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, 0x03C0,
NeoBelerophon 0:8ea634413549 84 0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8,
NeoBelerophon 0:8ea634413549 85 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
NeoBelerophon 0:8ea634413549 86 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,
NeoBelerophon 0:8ea634413549 87 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,
NeoBelerophon 0:8ea634413549 88 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,
NeoBelerophon 0:8ea634413549 89 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,
NeoBelerophon 0:8ea634413549 90 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,
NeoBelerophon 0:8ea634413549 91 0x03C9, 0x03AC, 0x03AD, 0x03AE, 0x03CA, 0x03AF, 0x03CC, 0x03CD,
NeoBelerophon 0:8ea634413549 92 0x03CB, 0x03CE, 0x0386, 0x0388, 0x0389, 0x038A, 0x038C, 0x038E,
NeoBelerophon 0:8ea634413549 93 0x038F, 0x00B1, 0x2265, 0x2264, 0x03AA, 0x03AB, 0x00F7, 0x2248,
NeoBelerophon 0:8ea634413549 94 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0
NeoBelerophon 0:8ea634413549 95 };
NeoBelerophon 0:8ea634413549 96
NeoBelerophon 0:8ea634413549 97 #elif _CODE_PAGE == 775
NeoBelerophon 0:8ea634413549 98 #define _TBLDEF 1
NeoBelerophon 0:8ea634413549 99 static
NeoBelerophon 0:8ea634413549 100 const WCHAR Tbl[] = { /* CP775(0x80-0xFF) to Unicode conversion table */
NeoBelerophon 0:8ea634413549 101 0x0106, 0x00FC, 0x00E9, 0x0101, 0x00E4, 0x0123, 0x00E5, 0x0107,
NeoBelerophon 0:8ea634413549 102 0x0142, 0x0113, 0x0156, 0x0157, 0x012B, 0x0179, 0x00C4, 0x00C5,
NeoBelerophon 0:8ea634413549 103 0x00C9, 0x00E6, 0x00C6, 0x014D, 0x00F6, 0x0122, 0x00A2, 0x015A,
NeoBelerophon 0:8ea634413549 104 0x015B, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x00A4,
NeoBelerophon 0:8ea634413549 105 0x0100, 0x012A, 0x00F3, 0x017B, 0x017C, 0x017A, 0x201D, 0x00A6,
NeoBelerophon 0:8ea634413549 106 0x00A9, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x0141, 0x00AB, 0x00BB,
NeoBelerophon 0:8ea634413549 107 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0104, 0x010C, 0x0118,
NeoBelerophon 0:8ea634413549 108 0x0116, 0x2563, 0x2551, 0x2557, 0x255D, 0x012E, 0x0160, 0x2510,
NeoBelerophon 0:8ea634413549 109 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0172, 0x016A,
NeoBelerophon 0:8ea634413549 110 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x017D,
NeoBelerophon 0:8ea634413549 111 0x0105, 0x010D, 0x0119, 0x0117, 0x012F, 0x0161, 0x0173, 0x016B,
NeoBelerophon 0:8ea634413549 112 0x017E, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,
NeoBelerophon 0:8ea634413549 113 0x00D3, 0x00DF, 0x014C, 0x0143, 0x00F5, 0x00D5, 0x00B5, 0x0144,
NeoBelerophon 0:8ea634413549 114 0x0136, 0x0137, 0x013B, 0x013C, 0x0146, 0x0112, 0x0145, 0x2019,
NeoBelerophon 0:8ea634413549 115 0x00AD, 0x00B1, 0x201C, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x201E,
NeoBelerophon 0:8ea634413549 116 0x00B0, 0x2219, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0
NeoBelerophon 0:8ea634413549 117 };
NeoBelerophon 0:8ea634413549 118
NeoBelerophon 0:8ea634413549 119 #elif _CODE_PAGE == 850
NeoBelerophon 0:8ea634413549 120 #define _TBLDEF 1
NeoBelerophon 0:8ea634413549 121 static
NeoBelerophon 0:8ea634413549 122 const WCHAR Tbl[] = { /* CP850(0x80-0xFF) to Unicode conversion table */
NeoBelerophon 0:8ea634413549 123 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7,
NeoBelerophon 0:8ea634413549 124 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5,
NeoBelerophon 0:8ea634413549 125 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9,
NeoBelerophon 0:8ea634413549 126 0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x0192,
NeoBelerophon 0:8ea634413549 127 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA,
NeoBelerophon 0:8ea634413549 128 0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,
NeoBelerophon 0:8ea634413549 129 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0,
NeoBelerophon 0:8ea634413549 130 0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510,
NeoBelerophon 0:8ea634413549 131 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3,
NeoBelerophon 0:8ea634413549 132 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,
NeoBelerophon 0:8ea634413549 133 0x00F0, 0x00D0, 0x00CA, 0x00CB, 0x00C8, 0x0131, 0x00CD, 0x00CE,
NeoBelerophon 0:8ea634413549 134 0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580,
NeoBelerophon 0:8ea634413549 135 0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x00FE,
NeoBelerophon 0:8ea634413549 136 0x00DE, 0x00DA, 0x00DB, 0x00D9, 0x00FD, 0x00DD, 0x00AF, 0x00B4,
NeoBelerophon 0:8ea634413549 137 0x00AD, 0x00B1, 0x2017, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8,
NeoBelerophon 0:8ea634413549 138 0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0
NeoBelerophon 0:8ea634413549 139 };
NeoBelerophon 0:8ea634413549 140
NeoBelerophon 0:8ea634413549 141 #elif _CODE_PAGE == 852
NeoBelerophon 0:8ea634413549 142 #define _TBLDEF 1
NeoBelerophon 0:8ea634413549 143 static
NeoBelerophon 0:8ea634413549 144 const WCHAR Tbl[] = { /* CP852(0x80-0xFF) to Unicode conversion table */
NeoBelerophon 0:8ea634413549 145 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x016F, 0x0107, 0x00E7,
NeoBelerophon 0:8ea634413549 146 0x0142, 0x00EB, 0x0150, 0x0151, 0x00EE, 0x0179, 0x00C4, 0x0106,
NeoBelerophon 0:8ea634413549 147 0x00C9, 0x0139, 0x013A, 0x00F4, 0x00F6, 0x013D, 0x013E, 0x015A,
NeoBelerophon 0:8ea634413549 148 0x015B, 0x00D6, 0x00DC, 0x0164, 0x0165, 0x0141, 0x00D7, 0x010D,
NeoBelerophon 0:8ea634413549 149 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x0104, 0x0105, 0x017D, 0x017E,
NeoBelerophon 0:8ea634413549 150 0x0118, 0x0119, 0x00AC, 0x017A, 0x010C, 0x015F, 0x00AB, 0x00BB,
NeoBelerophon 0:8ea634413549 151 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x011A,
NeoBelerophon 0:8ea634413549 152 0x015E, 0x2563, 0x2551, 0x2557, 0x255D, 0x017B, 0x017C, 0x2510,
NeoBelerophon 0:8ea634413549 153 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0102, 0x0103,
NeoBelerophon 0:8ea634413549 154 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,
NeoBelerophon 0:8ea634413549 155 0x0111, 0x0110, 0x010E, 0x00CB, 0x010F, 0x0147, 0x00CD, 0x00CE,
NeoBelerophon 0:8ea634413549 156 0x011B, 0x2518, 0x250C, 0x2588, 0x2584, 0x0162, 0x016E, 0x2580,
NeoBelerophon 0:8ea634413549 157 0x00D3, 0x00DF, 0x00D4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161,
NeoBelerophon 0:8ea634413549 158 0x0154, 0x00DA, 0x0155, 0x0170, 0x00FD, 0x00DD, 0x0163, 0x00B4,
NeoBelerophon 0:8ea634413549 159 0x00AD, 0x02DD, 0x02DB, 0x02C7, 0x02D8, 0x00A7, 0x00F7, 0x00B8,
NeoBelerophon 0:8ea634413549 160 0x00B0, 0x00A8, 0x02D9, 0x0171, 0x0158, 0x0159, 0x25A0, 0x00A0
NeoBelerophon 0:8ea634413549 161 };
NeoBelerophon 0:8ea634413549 162
NeoBelerophon 0:8ea634413549 163 #elif _CODE_PAGE == 855
NeoBelerophon 0:8ea634413549 164 #define _TBLDEF 1
NeoBelerophon 0:8ea634413549 165 static
NeoBelerophon 0:8ea634413549 166 const WCHAR Tbl[] = { /* CP855(0x80-0xFF) to Unicode conversion table */
NeoBelerophon 0:8ea634413549 167 0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404,
NeoBelerophon 0:8ea634413549 168 0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408,
NeoBelerophon 0:8ea634413549 169 0x0459, 0x0409, 0x045A, 0x040A, 0x045B, 0x040B, 0x045C, 0x040C,
NeoBelerophon 0:8ea634413549 170 0x045E, 0x040E, 0x045F, 0x040F, 0x044E, 0x042E, 0x044A, 0x042A,
NeoBelerophon 0:8ea634413549 171 0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414,
NeoBelerophon 0:8ea634413549 172 0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00AB, 0x00BB,
NeoBelerophon 0:8ea634413549 173 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438,
NeoBelerophon 0:8ea634413549 174 0x0418, 0x2563, 0x2551, 0x2557, 0x255D, 0x0439, 0x0419, 0x2510,
NeoBelerophon 0:8ea634413549 175 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x043A, 0x041A,
NeoBelerophon 0:8ea634413549 176 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,
NeoBelerophon 0:8ea634413549 177 0x043B, 0x041B, 0x043C, 0x041C, 0x043D, 0x041D, 0x043E, 0x041E,
NeoBelerophon 0:8ea634413549 178 0x043F, 0x2518, 0x250C, 0x2588, 0x2584, 0x041F, 0x044F, 0x2580,
NeoBelerophon 0:8ea634413549 179 0x042F, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443,
NeoBelerophon 0:8ea634413549 180 0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044C, 0x042C, 0x2116,
NeoBelerophon 0:8ea634413549 181 0x00AD, 0x044B, 0x042B, 0x0437, 0x0417, 0x0448, 0x0428, 0x044D,
NeoBelerophon 0:8ea634413549 182 0x042D, 0x0449, 0x0429, 0x0447, 0x0427, 0x00A7, 0x25A0, 0x00A0
NeoBelerophon 0:8ea634413549 183 };
NeoBelerophon 0:8ea634413549 184
NeoBelerophon 0:8ea634413549 185 #elif _CODE_PAGE == 857
NeoBelerophon 0:8ea634413549 186 #define _TBLDEF 1
NeoBelerophon 0:8ea634413549 187 static
NeoBelerophon 0:8ea634413549 188 const WCHAR Tbl[] = { /* CP857(0x80-0xFF) to Unicode conversion table */
NeoBelerophon 0:8ea634413549 189 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7,
NeoBelerophon 0:8ea634413549 190 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0131, 0x00C4, 0x00C5,
NeoBelerophon 0:8ea634413549 191 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9,
NeoBelerophon 0:8ea634413549 192 0x0130, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x015E, 0x015F,
NeoBelerophon 0:8ea634413549 193 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x011E, 0x011F,
NeoBelerophon 0:8ea634413549 194 0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,
NeoBelerophon 0:8ea634413549 195 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0,
NeoBelerophon 0:8ea634413549 196 0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510,
NeoBelerophon 0:8ea634413549 197 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3,
NeoBelerophon 0:8ea634413549 198 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,
NeoBelerophon 0:8ea634413549 199 0x00BA, 0x00AA, 0x00CA, 0x00CB, 0x00C8, 0x0000, 0x00CD, 0x00CE,
NeoBelerophon 0:8ea634413549 200 0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580,
NeoBelerophon 0:8ea634413549 201 0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x0000,
NeoBelerophon 0:8ea634413549 202 0x00D7, 0x00DA, 0x00DB, 0x00D9, 0x00EC, 0x00FF, 0x00AF, 0x00B4,
NeoBelerophon 0:8ea634413549 203 0x00AD, 0x00B1, 0x0000, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8,
NeoBelerophon 0:8ea634413549 204 0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0
NeoBelerophon 0:8ea634413549 205 };
NeoBelerophon 0:8ea634413549 206
NeoBelerophon 0:8ea634413549 207 #elif _CODE_PAGE == 858
NeoBelerophon 0:8ea634413549 208 #define _TBLDEF 1
NeoBelerophon 0:8ea634413549 209 static
NeoBelerophon 0:8ea634413549 210 const WCHAR Tbl[] = { /* CP858(0x80-0xFF) to Unicode conversion table */
NeoBelerophon 0:8ea634413549 211 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7,
NeoBelerophon 0:8ea634413549 212 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5,
NeoBelerophon 0:8ea634413549 213 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9,
NeoBelerophon 0:8ea634413549 214 0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x0192,
NeoBelerophon 0:8ea634413549 215 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA,
NeoBelerophon 0:8ea634413549 216 0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,
NeoBelerophon 0:8ea634413549 217 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0,
NeoBelerophon 0:8ea634413549 218 0x00A9, 0x2563, 0x2551, 0x2557, 0x2550, 0x00A2, 0x00A5, 0x2510,
NeoBelerophon 0:8ea634413549 219 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3,
NeoBelerophon 0:8ea634413549 220 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,
NeoBelerophon 0:8ea634413549 221 0x00F0, 0x00D0, 0x00CA, 0x00CB, 0x00C8, 0x20AC, 0x00CD, 0x00CE,
NeoBelerophon 0:8ea634413549 222 0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00C6, 0x00CC, 0x2580,
NeoBelerophon 0:8ea634413549 223 0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x00FE,
NeoBelerophon 0:8ea634413549 224 0x00DE, 0x00DA, 0x00DB, 0x00D9, 0x00FD, 0x00DD, 0x00AF, 0x00B4,
NeoBelerophon 0:8ea634413549 225 0x00AD, 0x00B1, 0x2017, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8,
NeoBelerophon 0:8ea634413549 226 0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0
NeoBelerophon 0:8ea634413549 227 };
NeoBelerophon 0:8ea634413549 228
NeoBelerophon 0:8ea634413549 229 #elif _CODE_PAGE == 862
NeoBelerophon 0:8ea634413549 230 #define _TBLDEF 1
NeoBelerophon 0:8ea634413549 231 static
NeoBelerophon 0:8ea634413549 232 const WCHAR Tbl[] = { /* CP862(0x80-0xFF) to Unicode conversion table */
NeoBelerophon 0:8ea634413549 233 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7,
NeoBelerophon 0:8ea634413549 234 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF,
NeoBelerophon 0:8ea634413549 235 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7,
NeoBelerophon 0:8ea634413549 236 0x05E8, 0x05E9, 0x05EA, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192,
NeoBelerophon 0:8ea634413549 237 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA,
NeoBelerophon 0:8ea634413549 238 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,
NeoBelerophon 0:8ea634413549 239 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
NeoBelerophon 0:8ea634413549 240 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,
NeoBelerophon 0:8ea634413549 241 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,
NeoBelerophon 0:8ea634413549 242 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,
NeoBelerophon 0:8ea634413549 243 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,
NeoBelerophon 0:8ea634413549 244 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,
NeoBelerophon 0:8ea634413549 245 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4,
NeoBelerophon 0:8ea634413549 246 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229,
NeoBelerophon 0:8ea634413549 247 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248,
NeoBelerophon 0:8ea634413549 248 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0
NeoBelerophon 0:8ea634413549 249 };
NeoBelerophon 0:8ea634413549 250
NeoBelerophon 0:8ea634413549 251 #elif _CODE_PAGE == 866
NeoBelerophon 0:8ea634413549 252 #define _TBLDEF 1
NeoBelerophon 0:8ea634413549 253 static
NeoBelerophon 0:8ea634413549 254 const WCHAR Tbl[] = { /* CP866(0x80-0xFF) to Unicode conversion table */
NeoBelerophon 0:8ea634413549 255 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
NeoBelerophon 0:8ea634413549 256 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F,
NeoBelerophon 0:8ea634413549 257 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
NeoBelerophon 0:8ea634413549 258 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,
NeoBelerophon 0:8ea634413549 259 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
NeoBelerophon 0:8ea634413549 260 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,
NeoBelerophon 0:8ea634413549 261 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
NeoBelerophon 0:8ea634413549 262 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,
NeoBelerophon 0:8ea634413549 263 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,
NeoBelerophon 0:8ea634413549 264 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,
NeoBelerophon 0:8ea634413549 265 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,
NeoBelerophon 0:8ea634413549 266 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,
NeoBelerophon 0:8ea634413549 267 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
NeoBelerophon 0:8ea634413549 268 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F,
NeoBelerophon 0:8ea634413549 269 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040E, 0x045E,
NeoBelerophon 0:8ea634413549 270 0x00B0, 0x2219, 0x00B7, 0x221A, 0x2116, 0x00A4, 0x25A0, 0x00A0
NeoBelerophon 0:8ea634413549 271 };
NeoBelerophon 0:8ea634413549 272
NeoBelerophon 0:8ea634413549 273 #elif _CODE_PAGE == 874
NeoBelerophon 0:8ea634413549 274 #define _TBLDEF 1
NeoBelerophon 0:8ea634413549 275 static
NeoBelerophon 0:8ea634413549 276 const WCHAR Tbl[] = { /* CP874(0x80-0xFF) to Unicode conversion table */
NeoBelerophon 0:8ea634413549 277 0x20AC, 0x0000, 0x0000, 0x0000, 0x0000, 0x2026, 0x0000, 0x0000,
NeoBelerophon 0:8ea634413549 278 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
NeoBelerophon 0:8ea634413549 279 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
NeoBelerophon 0:8ea634413549 280 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
NeoBelerophon 0:8ea634413549 281 0x00A0, 0x0E01, 0x0E02, 0x0E03, 0x0E04, 0x0E05, 0x0E06, 0x0E07,
NeoBelerophon 0:8ea634413549 282 0x0E08, 0x0E09, 0x0E0A, 0x0E0B, 0x0E0C, 0x0E0D, 0x0E0E, 0x0E0F,
NeoBelerophon 0:8ea634413549 283 0x0E10, 0x0E11, 0x0E12, 0x0E13, 0x0E14, 0x0E15, 0x0E16, 0x0E17,
NeoBelerophon 0:8ea634413549 284 0x0E18, 0x0E19, 0x0E1A, 0x0E1B, 0x0E1C, 0x0E1D, 0x0E1E, 0x0E1F,
NeoBelerophon 0:8ea634413549 285 0x0E20, 0x0E21, 0x0E22, 0x0E23, 0x0E24, 0x0E25, 0x0E26, 0x0E27,
NeoBelerophon 0:8ea634413549 286 0x0E28, 0x0E29, 0x0E2A, 0x0E2B, 0x0E2C, 0x0E2D, 0x0E2E, 0x0E2F,
NeoBelerophon 0:8ea634413549 287 0x0E30, 0x0E31, 0x0E32, 0x0E33, 0x0E34, 0x0E35, 0x0E36, 0x0E37,
NeoBelerophon 0:8ea634413549 288 0x0E38, 0x0E39, 0x0E3A, 0x0000, 0x0000, 0x0000, 0x0000, 0x0E3F,
NeoBelerophon 0:8ea634413549 289 0x0E40, 0x0E41, 0x0E42, 0x0E43, 0x0E44, 0x0E45, 0x0E46, 0x0E47,
NeoBelerophon 0:8ea634413549 290 0x0E48, 0x0E49, 0x0E4A, 0x0E4B, 0x0E4C, 0x0E4D, 0x0E4E, 0x0E4F,
NeoBelerophon 0:8ea634413549 291 0x0E50, 0x0E51, 0x0E52, 0x0E53, 0x0E54, 0x0E55, 0x0E56, 0x0E57,
NeoBelerophon 0:8ea634413549 292 0x0E58, 0x0E59, 0x0E5A, 0x0E5B, 0x0000, 0x0000, 0x0000, 0x0000
NeoBelerophon 0:8ea634413549 293 };
NeoBelerophon 0:8ea634413549 294
NeoBelerophon 0:8ea634413549 295 #elif _CODE_PAGE == 1250
NeoBelerophon 0:8ea634413549 296 #define _TBLDEF 1
NeoBelerophon 0:8ea634413549 297 static
NeoBelerophon 0:8ea634413549 298 const WCHAR Tbl[] = { /* CP1250(0x80-0xFF) to Unicode conversion table */
NeoBelerophon 0:8ea634413549 299 0x20AC, 0x0000, 0x201A, 0x0000, 0x201E, 0x2026, 0x2020, 0x2021,
NeoBelerophon 0:8ea634413549 300 0x0000, 0x2030, 0x0160, 0x2039, 0x015A, 0x0164, 0x017D, 0x0179,
NeoBelerophon 0:8ea634413549 301 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
NeoBelerophon 0:8ea634413549 302 0x0000, 0x2122, 0x0161, 0x203A, 0x015B, 0x0165, 0x017E, 0x017A,
NeoBelerophon 0:8ea634413549 303 0x00A0, 0x02C7, 0x02D8, 0x0141, 0x00A4, 0x0104, 0x00A6, 0x00A7,
NeoBelerophon 0:8ea634413549 304 0x00A8, 0x00A9, 0x015E, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x017B,
NeoBelerophon 0:8ea634413549 305 0x00B0, 0x00B1, 0x02DB, 0x0142, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
NeoBelerophon 0:8ea634413549 306 0x00B8, 0x0105, 0x015F, 0x00BB, 0x013D, 0x02DD, 0x013E, 0x017C,
NeoBelerophon 0:8ea634413549 307 0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7,
NeoBelerophon 0:8ea634413549 308 0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E,
NeoBelerophon 0:8ea634413549 309 0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7,
NeoBelerophon 0:8ea634413549 310 0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF,
NeoBelerophon 0:8ea634413549 311 0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7,
NeoBelerophon 0:8ea634413549 312 0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F,
NeoBelerophon 0:8ea634413549 313 0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7,
NeoBelerophon 0:8ea634413549 314 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9
NeoBelerophon 0:8ea634413549 315 };
NeoBelerophon 0:8ea634413549 316
NeoBelerophon 0:8ea634413549 317 #elif _CODE_PAGE == 1251
NeoBelerophon 0:8ea634413549 318 #define _TBLDEF 1
NeoBelerophon 0:8ea634413549 319 static
NeoBelerophon 0:8ea634413549 320 const WCHAR Tbl[] = { /* CP1251(0x80-0xFF) to Unicode conversion table */
NeoBelerophon 0:8ea634413549 321 0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021,
NeoBelerophon 0:8ea634413549 322 0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F,
NeoBelerophon 0:8ea634413549 323 0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
NeoBelerophon 0:8ea634413549 324 0x0000, 0x2111, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F,
NeoBelerophon 0:8ea634413549 325 0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7,
NeoBelerophon 0:8ea634413549 326 0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407,
NeoBelerophon 0:8ea634413549 327 0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7,
NeoBelerophon 0:8ea634413549 328 0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457,
NeoBelerophon 0:8ea634413549 329 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
NeoBelerophon 0:8ea634413549 330 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F,
NeoBelerophon 0:8ea634413549 331 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
NeoBelerophon 0:8ea634413549 332 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,
NeoBelerophon 0:8ea634413549 333 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
NeoBelerophon 0:8ea634413549 334 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,
NeoBelerophon 0:8ea634413549 335 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
NeoBelerophon 0:8ea634413549 336 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F
NeoBelerophon 0:8ea634413549 337 };
NeoBelerophon 0:8ea634413549 338
NeoBelerophon 0:8ea634413549 339 #elif _CODE_PAGE == 1252
NeoBelerophon 0:8ea634413549 340 #define _TBLDEF 1
NeoBelerophon 0:8ea634413549 341 static
NeoBelerophon 0:8ea634413549 342 const WCHAR Tbl[] = { /* CP1252(0x80-0xFF) to Unicode conversion table */
NeoBelerophon 0:8ea634413549 343 0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
NeoBelerophon 0:8ea634413549 344 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0x0000, 0x017D, 0x0000,
NeoBelerophon 0:8ea634413549 345 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
NeoBelerophon 0:8ea634413549 346 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0x0000, 0x017E, 0x0178,
NeoBelerophon 0:8ea634413549 347 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
NeoBelerophon 0:8ea634413549 348 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
NeoBelerophon 0:8ea634413549 349 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
NeoBelerophon 0:8ea634413549 350 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
NeoBelerophon 0:8ea634413549 351 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
NeoBelerophon 0:8ea634413549 352 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
NeoBelerophon 0:8ea634413549 353 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
NeoBelerophon 0:8ea634413549 354 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF,
NeoBelerophon 0:8ea634413549 355 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
NeoBelerophon 0:8ea634413549 356 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
NeoBelerophon 0:8ea634413549 357 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
NeoBelerophon 0:8ea634413549 358 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF
NeoBelerophon 0:8ea634413549 359 };
NeoBelerophon 0:8ea634413549 360
NeoBelerophon 0:8ea634413549 361 #elif _CODE_PAGE == 1253
NeoBelerophon 0:8ea634413549 362 #define _TBLDEF 1
NeoBelerophon 0:8ea634413549 363 static
NeoBelerophon 0:8ea634413549 364 const WCHAR Tbl[] = { /* CP1253(0x80-0xFF) to Unicode conversion table */
NeoBelerophon 0:8ea634413549 365 0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
NeoBelerophon 0:8ea634413549 366 0x0000, 0x2030, 0x0000, 0x2039, 0x000C, 0x0000, 0x0000, 0x0000,
NeoBelerophon 0:8ea634413549 367 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
NeoBelerophon 0:8ea634413549 368 0x0000, 0x2122, 0x0000, 0x203A, 0x0000, 0x0000, 0x0000, 0x0000,
NeoBelerophon 0:8ea634413549 369 0x00A0, 0x0385, 0x0386, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
NeoBelerophon 0:8ea634413549 370 0x00A8, 0x00A9, 0x0000, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x2015,
NeoBelerophon 0:8ea634413549 371 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x00B5, 0x00B6, 0x00B7,
NeoBelerophon 0:8ea634413549 372 0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F,
NeoBelerophon 0:8ea634413549 373 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,
NeoBelerophon 0:8ea634413549 374 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F,
NeoBelerophon 0:8ea634413549 375 0x03A0, 0x03A1, 0x0000, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7,
NeoBelerophon 0:8ea634413549 376 0x03A8, 0x03A9, 0x03AA, 0x03AD, 0x03AC, 0x03AD, 0x03AE, 0x03AF,
NeoBelerophon 0:8ea634413549 377 0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7,
NeoBelerophon 0:8ea634413549 378 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF,
NeoBelerophon 0:8ea634413549 379 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7,
NeoBelerophon 0:8ea634413549 380 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, 0x0000
NeoBelerophon 0:8ea634413549 381 };
NeoBelerophon 0:8ea634413549 382
NeoBelerophon 0:8ea634413549 383 #elif _CODE_PAGE == 1254
NeoBelerophon 0:8ea634413549 384 #define _TBLDEF 1
NeoBelerophon 0:8ea634413549 385 static
NeoBelerophon 0:8ea634413549 386 const WCHAR Tbl[] = { /* CP1254(0x80-0xFF) to Unicode conversion table */
NeoBelerophon 0:8ea634413549 387 0x20AC, 0x0000, 0x210A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
NeoBelerophon 0:8ea634413549 388 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0x0000, 0x0000, 0x0000,
NeoBelerophon 0:8ea634413549 389 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
NeoBelerophon 0:8ea634413549 390 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0x0000, 0x0000, 0x0178,
NeoBelerophon 0:8ea634413549 391 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
NeoBelerophon 0:8ea634413549 392 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
NeoBelerophon 0:8ea634413549 393 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
NeoBelerophon 0:8ea634413549 394 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
NeoBelerophon 0:8ea634413549 395 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
NeoBelerophon 0:8ea634413549 396 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
NeoBelerophon 0:8ea634413549 397 0x011E, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
NeoBelerophon 0:8ea634413549 398 0x00D8, 0x00D9, 0x00DA, 0x00BD, 0x00DC, 0x0130, 0x015E, 0x00DF,
NeoBelerophon 0:8ea634413549 399 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
NeoBelerophon 0:8ea634413549 400 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
NeoBelerophon 0:8ea634413549 401 0x011F, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
NeoBelerophon 0:8ea634413549 402 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015F, 0x00FF
NeoBelerophon 0:8ea634413549 403 };
NeoBelerophon 0:8ea634413549 404
NeoBelerophon 0:8ea634413549 405 #elif _CODE_PAGE == 1255
NeoBelerophon 0:8ea634413549 406 #define _TBLDEF 1
NeoBelerophon 0:8ea634413549 407 static
NeoBelerophon 0:8ea634413549 408 const WCHAR Tbl[] = { /* CP1255(0x80-0xFF) to Unicode conversion table */
NeoBelerophon 0:8ea634413549 409 0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
NeoBelerophon 0:8ea634413549 410 0x02C6, 0x2030, 0x0000, 0x2039, 0x0000, 0x0000, 0x0000, 0x0000,
NeoBelerophon 0:8ea634413549 411 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
NeoBelerophon 0:8ea634413549 412 0x02DC, 0x2122, 0x0000, 0x203A, 0x0000, 0x0000, 0x0000, 0x0000,
NeoBelerophon 0:8ea634413549 413 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
NeoBelerophon 0:8ea634413549 414 0x00A8, 0x00A9, 0x00D7, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
NeoBelerophon 0:8ea634413549 415 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
NeoBelerophon 0:8ea634413549 416 0x00B8, 0x00B9, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
NeoBelerophon 0:8ea634413549 417 0x05B0, 0x05B1, 0x05B2, 0x05B3, 0x05B4, 0x05B5, 0x05B6, 0x05B7,
NeoBelerophon 0:8ea634413549 418 0x05B8, 0x05B9, 0x0000, 0x05BB, 0x05BC, 0x05BD, 0x05BE, 0x05BF,
NeoBelerophon 0:8ea634413549 419 0x05C0, 0x05C1, 0x05C2, 0x05C3, 0x05F0, 0x05F1, 0x05F2, 0x05F3,
NeoBelerophon 0:8ea634413549 420 0x05F4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
NeoBelerophon 0:8ea634413549 421 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7,
NeoBelerophon 0:8ea634413549 422 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF,
NeoBelerophon 0:8ea634413549 423 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7,
NeoBelerophon 0:8ea634413549 424 0x05E8, 0x05E9, 0x05EA, 0x0000, 0x0000, 0x200E, 0x200F, 0x0000
NeoBelerophon 0:8ea634413549 425 };
NeoBelerophon 0:8ea634413549 426
NeoBelerophon 0:8ea634413549 427 #elif _CODE_PAGE == 1256
NeoBelerophon 0:8ea634413549 428 #define _TBLDEF 1
NeoBelerophon 0:8ea634413549 429 static
NeoBelerophon 0:8ea634413549 430 const WCHAR Tbl[] = { /* CP1256(0x80-0xFF) to Unicode conversion table */
NeoBelerophon 0:8ea634413549 431 0x20AC, 0x067E, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
NeoBelerophon 0:8ea634413549 432 0x02C6, 0x2030, 0x0679, 0x2039, 0x0152, 0x0686, 0x0698, 0x0688,
NeoBelerophon 0:8ea634413549 433 0x06AF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
NeoBelerophon 0:8ea634413549 434 0x06A9, 0x2122, 0x0691, 0x203A, 0x0153, 0x200C, 0x200D, 0x06BA,
NeoBelerophon 0:8ea634413549 435 0x00A0, 0x060C, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
NeoBelerophon 0:8ea634413549 436 0x00A8, 0x00A9, 0x06BE, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
NeoBelerophon 0:8ea634413549 437 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
NeoBelerophon 0:8ea634413549 438 0x00B8, 0x00B9, 0x061B, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x061F,
NeoBelerophon 0:8ea634413549 439 0x06C1, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627,
NeoBelerophon 0:8ea634413549 440 0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F,
NeoBelerophon 0:8ea634413549 441 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x00D7,
NeoBelerophon 0:8ea634413549 442 0x0637, 0x0638, 0x0639, 0x063A, 0x0640, 0x0640, 0x0642, 0x0643,
NeoBelerophon 0:8ea634413549 443 0x00E0, 0x0644, 0x00E2, 0x0645, 0x0646, 0x0647, 0x0648, 0x00E7,
NeoBelerophon 0:8ea634413549 444 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0649, 0x064A, 0x00EE, 0x00EF,
NeoBelerophon 0:8ea634413549 445 0x064B, 0x064C, 0x064D, 0x064E, 0x00F4, 0x064F, 0x0650, 0x00F7,
NeoBelerophon 0:8ea634413549 446 0x0651, 0x00F9, 0x0652, 0x00FB, 0x00FC, 0x200E, 0x200F, 0x06D2
NeoBelerophon 0:8ea634413549 447 }
NeoBelerophon 0:8ea634413549 448
NeoBelerophon 0:8ea634413549 449 #elif _CODE_PAGE == 1257
NeoBelerophon 0:8ea634413549 450 #define _TBLDEF 1
NeoBelerophon 0:8ea634413549 451 static
NeoBelerophon 0:8ea634413549 452 const WCHAR Tbl[] = { /* CP1257(0x80-0xFF) to Unicode conversion table */
NeoBelerophon 0:8ea634413549 453 0x20AC, 0x0000, 0x201A, 0x0000, 0x201E, 0x2026, 0x2020, 0x2021,
NeoBelerophon 0:8ea634413549 454 0x0000, 0x2030, 0x0000, 0x2039, 0x0000, 0x00A8, 0x02C7, 0x00B8,
NeoBelerophon 0:8ea634413549 455 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
NeoBelerophon 0:8ea634413549 456 0x0000, 0x2122, 0x0000, 0x203A, 0x0000, 0x00AF, 0x02DB, 0x0000,
NeoBelerophon 0:8ea634413549 457 0x00A0, 0x0000, 0x00A2, 0x00A3, 0x00A4, 0x0000, 0x00A6, 0x00A7,
NeoBelerophon 0:8ea634413549 458 0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
NeoBelerophon 0:8ea634413549 459 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
NeoBelerophon 0:8ea634413549 460 0x00B8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6,
NeoBelerophon 0:8ea634413549 461 0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112,
NeoBelerophon 0:8ea634413549 462 0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B,
NeoBelerophon 0:8ea634413549 463 0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7,
NeoBelerophon 0:8ea634413549 464 0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF,
NeoBelerophon 0:8ea634413549 465 0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113,
NeoBelerophon 0:8ea634413549 466 0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C,
NeoBelerophon 0:8ea634413549 467 0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7,
NeoBelerophon 0:8ea634413549 468 0x0173, 0x014E, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x02D9
NeoBelerophon 0:8ea634413549 469 };
NeoBelerophon 0:8ea634413549 470
NeoBelerophon 0:8ea634413549 471 #elif _CODE_PAGE == 1258
NeoBelerophon 0:8ea634413549 472 #define _TBLDEF 1
NeoBelerophon 0:8ea634413549 473 static
NeoBelerophon 0:8ea634413549 474 const WCHAR Tbl[] = { /* CP1258(0x80-0xFF) to Unicode conversion table */
NeoBelerophon 0:8ea634413549 475 0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
NeoBelerophon 0:8ea634413549 476 0x02C6, 0x2030, 0x0000, 0x2039, 0x0152, 0x0000, 0x0000, 0x0000,
NeoBelerophon 0:8ea634413549 477 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
NeoBelerophon 0:8ea634413549 478 0x02DC, 0x2122, 0x0000, 0x203A, 0x0153, 0x0000, 0x0000, 0x0178,
NeoBelerophon 0:8ea634413549 479 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
NeoBelerophon 0:8ea634413549 480 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
NeoBelerophon 0:8ea634413549 481 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
NeoBelerophon 0:8ea634413549 482 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
NeoBelerophon 0:8ea634413549 483 0x00C0, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
NeoBelerophon 0:8ea634413549 484 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x0300, 0x00CD, 0x00CE, 0x00CF,
NeoBelerophon 0:8ea634413549 485 0x0110, 0x00D1, 0x0309, 0x00D3, 0x00D4, 0x01A0, 0x00D6, 0x00D7,
NeoBelerophon 0:8ea634413549 486 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x01AF, 0x0303, 0x00DF,
NeoBelerophon 0:8ea634413549 487 0x00E0, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
NeoBelerophon 0:8ea634413549 488 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0301, 0x00ED, 0x00EE, 0x00EF,
NeoBelerophon 0:8ea634413549 489 0x0111, 0x00F1, 0x0323, 0x00F3, 0x00F4, 0x01A1, 0x00F6, 0x00F7,
NeoBelerophon 0:8ea634413549 490 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x01B0, 0x20AB, 0x00FF
NeoBelerophon 0:8ea634413549 491 };
NeoBelerophon 0:8ea634413549 492
NeoBelerophon 0:8ea634413549 493 #endif
NeoBelerophon 0:8ea634413549 494
NeoBelerophon 0:8ea634413549 495
NeoBelerophon 0:8ea634413549 496 #if !_TBLDEF || !_USE_LFN
NeoBelerophon 0:8ea634413549 497 #error This file is not needed in current configuration. Remove from the project.
NeoBelerophon 0:8ea634413549 498 #endif
NeoBelerophon 0:8ea634413549 499
NeoBelerophon 0:8ea634413549 500
NeoBelerophon 0:8ea634413549 501 WCHAR ff_convert ( /* Converted character, Returns zero on error */
NeoBelerophon 0:8ea634413549 502 WCHAR src, /* Character code to be converted */
NeoBelerophon 0:8ea634413549 503 UINT dir /* 0: Unicode to OEMCP, 1: OEMCP to Unicode */
NeoBelerophon 0:8ea634413549 504 )
NeoBelerophon 0:8ea634413549 505 {
NeoBelerophon 0:8ea634413549 506 WCHAR c;
NeoBelerophon 0:8ea634413549 507
NeoBelerophon 0:8ea634413549 508
NeoBelerophon 0:8ea634413549 509 if (src < 0x80) { /* ASCII */
NeoBelerophon 0:8ea634413549 510 c = src;
NeoBelerophon 0:8ea634413549 511
NeoBelerophon 0:8ea634413549 512 } else {
NeoBelerophon 0:8ea634413549 513 if (dir) { /* OEMCP to Unicode */
NeoBelerophon 0:8ea634413549 514 c = (src >= 0x100) ? 0 : Tbl[src - 0x80];
NeoBelerophon 0:8ea634413549 515
NeoBelerophon 0:8ea634413549 516 } else { /* Unicode to OEMCP */
NeoBelerophon 0:8ea634413549 517 for (c = 0; c < 0x80; c++) {
NeoBelerophon 0:8ea634413549 518 if (src == Tbl[c]) break;
NeoBelerophon 0:8ea634413549 519 }
NeoBelerophon 0:8ea634413549 520 c = (c + 0x80) & 0xFF;
NeoBelerophon 0:8ea634413549 521 }
NeoBelerophon 0:8ea634413549 522 }
NeoBelerophon 0:8ea634413549 523
NeoBelerophon 0:8ea634413549 524 return c;
NeoBelerophon 0:8ea634413549 525 }
NeoBelerophon 0:8ea634413549 526
NeoBelerophon 0:8ea634413549 527
NeoBelerophon 0:8ea634413549 528 WCHAR ff_wtoupper ( /* Upper converted character */
NeoBelerophon 0:8ea634413549 529 WCHAR chr /* Input character */
NeoBelerophon 0:8ea634413549 530 )
NeoBelerophon 0:8ea634413549 531 {
NeoBelerophon 0:8ea634413549 532 static const WCHAR tbl_lower[] = { 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0xA1, 0x00A2, 0x00A3, 0x00A5, 0x00AC, 0x00AF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0x0FF, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10B, 0x10D, 0x10F, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11B, 0x11D, 0x11F, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12B, 0x12D, 0x12F, 0x131, 0x133, 0x135, 0x137, 0x13A, 0x13C, 0x13E, 0x140, 0x142, 0x144, 0x146, 0x148, 0x14B, 0x14D, 0x14F, 0x151, 0x153, 0x155, 0x157, 0x159, 0x15B, 0x15D, 0x15F, 0x161, 0x163, 0x165, 0x167, 0x169, 0x16B, 0x16D, 0x16F, 0x171, 0x173, 0x175, 0x177, 0x17A, 0x17C, 0x17E, 0x192, 0x3B1, 0x3B2, 0x3B3, 0x3B4, 0x3B5, 0x3B6, 0x3B7, 0x3B8, 0x3B9, 0x3BA, 0x3BB, 0x3BC, 0x3BD, 0x3BE, 0x3BF, 0x3C0, 0x3C1, 0x3C3, 0x3C4, 0x3C5, 0x3C6, 0x3C7, 0x3C8, 0x3C9, 0x3CA, 0x430, 0x431, 0x432, 0x433, 0x434, 0x435, 0x436, 0x437, 0x438, 0x439, 0x43A, 0x43B, 0x43C, 0x43D, 0x43E, 0x43F, 0x440, 0x441, 0x442, 0x443, 0x444, 0x445, 0x446, 0x447, 0x448, 0x449, 0x44A, 0x44B, 0x44C, 0x44D, 0x44E, 0x44F, 0x451, 0x452, 0x453, 0x454, 0x455, 0x456, 0x457, 0x458, 0x459, 0x45A, 0x45B, 0x45C, 0x45E, 0x45F, 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, 0x217A, 0x217B, 0x217C, 0x217D, 0x217E, 0x217F, 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 };
NeoBelerophon 0:8ea634413549 533 static const WCHAR tbl_upper[] = { 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, 0x21, 0xFFE0, 0xFFE1, 0xFFE5, 0xFFE2, 0xFFE3, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0x178, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x132, 0x134, 0x136, 0x139, 0x13B, 0x13D, 0x13F, 0x141, 0x143, 0x145, 0x147, 0x14A, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x179, 0x17B, 0x17D, 0x191, 0x391, 0x392, 0x393, 0x394, 0x395, 0x396, 0x397, 0x398, 0x399, 0x39A, 0x39B, 0x39C, 0x39D, 0x39E, 0x39F, 0x3A0, 0x3A1, 0x3A3, 0x3A4, 0x3A5, 0x3A6, 0x3A7, 0x3A8, 0x3A9, 0x3AA, 0x410, 0x411, 0x412, 0x413, 0x414, 0x415, 0x416, 0x417, 0x418, 0x419, 0x41A, 0x41B, 0x41C, 0x41D, 0x41E, 0x41F, 0x420, 0x421, 0x422, 0x423, 0x424, 0x425, 0x426, 0x427, 0x428, 0x429, 0x42A, 0x42B, 0x42C, 0x42D, 0x42E, 0x42F, 0x401, 0x402, 0x403, 0x404, 0x405, 0x406, 0x407, 0x408, 0x409, 0x40A, 0x40B, 0x40C, 0x40E, 0x40F, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, 0x2169, 0x216A, 0x216B, 0x216C, 0x216D, 0x216E, 0x216F, 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 };
NeoBelerophon 0:8ea634413549 534 int i;
NeoBelerophon 0:8ea634413549 535
NeoBelerophon 0:8ea634413549 536
NeoBelerophon 0:8ea634413549 537 for (i = 0; tbl_lower[i] && chr != tbl_lower[i]; i++) ;
NeoBelerophon 0:8ea634413549 538
NeoBelerophon 0:8ea634413549 539 return tbl_lower[i] ? tbl_upper[i] : chr;
NeoBelerophon 0:8ea634413549 540 }