43static inline uint16_t unicodeToSjis(uint16_t
unicode) {
44 unsigned lo = 0,
hi =
sizeof(c_unicodeToSjisConvTable) /
sizeof(c_unicodeToSjisConvTable[0]);
46 unsigned mid = (
lo +
hi) / 2;
47 uint16_t u = c_unicodeToSjisConvTable[mid].unicode;
48 if (u ==
unicode)
return c_unicodeToSjisConvTable[mid].sjis;
66 while (
src[srcLen]) srcLen++;
68 while (
in < srcLen &&
out < dstSize) {
70 uint16_t
sjis = unicodeToSjis(cp);
71 if (
sjis == 0 && cp != 0)
sjis =
'?';
73 if (
out + 2 > dstSize)
break;
91 while (
src[srcLen]) srcLen++;
93 while (
in < srcLen &&
out < dstSize) {
97 }
else if (cp >= 0x21 && cp <= 0x7e) {
98 cp = 0xff00 + (cp - 0x20);
100 uint16_t
sjis = unicodeToSjis(cp);
101 if (
sjis == 0 && cp != 0)
sjis =
'?';
103 if (
out + 2 > dstSize)
break;
int32_t hi
Definition cpu.c:154
int32_t lo
Definition cpu.c:154
uint32_t out
Definition cpu.c:62
char in[50]
Definition memcpy.c:74
Definition sjis-decode.hh:38
uint16_t utf8Decode(const char *str, uint32_t length, uint32_t *index)
Definition utf8-decode.cc:29
uint16_t unicode
Definition sjis-encode-table.h:11
uint16_t sjis
Definition sjis-encode-table.h:12
static const char * src
Definition syscalls.h:80
void uint32_t(classId, spec)