initial message templates support
[claws.git] / libkcc / jis.c
blob187dfeb4b75b8ec6e5e8e3367914b276bed1b109
1 #include "libkcc.h"
3 extern enum mode outmode;
4 extern char shiftout[], shiftin[];
5 extern bool nogaiji;
6 /*---------------------------------------------------------------------
7 NAME
8 jisascii
9 ---------------------------------------------------------------------*/
10 void Kcc_jisascii(ddd, c)
11 register int c;
12 char **ddd;
14 int i;
16 switch (outmode) {
17 case M_ASCII:
18 break;
19 case M_SO:
20 **ddd = SI; (*ddd)++;
21 outmode = M_ASCII;
22 break;
23 default:
24 for (i=0; i< strlen(shiftout); i++) { **ddd = shiftout[i]; (*ddd)++; }
25 outmode = M_ASCII;
26 break;
28 **ddd = c; (*ddd)++;
31 /*---------------------------------------------------------------------
32 NAME
33 jisgaiji
34 ---------------------------------------------------------------------*/
35 void Kcc_jisgaiji(ddd, c1, c2)
36 register int c1, c2;
37 char **ddd;
40 if (nogaiji)
41 Kcc_jiskanji(ddd, ZENPAD >> 8, ZENPAD & 0xff);
42 else {
43 if (outmode != M_GAIJI) {
44 if (outmode == M_SO) { **ddd = SI; (*ddd)++; }
45 **ddd = '\033'; (*ddd)++;
46 **ddd = '$'; (*ddd)++;
47 **ddd = '('; (*ddd)++;
48 **ddd = 'D'; (*ddd)++;
49 outmode = M_GAIJI;
51 **ddd = c1;
52 **ddd = c2;
56 /*---------------------------------------------------------------------
57 NAME
58 jiskana
59 ---------------------------------------------------------------------*/
60 void Kcc_jiskana(ddd, c)
61 register int c;
62 char **ddd;
64 int i;
66 if (outmode != M_SO) {
67 if (outmode != M_ASCII) {
68 for (i=0; i< strlen(shiftout); i++) {**ddd = shiftout[i]; (*ddd)++; }
70 **ddd = SO; (*ddd)++;
71 outmode = M_SO;
73 **ddd = !nogaiji || (0x20 < c && c < 0x60) ? c : HANPAD; (*ddd)++;
76 /*---------------------------------------------------------------------
77 NAME
78 jiskana8
79 ---------------------------------------------------------------------*/
80 void Kcc_jiskana8(ddd, c)
81 register int c;
82 char **ddd;
84 int i;
86 if (outmode != M_ASCII) {
87 for (i=0; i< strlen(shiftout); i++) {**ddd = shiftout[i]; (*ddd)++; }
88 outmode = M_ASCII;
90 **ddd = (!nogaiji || (0x20 < c && c < 0x60) ? c : HANPAD) | 0x80; (*ddd)++;
93 /*---------------------------------------------------------------------
94 NAME
95 jiskanak
96 ---------------------------------------------------------------------*/
97 void Kcc_jiskanak(ddd, c)
98 register int c;
99 char **ddd;
102 if (outmode != M_ESCI) {
103 **ddd = '\033'; (*ddd)++;
104 **ddd = '('; (*ddd)++;
105 **ddd = 'I'; (*ddd)++;
106 outmode = M_ESCI;
108 **ddd = !nogaiji || (0x20 < c && c < 0x60) ? c : HANPAD; (*ddd)++;
111 /*---------------------------------------------------------------------
112 NAME
113 jiskanji
114 ---------------------------------------------------------------------*/
115 void Kcc_jiskanji(ddd, c1, c2)
116 register int c1, c2;
117 char **ddd;
119 int i;
121 if (outmode != M_KANJI) {
122 if (outmode == M_SO)
123 { **ddd = SI; (*ddd)++; }
124 for (i=0; i< strlen(shiftin); i++) {**ddd = shiftin[i]; (*ddd)++; }
125 outmode = M_KANJI;
127 **ddd = c1; (*ddd)++;
128 **ddd = c2; (*ddd)++;