initial message templates support
[claws.git] / libkcc / sjis.c
blob026a3cd92c487385ab244710d893eceadb287dc3
1 #include "libkcc.h"
3 void Kcc_sjiskanji(char **ddd, register int c1, register int c2);
5 extern bool nogaiji;
7 /*---------------------------------------------------------------------
8 NAME
9 sjisgaiji
10 DESCRIPTION
11 Characters are mapped as follows:
12 0x2121 to 0x3a7e --> 0xf040 to 0xfcfc
13 0x3b21 to 0x7e7e --> 0xfcfc
14 ---------------------------------------------------------------------*/
15 void Kcc_sjisgaiji(ddd, c1, c2)
16 register int c1, c2;
17 char **ddd;
19 if (nogaiji)
20 Kcc_sjiskanji(ddd, ZENPAD >> 8, ZENPAD & 0xff);
21 else {
22 **ddd = c1 < 0x3b ? ((c1 - 1) >> 1) + 0xe0 : 0xfc; (*ddd)++;
23 **ddd = c1 < 0x3b ? c2 +
24 (c1 & 1 ? (c2 < 0x60 ? 0x1f : 0x20) : 0x7e) : 0xfc; (*ddd)++;
28 /*---------------------------------------------------------------------
29 NAME
30 sjiskana
31 ---------------------------------------------------------------------*/
32 void Kcc_sjiskana(ddd, c)
33 register int c;
34 char **ddd;
36 **ddd = 0x20 < c && c < 0x60 ? c | 0x80 : HANPAD | 0x80; (*ddd)++;
39 /*---------------------------------------------------------------------
40 NAME
41 sjiskanji
42 ---------------------------------------------------------------------*/
43 void Kcc_sjiskanji(ddd, c1, c2)
44 register int c1, c2;
45 char **ddd;
47 **ddd = ((c1 - 1) >> 1) + (c1 <= 0x5e ? 0x71 : 0xb1); (*ddd)++;
48 **ddd = c2 + (c1 & 1 ? (c2 < 0x60 ? 0x1f : 0x20) : 0x7e); (*ddd)++;