1 #include <precomp.h> 2 #include <mbstring.h> 3 #include <locale.h> 4 5 /* 6 * @implemented 7 */ 8 unsigned int __cdecl _mbcjmstojis(unsigned int c) 9 { 10 /* Conversion takes place only when codepage is 932. 11 In all other cases, c is returned unchanged */ 12 if(get_mbcinfo()->mbcodepage == 932) 13 { 14 if(_ismbclegal(c) && HIBYTE(c) < 0xf0) 15 { 16 if(HIBYTE(c) >= 0xe0) 17 c -= 0x4000; 18 19 c = (((HIBYTE(c) - 0x81)*2 + 0x21) << 8) | LOBYTE(c); 20 21 if(LOBYTE(c) > 0x7f) 22 c -= 0x1; 23 24 if(LOBYTE(c) > 0x9d) 25 c += 0x83; 26 else 27 c -= 0x1f; 28 } 29 else 30 return 0; /* Codepage is 932, but c can't be converted */ 31 } 32 33 return c; 34 } 35