Fork of FATFileSystem that exposes FILINFO in the FATDirHandle. This allows obtaining true file sizes and testing whether a dir pointer is a directory or a file.

Dependents:   SDFileSystemNoStall

Fork of FATFileSystem by mbed official

Committer:
uci1
Date:
Thu Oct 30 07:01:15 2014 +0000
Revision:
6:7a3c53d25d96
Parent:
1:46ce1e16c870
Revert the fat file system back to that from 17 Mar 2014 so that it works with the SD card library, and add again the exposing of FILINFO to FATDirHandle

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emilmont 1:46ce1e16c870 1 /*------------------------------------------------------------------------*/
emilmont 1:46ce1e16c870 2 /* Unicode - Local code bidirectional converter (C)ChaN, 2009 */
emilmont 1:46ce1e16c870 3 /* (SBCS code pages) */
emilmont 1:46ce1e16c870 4 /*------------------------------------------------------------------------*/
emilmont 1:46ce1e16c870 5 /* 437 U.S. (OEM)
emilmont 1:46ce1e16c870 6 / 720 Arabic (OEM)
emilmont 1:46ce1e16c870 7 / 1256 Arabic (Windows)
emilmont 1:46ce1e16c870 8 / 737 Greek (OEM)
emilmont 1:46ce1e16c870 9 / 1253 Greek (Windows)
emilmont 1:46ce1e16c870 10 / 1250 Central Europe (Windows)
emilmont 1:46ce1e16c870 11 / 775 Baltic (OEM)
emilmont 1:46ce1e16c870 12 / 1257 Baltic (Windows)
emilmont 1:46ce1e16c870 13 / 850 Multilingual Latin 1 (OEM)
emilmont 1:46ce1e16c870 14 / 852 Latin 2 (OEM)
emilmont 1:46ce1e16c870 15 / 1252 Latin 1 (Windows)
emilmont 1:46ce1e16c870 16 / 855 Cyrillic (OEM)
emilmont 1:46ce1e16c870 17 / 1251 Cyrillic (Windows)
emilmont 1:46ce1e16c870 18 / 866 Russian (OEM)
emilmont 1:46ce1e16c870 19 / 857 Turkish (OEM)
emilmont 1:46ce1e16c870 20 / 1254 Turkish (Windows)
emilmont 1:46ce1e16c870 21 / 858 Multilingual Latin 1 + Euro (OEM)
emilmont 1:46ce1e16c870 22 / 862 Hebrew (OEM)
emilmont 1:46ce1e16c870 23 / 1255 Hebrew (Windows)
emilmont 1:46ce1e16c870 24 / 874 Thai (OEM, Windows)
emilmont 1:46ce1e16c870 25 / 1258 Vietnam (OEM, Windows)
emilmont 1:46ce1e16c870 26 */
emilmont 1:46ce1e16c870 27
emilmont 1:46ce1e16c870 28 #include "ff.h"
emilmont 1:46ce1e16c870 29
emilmont 1:46ce1e16c870 30
emilmont 1:46ce1e16c870 31 #if _CODE_PAGE == 437
emilmont 1:46ce1e16c870 32 #define _TBLDEF 1
emilmont 1:46ce1e16c870 33 static
emilmont 1:46ce1e16c870 34 const WCHAR Tbl[] = { /* CP437(0x80-0xFF) to Unicode conversion table */
emilmont 1:46ce1e16c870 35 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7,
emilmont 1:46ce1e16c870 36 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5,
emilmont 1:46ce1e16c870 37 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9,
emilmont 1:46ce1e16c870 38 0x00FF, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192,
emilmont 1:46ce1e16c870 39 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA,
emilmont 1:46ce1e16c870 40 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,
emilmont 1:46ce1e16c870 41 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
emilmont 1:46ce1e16c870 42 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,
emilmont 1:46ce1e16c870 43 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,
emilmont 1:46ce1e16c870 44 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,
emilmont 1:46ce1e16c870 45 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,
emilmont 1:46ce1e16c870 46 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,
emilmont 1:46ce1e16c870 47 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4,
emilmont 1:46ce1e16c870 48 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229,
emilmont 1:46ce1e16c870 49 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248,
emilmont 1:46ce1e16c870 50 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0
emilmont 1:46ce1e16c870 51 };
emilmont 1:46ce1e16c870 52
emilmont 1:46ce1e16c870 53 #elif _CODE_PAGE == 720
emilmont 1:46ce1e16c870 54 #define _TBLDEF 1
emilmont 1:46ce1e16c870 55 static
emilmont 1:46ce1e16c870 56 const WCHAR Tbl[] = { /* CP720(0x80-0xFF) to Unicode conversion table */
emilmont 1:46ce1e16c870 57 0x0000, 0x0000, 0x00E9, 0x00E2, 0x0000, 0x00E0, 0x0000, 0x00E7,
emilmont 1:46ce1e16c870 58 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0000, 0x0000, 0x0000,
emilmont 1:46ce1e16c870 59 0x0000, 0x0651, 0x0652, 0x00F4, 0x00A4, 0x0640, 0x00FB, 0x00F9,
emilmont 1:46ce1e16c870 60 0x0621, 0x0622, 0x0623, 0x0624, 0x00A3, 0x0625, 0x0626, 0x0627,
emilmont 1:46ce1e16c870 61 0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F,
emilmont 1:46ce1e16c870 62 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x00AB, 0x00BB,
emilmont 1:46ce1e16c870 63 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
emilmont 1:46ce1e16c870 64 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,
emilmont 1:46ce1e16c870 65 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,
emilmont 1:46ce1e16c870 66 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,
emilmont 1:46ce1e16c870 67 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,
emilmont 1:46ce1e16c870 68 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,
emilmont 1:46ce1e16c870 69 0x0636, 0x0637, 0x0638, 0x0639, 0x063A, 0x0641, 0x00B5, 0x0642,
emilmont 1:46ce1e16c870 70 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, 0x064A,
emilmont 1:46ce1e16c870 71 0x2261, 0x064B, 0x064C, 0x064D, 0x064E, 0x064F, 0xO650, 0x2248,
emilmont 1:46ce1e16c870 72 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0
emilmont 1:46ce1e16c870 73 };
emilmont 1:46ce1e16c870 74
emilmont 1:46ce1e16c870 75 #elif _CODE_PAGE == 737
emilmont 1:46ce1e16c870 76 #define _TBLDEF 1
emilmont 1:46ce1e16c870 77 static
emilmont 1:46ce1e16c870 78 const WCHAR Tbl[] = { /* CP737(0x80-0xFF) to Unicode conversion table */
emilmont 1:46ce1e16c870 79 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398,
emilmont 1:46ce1e16c870 80 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, 0x03A0,
emilmont 1:46ce1e16c870 81 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9,
emilmont 1:46ce1e16c870 82 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, 0x03B8,
emilmont 1:46ce1e16c870 83 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, 0x03C0,
emilmont 1:46ce1e16c870 84 0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8,
emilmont 1:46ce1e16c870 85 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
emilmont 1:46ce1e16c870 86 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,
emilmont 1:46ce1e16c870 87 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,
emilmont 1:46ce1e16c870 88 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,
emilmont 1:46ce1e16c870 89 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,
emilmont 1:46ce1e16c870 90 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,
emilmont 1:46ce1e16c870 91 0x03C9, 0x03AC, 0x03AD, 0x03AE, 0x03CA, 0x03AF, 0x03CC, 0x03CD,
emilmont 1:46ce1e16c870 92 0x03CB, 0x03CE, 0x0386, 0x0388, 0x0389, 0x038A, 0x038C, 0x038E,
emilmont 1:46ce1e16c870 93 0x038F, 0x00B1, 0x2265, 0x2264, 0x03AA, 0x03AB, 0x00F7, 0x2248,
emilmont 1:46ce1e16c870 94 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0
emilmont 1:46ce1e16c870 95 };
emilmont 1:46ce1e16c870 96
emilmont 1:46ce1e16c870 97 #elif _CODE_PAGE == 775
emilmont 1:46ce1e16c870 98 #define _TBLDEF 1
emilmont 1:46ce1e16c870 99 static
emilmont 1:46ce1e16c870 100 const WCHAR Tbl[] = { /* CP775(0x80-0xFF) to Unicode conversion table */
emilmont 1:46ce1e16c870 101 0x0106, 0x00FC, 0x00E9, 0x0101, 0x00E4, 0x0123, 0x00E5, 0x0107,
emilmont 1:46ce1e16c870 102 0x0142, 0x0113, 0x0156, 0x0157, 0x012B, 0x0179, 0x00C4, 0x00C5,
emilmont 1:46ce1e16c870 103 0x00C9, 0x00E6, 0x00C6, 0x014D, 0x00F6, 0x0122, 0x00A2, 0x015A,
emilmont 1:46ce1e16c870 104 0x015B, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x00A4,
emilmont 1:46ce1e16c870 105 0x0100, 0x012A, 0x00F3, 0x017B, 0x017C, 0x017A, 0x201D, 0x00A6,
emilmont 1:46ce1e16c870 106 0x00A9, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x0141, 0x00AB, 0x00BB,
emilmont 1:46ce1e16c870 107 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0104, 0x010C, 0x0118,
emilmont 1:46ce1e16c870 108 0x0116, 0x2563, 0x2551, 0x2557, 0x255D, 0x012E, 0x0160, 0x2510,
emilmont 1:46ce1e16c870 109 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0172, 0x016A,
emilmont 1:46ce1e16c870 110 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x017D,
emilmont 1:46ce1e16c870 111 0x0105, 0x010D, 0x0119, 0x0117, 0x012F, 0x0161, 0x0173, 0x016B,
emilmont 1:46ce1e16c870 112 0x017E, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,
emilmont 1:46ce1e16c870 113 0x00D3, 0x00DF, 0x014C, 0x0143, 0x00F5, 0x00D5, 0x00B5, 0x0144,
emilmont 1:46ce1e16c870 114 0x0136, 0x0137, 0x013B, 0x013C, 0x0146, 0x0112, 0x0145, 0x2019,
emilmont 1:46ce1e16c870 115 0x00AD, 0x00B1, 0x201C, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x201E,
emilmont 1:46ce1e16c870 116 0x00B0, 0x2219, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0
emilmont 1:46ce1e16c870 117 };
emilmont 1:46ce1e16c870 118
emilmont 1:46ce1e16c870 119 #elif _CODE_PAGE == 850
emilmont 1:46ce1e16c870 120 #define _TBLDEF 1
emilmont 1:46ce1e16c870 121 static
emilmont 1:46ce1e16c870 122 const WCHAR Tbl[] = { /* CP850(0x80-0xFF) to Unicode conversion table */
emilmont 1:46ce1e16c870 123 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7,
emilmont 1:46ce1e16c870 124 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5,
emilmont 1:46ce1e16c870 125 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9,
emilmont 1:46ce1e16c870 126 0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x0192,
emilmont 1:46ce1e16c870 127 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA,
emilmont 1:46ce1e16c870 128 0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,
emilmont 1:46ce1e16c870 129 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0,
emilmont 1:46ce1e16c870 130 0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510,
emilmont 1:46ce1e16c870 131 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3,
emilmont 1:46ce1e16c870 132 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,
emilmont 1:46ce1e16c870 133 0x00F0, 0x00D0, 0x00CA, 0x00CB, 0x00C8, 0x0131, 0x00CD, 0x00CE,
emilmont 1:46ce1e16c870 134 0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580,
emilmont 1:46ce1e16c870 135 0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x00FE,
emilmont 1:46ce1e16c870 136 0x00DE, 0x00DA, 0x00DB, 0x00D9, 0x00FD, 0x00DD, 0x00AF, 0x00B4,
emilmont 1:46ce1e16c870 137 0x00AD, 0x00B1, 0x2017, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8,
emilmont 1:46ce1e16c870 138 0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0
emilmont 1:46ce1e16c870 139 };
emilmont 1:46ce1e16c870 140
emilmont 1:46ce1e16c870 141 #elif _CODE_PAGE == 852
emilmont 1:46ce1e16c870 142 #define _TBLDEF 1
emilmont 1:46ce1e16c870 143 static
emilmont 1:46ce1e16c870 144 const WCHAR Tbl[] = { /* CP852(0x80-0xFF) to Unicode conversion table */
emilmont 1:46ce1e16c870 145 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x016F, 0x0107, 0x00E7,
emilmont 1:46ce1e16c870 146 0x0142, 0x00EB, 0x0150, 0x0151, 0x00EE, 0x0179, 0x00C4, 0x0106,
emilmont 1:46ce1e16c870 147 0x00C9, 0x0139, 0x013A, 0x00F4, 0x00F6, 0x013D, 0x013E, 0x015A,
emilmont 1:46ce1e16c870 148 0x015B, 0x00D6, 0x00DC, 0x0164, 0x0165, 0x0141, 0x00D7, 0x010D,
emilmont 1:46ce1e16c870 149 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x0104, 0x0105, 0x017D, 0x017E,
emilmont 1:46ce1e16c870 150 0x0118, 0x0119, 0x00AC, 0x017A, 0x010C, 0x015F, 0x00AB, 0x00BB,
emilmont 1:46ce1e16c870 151 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x011A,
emilmont 1:46ce1e16c870 152 0x015E, 0x2563, 0x2551, 0x2557, 0x255D, 0x017B, 0x017C, 0x2510,
emilmont 1:46ce1e16c870 153 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0102, 0x0103,
emilmont 1:46ce1e16c870 154 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,
emilmont 1:46ce1e16c870 155 0x0111, 0x0110, 0x010E, 0x00CB, 0x010F, 0x0147, 0x00CD, 0x00CE,
emilmont 1:46ce1e16c870 156 0x011B, 0x2518, 0x250C, 0x2588, 0x2584, 0x0162, 0x016E, 0x2580,
emilmont 1:46ce1e16c870 157 0x00D3, 0x00DF, 0x00D4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161,
emilmont 1:46ce1e16c870 158 0x0154, 0x00DA, 0x0155, 0x0170, 0x00FD, 0x00DD, 0x0163, 0x00B4,
emilmont 1:46ce1e16c870 159 0x00AD, 0x02DD, 0x02DB, 0x02C7, 0x02D8, 0x00A7, 0x00F7, 0x00B8,
emilmont 1:46ce1e16c870 160 0x00B0, 0x00A8, 0x02D9, 0x0171, 0x0158, 0x0159, 0x25A0, 0x00A0
emilmont 1:46ce1e16c870 161 };
emilmont 1:46ce1e16c870 162
emilmont 1:46ce1e16c870 163 #elif _CODE_PAGE == 855
emilmont 1:46ce1e16c870 164 #define _TBLDEF 1
emilmont 1:46ce1e16c870 165 static
emilmont 1:46ce1e16c870 166 const WCHAR Tbl[] = { /* CP855(0x80-0xFF) to Unicode conversion table */
emilmont 1:46ce1e16c870 167 0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404,
emilmont 1:46ce1e16c870 168 0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408,
emilmont 1:46ce1e16c870 169 0x0459, 0x0409, 0x045A, 0x040A, 0x045B, 0x040B, 0x045C, 0x040C,
emilmont 1:46ce1e16c870 170 0x045E, 0x040E, 0x045F, 0x040F, 0x044E, 0x042E, 0x044A, 0x042A,
emilmont 1:46ce1e16c870 171 0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414,
emilmont 1:46ce1e16c870 172 0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00AB, 0x00BB,
emilmont 1:46ce1e16c870 173 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438,
emilmont 1:46ce1e16c870 174 0x0418, 0x2563, 0x2551, 0x2557, 0x255D, 0x0439, 0x0419, 0x2510,
emilmont 1:46ce1e16c870 175 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x043A, 0x041A,
emilmont 1:46ce1e16c870 176 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,
emilmont 1:46ce1e16c870 177 0x043B, 0x041B, 0x043C, 0x041C, 0x043D, 0x041D, 0x043E, 0x041E,
emilmont 1:46ce1e16c870 178 0x043F, 0x2518, 0x250C, 0x2588, 0x2584, 0x041F, 0x044F, 0x2580,
emilmont 1:46ce1e16c870 179 0x042F, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443,
emilmont 1:46ce1e16c870 180 0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044C, 0x042C, 0x2116,
emilmont 1:46ce1e16c870 181 0x00AD, 0x044B, 0x042B, 0x0437, 0x0417, 0x0448, 0x0428, 0x044D,
emilmont 1:46ce1e16c870 182 0x042D, 0x0449, 0x0429, 0x0447, 0x0427, 0x00A7, 0x25A0, 0x00A0
emilmont 1:46ce1e16c870 183 };
emilmont 1:46ce1e16c870 184
emilmont 1:46ce1e16c870 185 #elif _CODE_PAGE == 857
emilmont 1:46ce1e16c870 186 #define _TBLDEF 1
emilmont 1:46ce1e16c870 187 static
emilmont 1:46ce1e16c870 188 const WCHAR Tbl[] = { /* CP857(0x80-0xFF) to Unicode conversion table */
emilmont 1:46ce1e16c870 189 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7,
emilmont 1:46ce1e16c870 190 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0131, 0x00C4, 0x00C5,
emilmont 1:46ce1e16c870 191 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9,
emilmont 1:46ce1e16c870 192 0x0130, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x015E, 0x015F,
emilmont 1:46ce1e16c870 193 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x011E, 0x011F,
emilmont 1:46ce1e16c870 194 0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,
emilmont 1:46ce1e16c870 195 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0,
emilmont 1:46ce1e16c870 196 0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510,
emilmont 1:46ce1e16c870 197 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3,
emilmont 1:46ce1e16c870 198 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,
emilmont 1:46ce1e16c870 199 0x00BA, 0x00AA, 0x00CA, 0x00CB, 0x00C8, 0x0000, 0x00CD, 0x00CE,
emilmont 1:46ce1e16c870 200 0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580,
emilmont 1:46ce1e16c870 201 0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x0000,
emilmont 1:46ce1e16c870 202 0x00D7, 0x00DA, 0x00DB, 0x00D9, 0x00EC, 0x00FF, 0x00AF, 0x00B4,
emilmont 1:46ce1e16c870 203 0x00AD, 0x00B1, 0x0000, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8,
emilmont 1:46ce1e16c870 204 0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0
emilmont 1:46ce1e16c870 205 };
emilmont 1:46ce1e16c870 206
emilmont 1:46ce1e16c870 207 #elif _CODE_PAGE == 858
emilmont 1:46ce1e16c870 208 #define _TBLDEF 1
emilmont 1:46ce1e16c870 209 static
emilmont 1:46ce1e16c870 210 const WCHAR Tbl[] = { /* CP858(0x80-0xFF) to Unicode conversion table */
emilmont 1:46ce1e16c870 211 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7,
emilmont 1:46ce1e16c870 212 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5,
emilmont 1:46ce1e16c870 213 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9,
emilmont 1:46ce1e16c870 214 0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x0192,
emilmont 1:46ce1e16c870 215 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA,
emilmont 1:46ce1e16c870 216 0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,
emilmont 1:46ce1e16c870 217 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0,
emilmont 1:46ce1e16c870 218 0x00A9, 0x2563, 0x2551, 0x2557, 0x2550, 0x00A2, 0x00A5, 0x2510,
emilmont 1:46ce1e16c870 219 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3,
emilmont 1:46ce1e16c870 220 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,
emilmont 1:46ce1e16c870 221 0x00F0, 0x00D0, 0x00CA, 0x00CB, 0x00C8, 0x20AC, 0x00CD, 0x00CE,
emilmont 1:46ce1e16c870 222 0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00C6, 0x00CC, 0x2580,
emilmont 1:46ce1e16c870 223 0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x00FE,
emilmont 1:46ce1e16c870 224 0x00DE, 0x00DA, 0x00DB, 0x00D9, 0x00FD, 0x00DD, 0x00AF, 0x00B4,
emilmont 1:46ce1e16c870 225 0x00AD, 0x00B1, 0x2017, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8,
emilmont 1:46ce1e16c870 226 0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0
emilmont 1:46ce1e16c870 227 };
emilmont 1:46ce1e16c870 228
emilmont 1:46ce1e16c870 229 #elif _CODE_PAGE == 862
emilmont 1:46ce1e16c870 230 #define _TBLDEF 1
emilmont 1:46ce1e16c870 231 static
emilmont 1:46ce1e16c870 232 const WCHAR Tbl[] = { /* CP862(0x80-0xFF) to Unicode conversion table */
emilmont 1:46ce1e16c870 233 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7,
emilmont 1:46ce1e16c870 234 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF,
emilmont 1:46ce1e16c870 235 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7,
emilmont 1:46ce1e16c870 236 0x05E8, 0x05E9, 0x05EA, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192,
emilmont 1:46ce1e16c870 237 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA,
emilmont 1:46ce1e16c870 238 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,
emilmont 1:46ce1e16c870 239 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
emilmont 1:46ce1e16c870 240 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,
emilmont 1:46ce1e16c870 241 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,
emilmont 1:46ce1e16c870 242 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,
emilmont 1:46ce1e16c870 243 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,
emilmont 1:46ce1e16c870 244 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,
emilmont 1:46ce1e16c870 245 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4,
emilmont 1:46ce1e16c870 246 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229,
emilmont 1:46ce1e16c870 247 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248,
emilmont 1:46ce1e16c870 248 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0
emilmont 1:46ce1e16c870 249 };
emilmont 1:46ce1e16c870 250
emilmont 1:46ce1e16c870 251 #elif _CODE_PAGE == 866
emilmont 1:46ce1e16c870 252 #define _TBLDEF 1
emilmont 1:46ce1e16c870 253 static
emilmont 1:46ce1e16c870 254 const WCHAR Tbl[] = { /* CP866(0x80-0xFF) to Unicode conversion table */
emilmont 1:46ce1e16c870 255 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
emilmont 1:46ce1e16c870 256 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F,
emilmont 1:46ce1e16c870 257 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
emilmont 1:46ce1e16c870 258 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,
emilmont 1:46ce1e16c870 259 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
emilmont 1:46ce1e16c870 260 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,
emilmont 1:46ce1e16c870 261 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
emilmont 1:46ce1e16c870 262 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,
emilmont 1:46ce1e16c870 263 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,
emilmont 1:46ce1e16c870 264 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,
emilmont 1:46ce1e16c870 265 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,
emilmont 1:46ce1e16c870 266 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,
emilmont 1:46ce1e16c870 267 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
emilmont 1:46ce1e16c870 268 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F,
emilmont 1:46ce1e16c870 269 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040E, 0x045E,
emilmont 1:46ce1e16c870 270 0x00B0, 0x2219, 0x00B7, 0x221A, 0x2116, 0x00A4, 0x25A0, 0x00A0
emilmont 1:46ce1e16c870 271 };
emilmont 1:46ce1e16c870 272
emilmont 1:46ce1e16c870 273 #elif _CODE_PAGE == 874
emilmont 1:46ce1e16c870 274 #define _TBLDEF 1
emilmont 1:46ce1e16c870 275 static
emilmont 1:46ce1e16c870 276 const WCHAR Tbl[] = { /* CP874(0x80-0xFF) to Unicode conversion table */
emilmont 1:46ce1e16c870 277 0x20AC, 0x0000, 0x0000, 0x0000, 0x0000, 0x2026, 0x0000, 0x0000,
emilmont 1:46ce1e16c870 278 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
emilmont 1:46ce1e16c870 279 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
emilmont 1:46ce1e16c870 280 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
emilmont 1:46ce1e16c870 281 0x00A0, 0x0E01, 0x0E02, 0x0E03, 0x0E04, 0x0E05, 0x0E06, 0x0E07,
emilmont 1:46ce1e16c870 282 0x0E08, 0x0E09, 0x0E0A, 0x0E0B, 0x0E0C, 0x0E0D, 0x0E0E, 0x0E0F,
emilmont 1:46ce1e16c870 283 0x0E10, 0x0E11, 0x0E12, 0x0E13, 0x0E14, 0x0E15, 0x0E16, 0x0E17,
emilmont 1:46ce1e16c870 284 0x0E18, 0x0E19, 0x0E1A, 0x0E1B, 0x0E1C, 0x0E1D, 0x0E1E, 0x0E1F,
emilmont 1:46ce1e16c870 285 0x0E20, 0x0E21, 0x0E22, 0x0E23, 0x0E24, 0x0E25, 0x0E26, 0x0E27,
emilmont 1:46ce1e16c870 286 0x0E28, 0x0E29, 0x0E2A, 0x0E2B, 0x0E2C, 0x0E2D, 0x0E2E, 0x0E2F,
emilmont 1:46ce1e16c870 287 0x0E30, 0x0E31, 0x0E32, 0x0E33, 0x0E34, 0x0E35, 0x0E36, 0x0E37,
emilmont 1:46ce1e16c870 288 0x0E38, 0x0E39, 0x0E3A, 0x0000, 0x0000, 0x0000, 0x0000, 0x0E3F,
emilmont 1:46ce1e16c870 289 0x0E40, 0x0E41, 0x0E42, 0x0E43, 0x0E44, 0x0E45, 0x0E46, 0x0E47,
emilmont 1:46ce1e16c870 290 0x0E48, 0x0E49, 0x0E4A, 0x0E4B, 0x0E4C, 0x0E4D, 0x0E4E, 0x0E4F,
emilmont 1:46ce1e16c870 291 0x0E50, 0x0E51, 0x0E52, 0x0E53, 0x0E54, 0x0E55, 0x0E56, 0x0E57,
emilmont 1:46ce1e16c870 292 0x0E58, 0x0E59, 0x0E5A, 0x0E5B, 0x0000, 0x0000, 0x0000, 0x0000
emilmont 1:46ce1e16c870 293 };
emilmont 1:46ce1e16c870 294
emilmont 1:46ce1e16c870 295 #elif _CODE_PAGE == 1250
emilmont 1:46ce1e16c870 296 #define _TBLDEF 1
emilmont 1:46ce1e16c870 297 static
emilmont 1:46ce1e16c870 298 const WCHAR Tbl[] = { /* CP1250(0x80-0xFF) to Unicode conversion table */
emilmont 1:46ce1e16c870 299 0x20AC, 0x0000, 0x201A, 0x0000, 0x201E, 0x2026, 0x2020, 0x2021,
emilmont 1:46ce1e16c870 300 0x0000, 0x2030, 0x0160, 0x2039, 0x015A, 0x0164, 0x017D, 0x0179,
emilmont 1:46ce1e16c870 301 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
emilmont 1:46ce1e16c870 302 0x0000, 0x2122, 0x0161, 0x203A, 0x015B, 0x0165, 0x017E, 0x017A,
emilmont 1:46ce1e16c870 303 0x00A0, 0x02C7, 0x02D8, 0x0141, 0x00A4, 0x0104, 0x00A6, 0x00A7,
emilmont 1:46ce1e16c870 304 0x00A8, 0x00A9, 0x015E, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x017B,
emilmont 1:46ce1e16c870 305 0x00B0, 0x00B1, 0x02DB, 0x0142, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
emilmont 1:46ce1e16c870 306 0x00B8, 0x0105, 0x015F, 0x00BB, 0x013D, 0x02DD, 0x013E, 0x017C,
emilmont 1:46ce1e16c870 307 0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7,
emilmont 1:46ce1e16c870 308 0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E,
emilmont 1:46ce1e16c870 309 0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7,
emilmont 1:46ce1e16c870 310 0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF,
emilmont 1:46ce1e16c870 311 0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7,
emilmont 1:46ce1e16c870 312 0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F,
emilmont 1:46ce1e16c870 313 0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7,
emilmont 1:46ce1e16c870 314 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9
emilmont 1:46ce1e16c870 315 };
emilmont 1:46ce1e16c870 316
emilmont 1:46ce1e16c870 317 #elif _CODE_PAGE == 1251
emilmont 1:46ce1e16c870 318 #define _TBLDEF 1
emilmont 1:46ce1e16c870 319 static
emilmont 1:46ce1e16c870 320 const WCHAR Tbl[] = { /* CP1251(0x80-0xFF) to Unicode conversion table */
emilmont 1:46ce1e16c870 321 0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021,
emilmont 1:46ce1e16c870 322 0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F,
emilmont 1:46ce1e16c870 323 0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
emilmont 1:46ce1e16c870 324 0x0000, 0x2111, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F,
emilmont 1:46ce1e16c870 325 0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7,
emilmont 1:46ce1e16c870 326 0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407,
emilmont 1:46ce1e16c870 327 0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7,
emilmont 1:46ce1e16c870 328 0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457,
emilmont 1:46ce1e16c870 329 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
emilmont 1:46ce1e16c870 330 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F,
emilmont 1:46ce1e16c870 331 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
emilmont 1:46ce1e16c870 332 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,
emilmont 1:46ce1e16c870 333 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
emilmont 1:46ce1e16c870 334 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,
emilmont 1:46ce1e16c870 335 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
emilmont 1:46ce1e16c870 336 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F
emilmont 1:46ce1e16c870 337 };
emilmont 1:46ce1e16c870 338
emilmont 1:46ce1e16c870 339 #elif _CODE_PAGE == 1252
emilmont 1:46ce1e16c870 340 #define _TBLDEF 1
emilmont 1:46ce1e16c870 341 static
emilmont 1:46ce1e16c870 342 const WCHAR Tbl[] = { /* CP1252(0x80-0xFF) to Unicode conversion table */
emilmont 1:46ce1e16c870 343 0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
emilmont 1:46ce1e16c870 344 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0x0000, 0x017D, 0x0000,
emilmont 1:46ce1e16c870 345 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
emilmont 1:46ce1e16c870 346 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0x0000, 0x017E, 0x0178,
emilmont 1:46ce1e16c870 347 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
emilmont 1:46ce1e16c870 348 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
emilmont 1:46ce1e16c870 349 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
emilmont 1:46ce1e16c870 350 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
emilmont 1:46ce1e16c870 351 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
emilmont 1:46ce1e16c870 352 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
emilmont 1:46ce1e16c870 353 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
emilmont 1:46ce1e16c870 354 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF,
emilmont 1:46ce1e16c870 355 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
emilmont 1:46ce1e16c870 356 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
emilmont 1:46ce1e16c870 357 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
emilmont 1:46ce1e16c870 358 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF
emilmont 1:46ce1e16c870 359 };
emilmont 1:46ce1e16c870 360
emilmont 1:46ce1e16c870 361 #elif _CODE_PAGE == 1253
emilmont 1:46ce1e16c870 362 #define _TBLDEF 1
emilmont 1:46ce1e16c870 363 static
emilmont 1:46ce1e16c870 364 const WCHAR Tbl[] = { /* CP1253(0x80-0xFF) to Unicode conversion table */
emilmont 1:46ce1e16c870 365 0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
emilmont 1:46ce1e16c870 366 0x0000, 0x2030, 0x0000, 0x2039, 0x000C, 0x0000, 0x0000, 0x0000,
emilmont 1:46ce1e16c870 367 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
emilmont 1:46ce1e16c870 368 0x0000, 0x2122, 0x0000, 0x203A, 0x0000, 0x0000, 0x0000, 0x0000,
emilmont 1:46ce1e16c870 369 0x00A0, 0x0385, 0x0386, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
emilmont 1:46ce1e16c870 370 0x00A8, 0x00A9, 0x0000, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x2015,
emilmont 1:46ce1e16c870 371 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x00B5, 0x00B6, 0x00B7,
emilmont 1:46ce1e16c870 372 0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F,
emilmont 1:46ce1e16c870 373 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,
emilmont 1:46ce1e16c870 374 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F,
emilmont 1:46ce1e16c870 375 0x03A0, 0x03A1, 0x0000, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7,
emilmont 1:46ce1e16c870 376 0x03A8, 0x03A9, 0x03AA, 0x03AD, 0x03AC, 0x03AD, 0x03AE, 0x03AF,
emilmont 1:46ce1e16c870 377 0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7,
emilmont 1:46ce1e16c870 378 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF,
emilmont 1:46ce1e16c870 379 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7,
emilmont 1:46ce1e16c870 380 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, 0x0000
emilmont 1:46ce1e16c870 381 };
emilmont 1:46ce1e16c870 382
emilmont 1:46ce1e16c870 383 #elif _CODE_PAGE == 1254
emilmont 1:46ce1e16c870 384 #define _TBLDEF 1
emilmont 1:46ce1e16c870 385 static
emilmont 1:46ce1e16c870 386 const WCHAR Tbl[] = { /* CP1254(0x80-0xFF) to Unicode conversion table */
emilmont 1:46ce1e16c870 387 0x20AC, 0x0000, 0x210A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
emilmont 1:46ce1e16c870 388 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0x0000, 0x0000, 0x0000,
emilmont 1:46ce1e16c870 389 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
emilmont 1:46ce1e16c870 390 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0x0000, 0x0000, 0x0178,
emilmont 1:46ce1e16c870 391 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
emilmont 1:46ce1e16c870 392 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
emilmont 1:46ce1e16c870 393 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
emilmont 1:46ce1e16c870 394 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
emilmont 1:46ce1e16c870 395 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
emilmont 1:46ce1e16c870 396 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
emilmont 1:46ce1e16c870 397 0x011E, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
emilmont 1:46ce1e16c870 398 0x00D8, 0x00D9, 0x00DA, 0x00BD, 0x00DC, 0x0130, 0x015E, 0x00DF,
emilmont 1:46ce1e16c870 399 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
emilmont 1:46ce1e16c870 400 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
emilmont 1:46ce1e16c870 401 0x011F, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
emilmont 1:46ce1e16c870 402 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015F, 0x00FF
emilmont 1:46ce1e16c870 403 };
emilmont 1:46ce1e16c870 404
emilmont 1:46ce1e16c870 405 #elif _CODE_PAGE == 1255
emilmont 1:46ce1e16c870 406 #define _TBLDEF 1
emilmont 1:46ce1e16c870 407 static
emilmont 1:46ce1e16c870 408 const WCHAR Tbl[] = { /* CP1255(0x80-0xFF) to Unicode conversion table */
emilmont 1:46ce1e16c870 409 0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
emilmont 1:46ce1e16c870 410 0x02C6, 0x2030, 0x0000, 0x2039, 0x0000, 0x0000, 0x0000, 0x0000,
emilmont 1:46ce1e16c870 411 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
emilmont 1:46ce1e16c870 412 0x02DC, 0x2122, 0x0000, 0x203A, 0x0000, 0x0000, 0x0000, 0x0000,
emilmont 1:46ce1e16c870 413 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
emilmont 1:46ce1e16c870 414 0x00A8, 0x00A9, 0x00D7, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
emilmont 1:46ce1e16c870 415 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
emilmont 1:46ce1e16c870 416 0x00B8, 0x00B9, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
emilmont 1:46ce1e16c870 417 0x05B0, 0x05B1, 0x05B2, 0x05B3, 0x05B4, 0x05B5, 0x05B6, 0x05B7,
emilmont 1:46ce1e16c870 418 0x05B8, 0x05B9, 0x0000, 0x05BB, 0x05BC, 0x05BD, 0x05BE, 0x05BF,
emilmont 1:46ce1e16c870 419 0x05C0, 0x05C1, 0x05C2, 0x05C3, 0x05F0, 0x05F1, 0x05F2, 0x05F3,
emilmont 1:46ce1e16c870 420 0x05F4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
emilmont 1:46ce1e16c870 421 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7,
emilmont 1:46ce1e16c870 422 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF,
emilmont 1:46ce1e16c870 423 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7,
emilmont 1:46ce1e16c870 424 0x05E8, 0x05E9, 0x05EA, 0x0000, 0x0000, 0x200E, 0x200F, 0x0000
emilmont 1:46ce1e16c870 425 };
emilmont 1:46ce1e16c870 426
emilmont 1:46ce1e16c870 427 #elif _CODE_PAGE == 1256
emilmont 1:46ce1e16c870 428 #define _TBLDEF 1
emilmont 1:46ce1e16c870 429 static
emilmont 1:46ce1e16c870 430 const WCHAR Tbl[] = { /* CP1256(0x80-0xFF) to Unicode conversion table */
emilmont 1:46ce1e16c870 431 0x20AC, 0x067E, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
emilmont 1:46ce1e16c870 432 0x02C6, 0x2030, 0x0679, 0x2039, 0x0152, 0x0686, 0x0698, 0x0688,
emilmont 1:46ce1e16c870 433 0x06AF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
emilmont 1:46ce1e16c870 434 0x06A9, 0x2122, 0x0691, 0x203A, 0x0153, 0x200C, 0x200D, 0x06BA,
emilmont 1:46ce1e16c870 435 0x00A0, 0x060C, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
emilmont 1:46ce1e16c870 436 0x00A8, 0x00A9, 0x06BE, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
emilmont 1:46ce1e16c870 437 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
emilmont 1:46ce1e16c870 438 0x00B8, 0x00B9, 0x061B, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x061F,
emilmont 1:46ce1e16c870 439 0x06C1, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627,
emilmont 1:46ce1e16c870 440 0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F,
emilmont 1:46ce1e16c870 441 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x00D7,
emilmont 1:46ce1e16c870 442 0x0637, 0x0638, 0x0639, 0x063A, 0x0640, 0x0640, 0x0642, 0x0643,
emilmont 1:46ce1e16c870 443 0x00E0, 0x0644, 0x00E2, 0x0645, 0x0646, 0x0647, 0x0648, 0x00E7,
emilmont 1:46ce1e16c870 444 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0649, 0x064A, 0x00EE, 0x00EF,
emilmont 1:46ce1e16c870 445 0x064B, 0x064C, 0x064D, 0x064E, 0x00F4, 0x064F, 0x0650, 0x00F7,
emilmont 1:46ce1e16c870 446 0x0651, 0x00F9, 0x0652, 0x00FB, 0x00FC, 0x200E, 0x200F, 0x06D2
emilmont 1:46ce1e16c870 447 }
emilmont 1:46ce1e16c870 448
emilmont 1:46ce1e16c870 449 #elif _CODE_PAGE == 1257
emilmont 1:46ce1e16c870 450 #define _TBLDEF 1
emilmont 1:46ce1e16c870 451 static
emilmont 1:46ce1e16c870 452 const WCHAR Tbl[] = { /* CP1257(0x80-0xFF) to Unicode conversion table */
emilmont 1:46ce1e16c870 453 0x20AC, 0x0000, 0x201A, 0x0000, 0x201E, 0x2026, 0x2020, 0x2021,
emilmont 1:46ce1e16c870 454 0x0000, 0x2030, 0x0000, 0x2039, 0x0000, 0x00A8, 0x02C7, 0x00B8,
emilmont 1:46ce1e16c870 455 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
emilmont 1:46ce1e16c870 456 0x0000, 0x2122, 0x0000, 0x203A, 0x0000, 0x00AF, 0x02DB, 0x0000,
emilmont 1:46ce1e16c870 457 0x00A0, 0x0000, 0x00A2, 0x00A3, 0x00A4, 0x0000, 0x00A6, 0x00A7,
emilmont 1:46ce1e16c870 458 0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
emilmont 1:46ce1e16c870 459 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
emilmont 1:46ce1e16c870 460 0x00B8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6,
emilmont 1:46ce1e16c870 461 0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112,
emilmont 1:46ce1e16c870 462 0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B,
emilmont 1:46ce1e16c870 463 0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7,
emilmont 1:46ce1e16c870 464 0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF,
emilmont 1:46ce1e16c870 465 0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113,
emilmont 1:46ce1e16c870 466 0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C,
emilmont 1:46ce1e16c870 467 0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7,
emilmont 1:46ce1e16c870 468 0x0173, 0x014E, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x02D9
emilmont 1:46ce1e16c870 469 };
emilmont 1:46ce1e16c870 470
emilmont 1:46ce1e16c870 471 #elif _CODE_PAGE == 1258
emilmont 1:46ce1e16c870 472 #define _TBLDEF 1
emilmont 1:46ce1e16c870 473 static
emilmont 1:46ce1e16c870 474 const WCHAR Tbl[] = { /* CP1258(0x80-0xFF) to Unicode conversion table */
emilmont 1:46ce1e16c870 475 0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
emilmont 1:46ce1e16c870 476 0x02C6, 0x2030, 0x0000, 0x2039, 0x0152, 0x0000, 0x0000, 0x0000,
emilmont 1:46ce1e16c870 477 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
emilmont 1:46ce1e16c870 478 0x02DC, 0x2122, 0x0000, 0x203A, 0x0153, 0x0000, 0x0000, 0x0178,
emilmont 1:46ce1e16c870 479 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
emilmont 1:46ce1e16c870 480 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
emilmont 1:46ce1e16c870 481 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
emilmont 1:46ce1e16c870 482 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
emilmont 1:46ce1e16c870 483 0x00C0, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
emilmont 1:46ce1e16c870 484 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x0300, 0x00CD, 0x00CE, 0x00CF,
emilmont 1:46ce1e16c870 485 0x0110, 0x00D1, 0x0309, 0x00D3, 0x00D4, 0x01A0, 0x00D6, 0x00D7,
emilmont 1:46ce1e16c870 486 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x01AF, 0x0303, 0x00DF,
emilmont 1:46ce1e16c870 487 0x00E0, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
emilmont 1:46ce1e16c870 488 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0301, 0x00ED, 0x00EE, 0x00EF,
emilmont 1:46ce1e16c870 489 0x0111, 0x00F1, 0x0323, 0x00F3, 0x00F4, 0x01A1, 0x00F6, 0x00F7,
emilmont 1:46ce1e16c870 490 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x01B0, 0x20AB, 0x00FF
emilmont 1:46ce1e16c870 491 };
emilmont 1:46ce1e16c870 492
emilmont 1:46ce1e16c870 493 #endif
emilmont 1:46ce1e16c870 494
emilmont 1:46ce1e16c870 495
emilmont 1:46ce1e16c870 496 #if !_TBLDEF || !_USE_LFN
emilmont 1:46ce1e16c870 497 #error This file is not needed in current configuration. Remove from the project.
emilmont 1:46ce1e16c870 498 #endif
emilmont 1:46ce1e16c870 499
emilmont 1:46ce1e16c870 500
emilmont 1:46ce1e16c870 501 WCHAR ff_convert ( /* Converted character, Returns zero on error */
emilmont 1:46ce1e16c870 502 WCHAR src, /* Character code to be converted */
emilmont 1:46ce1e16c870 503 UINT dir /* 0: Unicode to OEMCP, 1: OEMCP to Unicode */
emilmont 1:46ce1e16c870 504 )
emilmont 1:46ce1e16c870 505 {
emilmont 1:46ce1e16c870 506 WCHAR c;
emilmont 1:46ce1e16c870 507
emilmont 1:46ce1e16c870 508
emilmont 1:46ce1e16c870 509 if (src < 0x80) { /* ASCII */
emilmont 1:46ce1e16c870 510 c = src;
emilmont 1:46ce1e16c870 511
emilmont 1:46ce1e16c870 512 } else {
emilmont 1:46ce1e16c870 513 if (dir) { /* OEMCP to Unicode */
emilmont 1:46ce1e16c870 514 c = (src >= 0x100) ? 0 : Tbl[src - 0x80];
emilmont 1:46ce1e16c870 515
emilmont 1:46ce1e16c870 516 } else { /* Unicode to OEMCP */
emilmont 1:46ce1e16c870 517 for (c = 0; c < 0x80; c++) {
emilmont 1:46ce1e16c870 518 if (src == Tbl[c]) break;
emilmont 1:46ce1e16c870 519 }
emilmont 1:46ce1e16c870 520 c = (c + 0x80) & 0xFF;
emilmont 1:46ce1e16c870 521 }
emilmont 1:46ce1e16c870 522 }
emilmont 1:46ce1e16c870 523
emilmont 1:46ce1e16c870 524 return c;
emilmont 1:46ce1e16c870 525 }
emilmont 1:46ce1e16c870 526
emilmont 1:46ce1e16c870 527
emilmont 1:46ce1e16c870 528 WCHAR ff_wtoupper ( /* Upper converted character */
emilmont 1:46ce1e16c870 529 WCHAR chr /* Input character */
emilmont 1:46ce1e16c870 530 )
emilmont 1:46ce1e16c870 531 {
emilmont 1:46ce1e16c870 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 };
emilmont 1:46ce1e16c870 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 };
emilmont 1:46ce1e16c870 534 int i;
emilmont 1:46ce1e16c870 535
emilmont 1:46ce1e16c870 536
emilmont 1:46ce1e16c870 537 for (i = 0; tbl_lower[i] && chr != tbl_lower[i]; i++) ;
emilmont 1:46ce1e16c870 538
emilmont 1:46ce1e16c870 539 return tbl_lower[i] ? tbl_upper[i] : chr;
emilmont 1:46ce1e16c870 540 }