Changeset 69622 in vbox
- Timestamp:
- Nov 8, 2017 5:52:25 PM (7 years ago)
- svn:sync-xref-src-repo-rev:
- 118982
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/common/fs/fatvfs.cpp
r69621 r69622 29 29 * Header Files * 30 30 *********************************************************************************************************************************/ 31 #define RTMEM_WRAP_TO_EF_APIS 31 32 #define LOG_GROUP RTLOGGROUP_FS 32 33 #include "internal/iprt.h" … … 437 438 * @remarks Lower case characters are all marked invalid. 438 439 */ 439 static RTUTF16 g_awchFatCp437 Chars[] =440 static RTUTF16 g_awchFatCp437ValidChars[] = 440 441 { /* 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f */ 441 442 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, … … 447 448 0x0060, 0xfffe, 0xfffe, 0xfffe, 0xfffe, 0xfffe, 0xfffe, 0xfffe, 0xfffe, 0xfffe, 0xfffe, 0xfffe, 0xfffe, 0xfffe, 0xfffe, 0xfffe, 448 449 0xfffe, 0xfffe, 0xfffe, 0xfffe, 0xfffe, 0xfffe, 0xfffe, 0xfffe, 0xfffe, 0xfffe, 0xfffe, 0xffff, 0xffff, 0xffff, 0x007e, 0xffff, 450 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, 451 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, 0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192, 452 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, 453 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, 454 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, 455 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, 456 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, 457 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 458 }; 459 AssertCompileSize(g_awchFatCp437ValidChars, 256*2); 460 461 /** 462 * Codepage 437 translation table without invalid 8.3. character markings. 463 */ 464 static RTUTF16 g_awchFatCp437Chars[] = 465 { /* 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f */ 466 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, 467 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, 468 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 469 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 470 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 471 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 472 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 473 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, 449 474 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, 450 475 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, 0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192, … … 2492 2517 if (uc < 128) 2493 2518 { 2494 if (g_awchFatCp437 Chars[uc] == uc)2519 if (g_awchFatCp437ValidChars[uc] == uc) 2495 2520 return (uint16_t)uc; 2496 2521 if (RT_C_IS_LOWER(uc)) … … 2505 2530 RTUNICP ucUpper = RTUniCpToUpper(uc); 2506 2531 for (unsigned i = 128; i < 256; i++) 2507 if (g_awchFatCp437 Chars[i] == ucUpper)2532 if (g_awchFatCp437ValidChars[i] == ucUpper) 2508 2533 return i; 2509 2534 if (ucUpper != uc) 2510 2535 for (unsigned i = 128; i < 256; i++) 2511 if (g_awchFatCp437 Chars[i] == uc)2536 if (g_awchFatCp437ValidChars[i] == uc) 2512 2537 return i; 2513 2538 return UINT16_MAX; … … 2942 2967 if (wc < 128) 2943 2968 { 2944 if (g_awchFatCp437 Chars[wc] <= UINT16_C(0xfffe))2969 if (g_awchFatCp437ValidChars[wc] <= UINT16_C(0xfffe)) 2945 2970 { /* likely */ } 2946 2971 else … … 2982 3007 if (uc < 128) 2983 3008 { 2984 if (g_awchFatCp437 Chars[uc] != uc)3009 if (g_awchFatCp437ValidChars[uc] != uc) 2985 3010 { 2986 3011 if (uc) 2987 3012 { 2988 3013 uc = RTUniCpToUpper(uc); 2989 if (g_awchFatCp437 Chars[uc] != uc)3014 if (g_awchFatCp437ValidChars[uc] != uc) 2990 3015 uc = '_'; 2991 3016 } … … 4164 4189 if (RT_SUCCESS(rc)) 4165 4190 pThis->offDir = offEntryInDir + sizeof(paEntries[iEntry]) + 2; 4191 Assert(RTStrValidateEncoding(pDirEntry->szName) == VINF_SUCCESS); 4166 4192 return rc; 4167 4193 }
Note:
See TracChangeset
for help on using the changeset viewer.