ReactOS 0.4.16-dev-300-g2aadf2e
jmstojis.c
Go to the documentation of this file.
1#include <precomp.h>
2#include <mbstring.h>
3#include <locale.h>
4
5/*
6 * @implemented
7 */
8unsigned 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}
#define __cdecl
Definition: accygwin.h:79
const GLubyte * c
Definition: glext.h:8905
_Check_return_ _CRTIMP int __cdecl _ismbclegal(_In_ unsigned int _Ch)
#define LOBYTE(W)
Definition: jmemdos.c:487
#define HIBYTE(W)
Definition: jmemdos.c:486
unsigned int __cdecl _mbcjmstojis(unsigned int c)
Definition: jmstojis.c:8
#define c
Definition: ke_i.h:80
MSVCRT_pthreadmbcinfo get_mbcinfo(void)
Definition: locale.c:366