comparison lib/Xatoklib/aux.c @ 0:92745d501b9a

initial import from kinput2-v3.1
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Mon, 08 Mar 2010 04:44:30 +0900
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:92745d501b9a
1 /*
2 * Copyright 1999 Justsystem Corporation, Japan.
3 *
4 * Permission to use, copy, modify, and distribute this software and its
5 * documentation for any purpose and without fee is hereby granted,
6 * provided that the above copyright notice appear in all copies and that
7 * both that copyright notice and this permission notice appear in
8 * supporting documentation, and that the name of Justsystem Corporation
9 * not be used in advertising or publicity pertaining to distribution
10 * of the software without specific, written prior permission. Justsystem
11 * Corporation makes no representations about the suitability of this
12 * software for any purpose. It is provided "as is" without express
13 * or implied warranty.
14 *
15 * Author: Atsushi Irisawa
16 */
17 #ifndef lint
18 static char rcsid[] = "$Id: aux.c,v 1.3 1999/08/24 09:05:25 ishisone Exp $" ;
19 #endif /* !lint */
20
21 #include <stdio.h>
22 #include <X11/IntrinsicP.h>
23 #include <X11/StringDefs.h>
24 #include <X11/Xmu/Atoms.h>
25 #include <X11/keysym.h>
26
27 #include <Xatoklib.h>
28
29
30 /* Page */
31 /*
32 * [$B4X?tL>(B]
33 * wordStartFunc( )
34 * [$BI=Bj(B]
35 * $BC18lEPO?%a%K%e!<$N=i4|2==hM}(B
36 * [$B8F=P7A<0(B]
37 * int wordStartFunc( _XatokRecPtr acomm )
38 *
39 * [$B0z?t(B]
40 * $B7?(B : $BL>(B $B>N(B : I O : $B@b(B $BL@(B
41 * _XatokRecPtr : acomm : i/o : kinput2$BMQJQ49%P%C%U%!(B
42 *
43 * [$BJV$jCM(B]
44 * 1 : $B>o$K#1(B
45 *
46 * [$B;HMQ4X?t(B]
47 * $B$J$7(B
48 * [$B5!G=(B]
49 * $BC18lEPO?%a%K%e!<$rI=<($9$k0Y$K!"%G!<%?$N=i4|2=$r9T$J$&!#(B
50 */
51 int wordStartFunc(acomm)
52 _XatokRecPtr acomm;
53 {
54
55 #ifdef ATOK_DEBUG
56 printf( "\303\261\270\354\305\320\317\277\263\253\273\317\n"/*=$BC18lEPO?3+;O(B\n=*/ ) ;
57 #endif /* ATOK_DEBUG */
58 bzero( acomm->word_str, sizeof( acomm->word_str )) ;
59 bzero( acomm->word_yomi, sizeof( acomm->word_yomi )) ;
60 acomm->word_strLen = 0 ;
61 acomm->word_yomiLen = 0 ;
62 acomm->word_mode = W_WORD ;
63
64 return 1 ;
65 }
66
67 /* Page */
68 /*
69 * [$B4X?tL>(B]
70 * wordFunc( )
71 * [$BI=Bj(B]
72 * $BC18lEPO?;~$N%$%Y%s%H=hM}(B
73 * [$B8F=P7A<0(B]
74 * int wordFunc( _XatokRecPtr acomm, menuAux *mAux,
75 * WORD *aajcode, int *op )
76 *
77 * [$B0z?t(B]
78 * $B7?(B : $BL>(B $B>N(B : I/O : $B@b(B $BL@(B
79 * _XatokRecPtr : acomm : i/o : kinput2$BMQJQ49%P%C%U%!(B
80 * menuAux : *mAux : i : $B8=:_I=<($7$F$$$k(BMENU
81 * WORD : *aajcode : i/o : $BF~NO$5$l$?J8;z(B
82 * int : *op : o : MENU OPERATION
83 *
84 *
85 * [$BJV$jCM(B]
86 * 0 : key $BF~NO$r%(%s%8%s$KAw$i$J$$!#(B
87 * 1 : key$BF~NO$r%(%s%8%s$KAw$k!#(B
88 *
89 * [$B;HMQ4X?t(B]
90 * atokModeSet( )
91 * atokWordRegister( )
92 * atokWordStyleList( )
93 * [$B5!G=(B]
94 * $BC18lEPO?MQ$N(BAUX WINDOW$BI=<(;~$N%$%Y%s%H4IM}$r9T$J$&!#(B
95 * $BC18lEPO?;~$O!"C18lI=5-F~NO!"FI$_F~NO!"IJ;lA*Br!"=hM}3NG'(B
96 * $B=hM}7k2LI=<($N%b!<%I$,B8:_$9$k!#(B
97 * $B3F%b!<%I$K$*$$$F!"F~NO$G$-$kJ8;zBN7O$r@_Dj$9$k!#(B
98 * CTR$B%-!<$J$I$N@)8f%-!<$NA`:n$b9T$J$&!#(B
99 */
100 int wordFunc(acomm, mAux, aajcode, op)
101 _XatokRecPtr acomm;
102 menuAux *mAux;
103 WORD *aajcode;
104 int *op;
105 {
106 ATOKDEHINSTR *hptr ;
107 char euc[BUFSIZ] ;
108 int i ;
109 int pgMax = CAND_ROWS * CAND_COLS ;
110 int status ;
111
112 char *pp ;
113 #ifdef ATOK_DEBUG
114 printf( "WORD FUNC OK (%x) word_mode (%d)\n", *aajcode, acomm->word_mode ) ;
115 printf( "word_strLen %d, word_yomiLen %d\n",
116 acomm->word_strLen, acomm->word_yomiLen ) ;
117 #endif /* ATOK_DEBUG */
118 if ( *aajcode == CTR_H ) *aajcode = BS ;
119
120 /*
121 * $BL$3NDjJ8;z$,L5$$;~$K@)8f%-!<$rF~NO$5$l$?>l9g$K$O(B
122 * $B%*%Z%l!<%7%g%s$rL58z$K$9$k!#(B
123 */
124 if ( !acomm->echoLen &&
125 (( *aajcode & CTRL ) || *aajcode == DEL )) {
126 return 0 ;
127 }
128 /*
129 * $BC18lEPO?<B;\Cf$K(B $B%3!<%IF~NO$J$I$N#A#U#X%&%#%s%I%&$O(B
130 * $BI=<($G$-$J$$$N$G%*%Z%l!<%7%g%s$rL58z$K$9$k!#(B
131 */
132 if ( *aajcode == F10 ) {
133 return 0 ;
134 }
135 /*
136 * $BC18lF~NO;~$N#O#P(B
137 */
138 if ( acomm->word_mode == W_WORD ) {
139 if ( *aajcode == CR && acomm->echoLen == 0 ) {
140 if ( acomm->word_strLen ) {
141 atokModeSet( acomm, IME_PRV_SETKOTEMODE, 0x0001 ) ;
142 acomm->word_mode <<= 1 ;
143 return 0 ;
144 }
145 return 0 ;
146 }
147 else if ( *aajcode == BS && !acomm->echoLen ) {
148 if ( acomm->word_strLen ) {
149 acomm->word_strLen-- ;
150 }
151 else {
152 *op = OP_CANCEL ;
153 }
154 return 0 ;
155 }
156
157 else if ( *aajcode == EESC ) {
158 if ( !( acomm->convStatus & M_CAND )) { /* 616 */
159 *op = OP_CANCEL ;
160 }
161 /*
162 * $BL$3NDjJ8;zNs$,$"$k;~$O!"L$3NDj%P%C%U%!$r%/%j%"$9$k(B
163 */
164 if ( acomm->echoLen ) {
165 acomm->echoLen = 0 ;
166 *aajcode = EESC ;
167 return 1 ;
168 }
169 return 0 ;
170 }
171 else if ((( *aajcode & CTRL ) && !acomm->echoLen )
172 || *aajcode == TAB ){
173 return 0 ;
174 }
175 return 1 ;
176 }
177 /*
178 * $BFI$_F~NO;~$N(BOP
179 */
180 else if ( acomm->word_mode == W_YOMI ) {
181 if ( *aajcode == CR && acomm->echoLen == 0 ) {
182 if ( acomm->word_yomiLen ) {
183 atokModeSet( acomm, IME_PRV_SETKOTEMODE, 0x0000 ) ;
184 acomm->word_mode <<= 1 ;
185 acomm->convStatus |= M_CAND ;
186 atokWordStyleList( acomm ) ;
187 *aajcode = XFER ;
188 return 0 ;
189 }
190 return 0 ;
191 }
192 else if ( *aajcode == BS && !acomm->echoLen ) {
193 if ( acomm->word_yomiLen ) {
194 acomm->word_yomiLen-- ;
195 }
196 else {
197 atokModeSet( acomm, IME_PRV_SETKOTEMODE, 0x0000 ) ;
198 acomm->word_mode >>= 1 ;
199 }
200 return 0 ;
201 }
202 else if ((( *aajcode & CTRL ) && !acomm->echoLen )
203 || *aajcode == TAB ){
204 return 0 ;
205 }
206 else if ( *aajcode == EESC ) {
207 atokModeSet( acomm, IME_PRV_SETKOTEMODE, 0x0000 ) ;
208 /* acomm->word_mode >>= 1 ; */
209 *op = OP_CANCEL ;
210 return 0 ;
211 }
212 return 1 ;
213 }
214 /*
215 * $BIJ;l$rA*BrCf$N(BOP
216 */
217 else if ( acomm->word_mode == W_HINSHI ) {
218 if ( *aajcode > '0' && *aajcode <= '9' ) {
219 acomm->kohoPos = *aajcode - '1' ;
220 *aajcode = CR ;
221 }
222 if ( *aajcode == CR ) {
223 acomm->word_hinshi = acomm->kohoCurPage * pgMax + acomm->kohoPos + 1 ;
224 acomm->word_mode <<= 1 ;
225 }
226 else if ( *aajcode == CTR_G ||
227 *aajcode == EESC ) {
228 acomm->word_mode >>= 1 ;
229 }
230 return 0 ;
231 }
232 /*
233 * $BEPO?3NG'$N%@%$%"%m%0I=<(Cf$N(BOP
234 */
235 else if ( acomm->word_mode == W_YORN ) {
236 if ( *aajcode == 'y' || *aajcode == 'Y' ) {
237 acomm->word_str[acomm->word_strLen] = 0x00 ;
238 acomm->word_str[acomm->word_strLen+1] = 0x00 ;
239
240 acomm->wordStatus = atokWordRegister(
241 acomm,
242 acomm->word_str,
243 acomm->word_strLen,
244 acomm->word_yomi,
245 acomm->word_yomiLen,
246 acomm->word_hinshi ) ;
247 acomm->word_mode <<= 1 ;
248 /* *op = OP_CANCEL ; */
249 }
250 else if ( *aajcode == 'n' || *aajcode == 'N' || *aajcode == BS ) {
251 atokWordStyleList( acomm ) ;
252 acomm->convStatus |= M_CAND ;
253 acomm->word_mode >>= 1 ;
254 *aajcode = XFER ;
255 }
256 else if ( *aajcode == EESC ) {
257 acomm->word_mode = 0 ;
258 *op = OP_CANCEL ;
259 }
260 return 0 ;
261 }
262 /*
263 * $BEPO?7k2LI=<(Cf$N(BOP
264 */
265 else if ( acomm->word_mode == W_RESULT ) {
266 if ( *aajcode == CR || *aajcode == EESC ) {
267 acomm->word_mode = 0 ;
268 *op = OP_CANCEL ;
269 }
270 return 0 ;
271 }
272 return 0 ;
273
274 #ifdef ATOK_DEBUG
275 printf( "WORD STR [%s]\n", pp ) ;
276 #endif /* ATOK_DEBUG */
277 }
278
279 /* Page */
280 /*
281 * [$B4X?tL>(B]
282 * wordEndFunc( )
283 * [$BI=Bj(B]
284 * $BC18lEPO?%a%K%e!<$N8e=hM}(B
285 * [$B8F=P7A<0(B]
286 * int wordEndFunc( _XatokRecPtr acomm )
287 *
288 * [$B0z?t(B]
289 * $B7?(B : $BL>(B $B>N(B : I O : $B@b(B $BL@(B
290 * _XatokRecPtr : acomm : i/o : kinput2$BMQJQ49%P%C%U%!(B
291 *
292 * [$BJV$jCM(B]
293 * 1 : $B>o$K#1(B
294 *
295 * [$B;HMQ4X?t(B]
296 * $B$J$7(B
297 * [$B5!G=(B]
298 * $BC18lEPO?%a%K%e!<$r:o=|$9$k0Y$K!"%G!<%?$N8e=hM}$r9T$J$&!#(B
299 *
300 */
301 int wordEndFunc(acomm)
302 _XatokRecPtr acomm;
303 {
304
305 /* printf( "wordEndFunc\n" ) ; */
306 return 1 ;
307 }
308 /*
309 * Str
310 * $BC18lEPO?(B : $BC18l(B [XXXXX] $BFI$_(B [XXXX] $BIJ;l(B :
311 */
312 /* Page */
313 /*
314 * [$B4X?tL>(B]
315 * wordStringFunc( )
316 * [$BI=Bj(B]
317 * $BC18lEPO?%a%K%e!<$NJ8;zNs:n@.(B
318 * [$B8F=P7A<0(B]
319 * int wordStringFunc( _XatokRecPtr acomm, menuAux *mAux,
320 * wchar *echoStr, int *echoLen, int *revLen,
321 * int *revPos )
322 *
323 * [$B0z?t(B]
324 * $B7?(B : $BL>(B $B>N(B : I O : $B@b(B $BL@(B
325 * _XatokRecPtr : acomm : i/o : kinput2$BMQJQ49%P%C%U%!(B
326 * menuAux : *mAux : i : $B8=:_$N(B MENU CLASS
327 * wchar : *echoStr: o : $BI=<(J8;zNs3JG<NN0h(B
328 * int : *echoLen : o : $BI=<(J8;zNs$ND9$5(B
329 * int : *revLen : o : $BI=<(J8;zNs$NH?E>$ND9$5(B
330 * int : *revPos : o : $BI=<(J8;z%F%k$NH?E>$N3+;O0LCV(B
331 *
332 * [$BJV$jCM(B]
333 * $BI=<(J8;zNs$ND9$5(B
334 *
335 * [$B;HMQ4X?t(B]
336 * euc2wcs( )
337 * s2e( )
338 * [$B5!G=(B]
339 * $BC18lEPO?%a%K%e!<$rI=<(;~$NI=<(MQ$NJ8;zNs$r:n@.$9$k!#(B
340 * $BI=5-F~NO;~$O!"I=5-3NDjJ8;zNs$HL$3NDjJ8;zNs!"(B
341 * $B$h$_F~NO;~$O!"I=5-3NDjJ8;zNs$H!"$h$_3NDjJ8;zNs!"$h$_L$3NDjJ8;zNs(B
342 * $BIJ;lA*Br;~$O!"FI$_F~NO;~$HF1$8!"(B
343 * $BEPO?3NG';~$O!"I=5-3NDjJ8;zNs(B,$B$h$_J8;zNs!"IJ;l(B
344 * $BEPO?40N;;~$O!"%9%F!<%?%9J8;zNs(B
345 * $B$r:n@.$9$k!#(B
346 */
347 int wordStringFunc(acomm, mAux, echoStr, echoLen, revLen, revPos)
348 _XatokRecPtr acomm;
349 menuAux *mAux;
350 wchar *echoStr;
351 int *echoLen;
352 int *revLen;
353 int *revPos;
354 {
355 char tbuf[BUFSIZ*2] ;
356 int len ;
357 int n ;
358 int i, j, k, es ;
359 char *ep ;
360 int status ;
361 int c ;
362
363 *revPos = 0 ;
364 *revLen = 0 ;
365
366 ep = tbuf ;
367 if ( mAux->str ) {
368 strcpy( ep, mAux->str ) ;
369 ep += strlen( ep ) ;
370 }
371 #ifdef ATOK_DEBUG
372 printf( "WORD MODE %d\n", acomm->word_mode );
373 printf( " \303\261\270\354 [%s"/*= $BC18l(B [%s=*/, acomm->word_str ) ;
374 printf( "\303\261\270\354\263\316\304\352\272\321\312\270\273\372\316\363(%d) [%s]\n"/*=$BC18l3NDj:QJ8;zNs(B(%d) [%s]\n=*/, acomm->word_strLen, acomm->word_str ) ;
375 printf( "\303\261\270\354 \263\316\304\352\244\267\244\277\312\270\273\372\316\363(%d) [%s]\n"/*=$BC18l(B $B3NDj$7$?J8;zNs(B(%d) [%s]\n=*/, acomm->wlen, acomm->wbuf ) ;
376 printf( "\303\261\270\354 \314\244\263\316\304\352\312\270\273\372\316\363[%s]\n"/*=$BC18l(B $BL$3NDjJ8;zNs(B[%s]\n=*/, acomm->echoStr ) ;
377 for( i = 0 ; i < acomm->echoLen ; i++ ) {
378 printf( "%x ", acomm->echoStr[i] ) ;
379 }
380 printf( "\n" );
381 #endif /* ATOK_DEBUG */
382
383
384 /*
385 * $BC18lEPO?$N%,%$%I$r@_Dj(B
386 */
387 sprintf( ep, " \303\261\270\354 ["/*= $BC18l(B [=*/ ) ;
388 es = strlen( tbuf ) ;
389 len = euc2wcs( tbuf, es, echoStr ) ;
390 for( i = 0 ; i < acomm->word_strLen ; i++ ) {
391 echoStr[len++] = acomm->word_str[i] ;
392 }
393 /*
394 * $BC18lF~NOCf$NI=<((B
395 */
396 if ( acomm->word_mode == W_WORD ) {
397 /*
398 * $B:#2s$NF~NO$G3NDj$7$?J8;zNs$,$"$k>l9g$K$O!"(B
399 * $B3NDjC18lJ8;zNs$H$7$F@_Dj$9$k!#(B
400 */
401 for( i = 0 ; i < acomm->wlen ; i++ ) {
402 if ( acomm->word_strLen+i >= WORD_HYOKI_MAX ) {
403 /* printf( "$BC18l$,$J$,$9$.$k!#(B(%d)\n", i ) ; */
404 break ;
405 }
406 acomm->word_str[acomm->word_strLen+i] = acomm->wbuf[i] ;
407 echoStr[len++] = acomm->word_str[acomm->word_strLen+i] ;
408 /* printf( "0x%x ", acomm->wbuf[i] ) ; */
409 }
410 /* printf( "\n" ) ; */
411 acomm->word_strLen += i ;
412 acomm->word_str[acomm->word_strLen] = 0x00 ;
413 /*
414 * $BL$3NDjJ8;zNs$r@_Dj(B
415 */
416 if ( acomm->echoLen > 0 ) {
417 *revPos = len + acomm->revPos ;
418 *revLen = acomm->revLen ;
419 for( i = 0 ; i < acomm->echoLen ; i++ ) {
420 echoStr[len++] = acomm->echoStr[i] ;
421 }
422 }
423 else {
424 *revPos = len ;
425 *revLen = 1 ;
426 }
427 }
428 n = euc2wcs( "]", 1, &echoStr[len] ) ;
429 len += n ;
430 *echoLen = len ;
431 if ( acomm->word_mode < W_YOMI ) {
432 return ;
433 }
434 sprintf( tbuf, " \306\311\244\337 ["/*= $BFI$_(B [=*/ ) ;
435 es = strlen( tbuf ) ;
436 n = euc2wcs( tbuf, es, &echoStr[len] ) ;
437 len += n ;
438
439 /*
440 * $B$h$_$N$J$,$5$O(B $B4A;z$H(BANK$B$G$O(B $BF1$8$G$"$k!#(B
441 */
442 for( i = 0 ; i < acomm->word_yomiLen ; i++ ) {
443 echoStr[len++] = acomm->word_yomi[i] ;
444 }
445 if ( acomm->word_mode == W_YOMI ) {
446 /*
447 * $B:#2s$NF~NO$G3NDj$7$?J8;zNs$,$"$k>l9g$K$O!"(B
448 * $B3NDjC18lJ8;zNs$H$7$F@_Dj$9$k!#(B
449 */
450 for( i = 0 ; i < acomm->wlen ; i++ ) {
451 if ( acomm->word_yomiLen+i >= WORD_YOMI_MAX ) {
452 /* printf( "$B$h$_$,$J$,$9$.$k!#(B(%d)\n", i ) ; */
453 break ;
454 }
455 acomm->word_yomi[acomm->word_yomiLen+i] = acomm->wbuf[i] ;
456 echoStr[len++] = acomm->word_yomi[acomm->word_yomiLen+i] ;
457 }
458 acomm->word_yomiLen += i ;
459 /*
460 * $BL$3NDjJ8;zNs$r@_Dj(B
461 */
462 if ( acomm->echoLen > 0 ) {
463 *revPos = len + acomm->revPos ;
464 *revLen = acomm->revLen ;
465 for( i = 0 ; i < acomm->echoLen ; i++ ) {
466 echoStr[len++] = acomm->echoStr[i] ;
467 }
468 }
469 else {
470 *revPos = len ;
471 *revLen = 1 ;
472 }
473 }
474
475 n = euc2wcs( "]", 1, &echoStr[len] ) ;
476 len += n ;
477
478 *echoLen = len ;
479 if ( acomm->word_mode < W_HINSHI ) {
480 return len ;
481 }
482 if ( acomm->word_mode > W_HINSHI ) {
483 sprintf( tbuf, " \311\312\273\354 ["/*= $BIJ;l(B [=*/ ) ;
484 es = strlen( tbuf ) ;
485 n = euc2wcs( tbuf, es, &echoStr[len] ) ;
486 len += n ;
487
488 s2e( acomm->hinsiPtr[acomm->word_hinshi-1].szHinsiStr,
489 strlen( acomm->hinsiPtr[acomm->word_hinshi-1].szHinsiStr ),
490 tbuf, sizeof( tbuf )) ;
491
492 es = strlen( tbuf ) ;
493 n = euc2wcs( tbuf, es, &echoStr[len] ) ;
494 len += n ;
495
496 sprintf( tbuf, "] \244\350\244\355\244\267\244\244\244\307\244\271\244\253 [y/n]"/*=] $B$h$m$7$$$G$9$+(B [y/n]=*/, tbuf ) ;
497 es = strlen( tbuf ) ;
498 n = euc2wcs( tbuf, es, &echoStr[len] ) ;
499 len += n ;
500
501 *revPos = len - 1 ;
502 *revLen = 1 ;
503 }
504 if ( acomm->word_mode == W_RESULT ) {
505 switch( acomm->wordStatus ) {
506 case 0 :
507 sprintf( tbuf, "\305\320\317\277\275\252\316\273\244\267\244\336\244\267\244\277\241\243"/*=$BEPO?=*N;$7$^$7$?!#(B=*/ ) ;
508 break ;
509 case 1 :
510 sprintf( tbuf, "\244\263\244\316\306\311\244\337\244\307\244\317\244\263\244\354\260\312\276\345\305\320\317\277\244\307\244\255\244\336\244\273\244\363\241\243"/*=$B$3$NFI$_$G$O$3$l0J>eEPO?$G$-$^$;$s!#(B=*/ ) ;
511 break ;
512 case 2 :
513 sprintf( tbuf, "\244\263\244\354\260\312\276\345\305\320\317\277\244\307\244\255\244\336\244\273\244\363\241\243"/*=$B$3$l0J>eEPO?$G$-$^$;$s!#(B=*/ ) ;
514 break ;
515 case 3 :
516 sprintf( tbuf, "\274\255\275\361\300\337\304\352\244\254\311\324\305\254\300\332\244\307\244\271\241\243"/*=$B<-=q@_Dj$,ITE,@Z$G$9!#(B=*/ ) ;
517 break ;
518 case 4 :
519 sprintf( tbuf, "\303\261\270\354\244\313\311\324\305\254\300\332\244\312\312\270\273\372\244\254\264\336\244\336\244\354\244\306\244\244\244\336\244\271\241\243"/*=$BC18l$KITE,@Z$JJ8;z$,4^$^$l$F$$$^$9!#(B=*/ ) ;
520 break ;
521 case 5 :
522 sprintf( tbuf, "\305\320\317\277\244\307\244\255\244\336\244\273\244\363\241\243"/*=$BEPO?$G$-$^$;$s!#(B=*/ ) ;
523 break ;
524 case 6 :
525 sprintf( tbuf, "\306\311\244\337\244\313\311\324\305\254\300\332\244\312\312\270\273\372\244\254\264\336\244\336\244\354\244\306\244\244\244\336\244\271\241\243"/*=$BFI$_$KITE,@Z$JJ8;z$,4^$^$l$F$$$^$9!#(B=*/ ) ;
526 break ;
527 case 7 :
528 sprintf( tbuf, "\264\373\244\313\305\320\317\277\244\265\244\354\244\306\244\244\244\336\244\271\241\243"/*=$B4{$KEPO?$5$l$F$$$^$9!#(B=*/ ) ;
529 break ;
530 default:
531 sprintf( tbuf, "\303\261\270\354\305\320\317\277\244\313\274\272\307\324\244\267\244\336\244\267\244\277\241\243"/*=$BC18lEPO?$K<:GT$7$^$7$?!#(B=*/ ) ;
532 break;
533 }
534 strcat( tbuf, " " ) ;
535 es = strlen( tbuf ) ;
536 n = euc2wcs( tbuf, es, echoStr ) ;
537 len = n ;
538 *revPos = len - 1 ;
539 *revLen = 1 ;
540 }
541 *echoLen = len ;
542
543 #ifdef ATOK_DEBUG
544 printf( "\303\261\270\354 EUC STR [%s]\n"/*=$BC18l(B EUC STR [%s]\n=*/, tbuf ) ;
545 #endif /* ATOK_DEBUG */
546 return len ;
547 }
548
549
550 #define OFF 0
551 #define ON 1
552 #define itemSize( item ) sizeof( item ) / sizeof( item[0] )
553
554 /*
555 * $BC18lEPO?(B
556 */
557 menuItem auxWordRegItem[] = {
558 { CTR_G, OFF, OP_CANCEL, NULL, NULL, NULL }
559 } ;
560 menuAux auxWordRegMenu[] = {
561 M_WORD, -1,
562 wordStartFunc,
563 wordFunc,
564 NULL,
565 wordStringFunc,
566 "\303\261\270\354\305\320\317\277\241\247"/*=$BC18lEPO?!'(B=*/, NULL,
567 auxWordRegItem, itemSize( auxWordRegItem )
568 } ;
569
570 #define REVERSE printf( "\033[7m" )
571 #define NORMAL printf( "\033[m" )
572
573 menuAux *getMenuInstance( )
574 {
575 return auxWordRegMenu ;
576 }
577
578 /* Page */
579 /*
580 * [$B4X?tL>(B]
581 * menuPrevOn( )
582 * [$BI=Bj(B]
583 * $B%a%K%e!<9`L\$N0\F0(B
584 * [$B8F=P7A<0(B]
585 * int menuPrevOn( int cur, int mode, menuAux *mAux )
586 *
587 * [$B0z?t(B]
588 * $B7?(B : $BL>(B $B>N(B : I O : $B@b(B $BL@(B
589 * int : cur : i : $B8=:_$N9`L\(B
590 * int : mode : i : $B0\F0%b!<%I(B
591 * menuAux : *mAux : i : $B8=:_$N%a%K%e!<%G!<%?(B
592 *
593 * [$BJV$jCM(B]
594 * $B0\F08e$N9`L\HV9f(B
595 *
596 * [$B;HMQ4X?t(B]
597 * $B$J$7(B
598 * [$B5!G=(B]
599 * mode $B$,#0$N;~$O!"8=:_A*Br$5$l$F$$$k9`L\$h$j#1$DA0$N(B
600 * $BA*Br2DG=$J9`L\$rC5$9!#(B
601 * mode $B$,#1$N;~$O!"8=:_$N%a%K%e!<$G#1HV8e$m$NA*Br2DG=$J(B
602 * $B9`L\$rC5$9!#(B
603 * $BA*Br2DG=$J9`L\$H$O(Bitem $B$N(B mode $B$,(BON$B$N;~$G$"$k!#(B
604 */
605 int menuPrevOn(cur, mode, mAux)
606 int cur;
607 int mode;
608 menuAux *mAux;
609 {
610 register menuItem *item ;
611 int last = -1 ;
612 int target = -1 ;
613 int i ;
614
615 item = &( mAux->items[mAux->nitems-1] ) ;
616 for( i = mAux->nitems - 1 ; i >= 0 ; i-- ) {
617 #ifdef ATOK_DEBUG
618 printf( "item->mode = (%s) %s\n",
619 item->itemStr ? item->itemStr : "NULL",
620 item->mode == ON ? "ON" : "OFF" ) ;
621 #endif /* ATOK_DEBUG */
622 if ( item->mode == ON ) {
623 if ( last == -1 ) {
624 last = i ;
625 if ( mode ) {
626 /* printf( "LAST FOUND %d\n", last ); */
627 return last ;
628 }
629 }
630 if ( target == -1 && i < cur ) {
631 target = i ;
632 }
633 }
634 item-- ;
635 }
636 if ( target == -1 ) {
637 target = last ;
638 }
639
640 return target ;
641 }
642
643 /* Page */
644 /*
645 * [$B4X?tL>(B]
646 * menuNextOn( )
647 * [$BI=Bj(B]
648 * $B%a%K%e!<9`L\$N0\F0(B
649 * [$B8F=P7A<0(B]
650 * int menuNextOn( int cur, int mode, menuAux *mAux )
651 *
652 * [$B0z?t(B]
653 * $B7?(B : $BL>(B $B>N(B : I O : $B@b(B $BL@(B
654 * int : cur : i : $B8=:_$N9`L\(B
655 * int : mode : i : $B0\F0%b!<%I(B
656 * menuAux : *mAux : i : $B8=:_$N%a%K%e!<%G!<%?(B
657 *
658 * [$BJV$jCM(B]
659 * $B0\F08e$N9`L\HV9f(B
660 *
661 * [$B;HMQ4X?t(B]
662 * $B$J$7(B
663 * [$B5!G=(B]
664 * mode $B$,#0$N;~$O!"8=:_A*Br$5$l$F$$$k9`L\$h$j#1$D8e$m$N(B
665 * $BA*Br2DG=$J9`L\$rC5$9!#(B
666 * mode $B$,#1$N;~$O!"8=:_$N%a%K%e!<$G@hF,$NA*Br2DG=$J(B
667 * $B9`L\$rC5$9!#(B
668 * $BA*Br2DG=$J9`L\$H$O(Bitem $B$N(B mode $B$,(BON$B$N;~$G$"$k!#(B
669 */
670 int menuNextOn(cur, mode, mAux)
671 int cur;
672 int mode;
673 menuAux *mAux;
674 {
675 register menuItem *item ;
676 int first = -1 ;
677 int target = -1 ;
678 int i ;
679
680 item = mAux->items ;
681 for( i = 0 ; i < mAux->nitems ; i++ ) {
682 if ( item->mode == ON ) {
683 if ( first == -1 ) {
684 first = i ;
685 if ( mode ) {
686 return first ;
687 }
688 }
689 if ( target == -1 && i > cur ) {
690 target = i ;
691 }
692 }
693 item++ ;
694 }
695 if ( target == -1 ) {
696 target = first ;
697 }
698
699 return target ;
700 }
701
702 /* Page */
703 /*
704 * [$B4X?tL>(B]
705 * menuKey( )
706 * [$BI=Bj(B]
707 * $B%a%K%e!<FbM-8z%-!<$N%A%'%C%/(B
708 * [$B8F=P7A<0(B]
709 * int menuKey( menuAux *mAux, WORD key, int *cur )
710 *
711 * [$B0z?t(B]
712 * $B7?(B : $BL>(B $B>N(B : I O : $B@b(B $BL@(B
713 * menuAux : *mAux : i : $B8=:_$N%a%K%e!<%G!<%?(B
714 * WORD : key : i : $BF~NO$5$l$?%-!<(B
715 * int : *cur : o : $BA*Br$5$l$?9`L\(B
716 *
717 * [$BJV$jCM(B]
718 * 0 : $B9`L\$OA*Br$5$l$F$$$J$$!#(B
719 * $B$=$NB>(B: $BA*Br$5$l$?9`L\$N%"%I%l%9(B
720 *
721 * [$B;HMQ4X?t(B]
722 * $B$J$7(B
723 * [$B5!G=(B]
724 * $B;XDj$5$l$?%-!<$,!"(B $B8=:_I=<($7$F$$$k%a%K%e!<$h$j!"(B
725 * $B9`L\$rA*Br$9$k$?$a$NM-8z%-!<$+%A%'%C%/$7!"(B
726 * $BM-8z%-!<N)$C$?>l9g$K$O!"9`L\$,A*Br$5$l$?J*$H$7!"(B
727 * $B$=$N9`L\HV9f$r@_Dj$7!"9`L\$N%"%I%l%9$rJV$9!#(B
728 */
729 menuItem *menuKey(mAux, key, cur)
730 menuAux *mAux;
731 WORD key;
732 int *cur;
733 {
734 register menuItem *item ;
735 register int i ;
736
737 *cur = 0 ;
738 item = mAux->items ;
739 for ( i = 0 ; i < mAux->nitems ; i++ ) {
740 /*
741 printf( "Check Keys for '%s'\n",
742 item->itemStr ? item->itemStr : "NULL" ) ;
743 */
744 if ( item->key == key ) {
745 /* printf( "found\n" ) ; */
746 *cur = i ;
747 return item ;
748 }
749 item++ ;
750 }
751 /* printf( "not found\n" ) ; */
752 return ( menuItem * )NULL ;
753 }
754
755 /* Page */
756 /*
757 * [$B4X?tL>(B]
758 * MenuCtrl( )
759 * [$BI=Bj(B]
760 * $B%a%K%e!<I=<(;~$N%$%Y%s%H%3%s%H%m!<%k(B
761 * [$B8F=P7A<0(B]
762 * int MenuCtrl( _XatokRecPtr acomm, menuAux **curMenu,
763 * WORD *aajcode, int op, int *length )
764 * [$B0z?t(B]
765 * $B7?(B : $BL>(B $B>N(B : I O : $B@b(B $BL@(B
766 * _XatokRecPtr : acomm : i/o : kinput2$BMQJQ49%P%C%U%!(B
767 * menuAux : **curMenu : i/o : $B8=:_$N%a%K%e!<%G!<%?(B
768 * WORD : *aajcode : i/o : $BF~NO$5$l$?(BAAJCODE
769 * int : op : i : $B3+;O%U%!%s%/%7%g%s$N8F$S=P$7(B
770 * int : *length : o : $BF~NOJ8;zNs$ND9$5(B
771 *
772 * [$BJV$jCM(B]
773 * 0 : $B%a%K%e!<$NJQ99L5$7(B
774 * 1 : $B%a%K%e!<=hM}%-%c%s%;%k(B
775 * 2 : $B%a%K%e!<A*Br9`L\$N=hM}7hDj(B
776 *
777 * [$B;HMQ4X?t(B]
778 * menuAux->startProc( )
779 * menuAux->defaultProc( )
780 * menuAux->endProc( )
781 * menuNextOn( )
782 * menuPrevOn( )
783 * [$B5!G=(B]
784 * AUX$B%&%#%s%I%&$K%a%K%e!<$,I=<($5$l$F$$$k;~$N(B
785 * $B%$%Y%s%H4IM}$r9T$J$&!#(B
786 * $B%$%Y%s%H$K$h$j!"I=<($7$F$$$k%a%K%e!<%G!<%?$N(B
787 * $B@ZBX$($d!"(BAUX$B%&%#%s%I%&$N=*N;$r9T$J$&!#(B
788 */
789 int MenuCtrl(acomm, curMenu, aajcode, op, length)
790 _XatokRecPtr acomm;
791 menuAux **curMenu;
792 WORD *aajcode;
793 int op;
794 int *length;
795 {
796
797 menuItem *target ;
798 menuItem sel ;
799 int newNbr ;
800 int changes =-1 ;
801 int cur ;
802
803 *length = 0 ;
804 if ( op ) { /* Start Proc */
805 if (( *curMenu )->startProc ) {
806 ( *curMenu )->startProc( acomm ) ;
807 }
808 return ;
809 }
810
811 target = menuKey( *curMenu, *aajcode, &newNbr ) ;
812 /*
813 * $B>e0L$G(BDEFAULT PROC$B$r<B9T$9$k!#(B
814 */
815 if ( !target ) {
816 #ifdef ATOK_DEBUG
817 printf( "AUX DEFAULT FUNC\n" ) ;
818 #endif /* ATOK_DEBUG */
819
820 if (( *curMenu )->defaultProc ) {
821 sel.op = 0 ;
822 *length = ( *curMenu )->defaultProc( acomm, *curMenu, aajcode, &sel.op ) ;
823 if ( sel.op ) {
824 target = &sel ;
825 goto menu_op ;
826 }
827 #ifdef ATOK_DEBUG
828 printf( "\274\302\271\324\n"/*=$B<B9T(B\n=*/ ) ;
829 #endif /* ATOK_DEBUG */
830 }
831 else {
832 #ifdef ATOK_DEBUG
833 printf( "\244\312\244\267\n"/*=$B$J$7(B\n=*/ ) ;
834 #endif /* ATOK_DEBUG */
835 }
836 return -1 ;
837 }
838 /*
839 * $BI=<($7$F$$$k%a%K%e!<$h$j!"A*Br$7$F$$$k$b$N$,JQ$o$C$?!#(B
840 */
841 menu_op :
842 switch( target->op ) {
843 case OP_NEXT :
844 ( *curMenu )->cur = menuNextOn(( *curMenu )->cur, 0, *curMenu ) ;
845 changes = 0 ;
846 break ;
847 case OP_FIRST :
848 ( *curMenu )->cur = menuNextOn(( *curMenu )->cur, 1, *curMenu ) ;
849 changes = 0 ;
850 break ;
851 case OP_PREV :
852 ( *curMenu )->cur = menuPrevOn(( *curMenu )->cur, 0, *curMenu ) ;
853 changes = 0 ;
854 break ;
855 case OP_LAST :
856 ( *curMenu )->cur = menuPrevOn(( *curMenu )->cur, 1, *curMenu ) ;
857 changes = 0 ;
858 break ;
859 case OP_SPEC :
860 /*
861 * $B;XDj$7$?HV9f(B
862 */
863 ( *curMenu )->cur = newNbr ;
864 changes = 0 ;
865 break ;
866 case OP_CANCEL :
867 /*
868 * $B%-%c%s%;%k$,2!$5$l$?$N$G>e0L%a%K%e!<$X(B
869 */
870 if (( *curMenu )->endProc ) {
871 ( *curMenu )->endProc( acomm ) ;
872 }
873 *curMenu = ( *curMenu )->parent ;
874 if ( *curMenu ) {
875 if (( *curMenu )->startProc ) {
876 ( *curMenu )->startProc( acomm ) ;
877 }
878 }
879 changes = 1 ;
880 break ;
881 case OP_SELECT :
882 /*
883 * $B7hDj%-!<$,2!$5$l$?$N$G=hM}<B9T(B
884 * $B2<0L%a%K%e!<$,$"$l$P!"%a%K%e!<JQ99(B
885 */
886 cur = ( *curMenu )->cur ;
887 if (( *curMenu )->items[cur].child ) {
888 ( *curMenu )->items[cur].child->parent = ( *curMenu ) ;
889 *curMenu = ( *curMenu )->items[cur].child ;
890 if (( *curMenu )->startProc ) {
891 ( *curMenu )->startProc( acomm, *aajcode ) ;
892 }
893 }
894 changes = 2 ;
895 break ;
896 default :
897 changes = 0 ;
898 break ;
899 }
900
901 return changes ;
902 }
903
904
905 /* Page */
906 /*
907 * [$B4X?tL>(B]
908 * auxMenuCopy( )
909 * [$BI=Bj(B]
910 * $B%a%K%e!<%G!<%?$N%3%T!<(B
911 * [$B8F=P7A<0(B]
912 * menuAux *auxMenuCopy( menuAux *orgAux )
913 *
914 * [$B0z?t(B]
915 * $B7?(B : $BL>(B $B>N(B : I O : $B@b(B $BL@(B
916 * menuAux : *orgAux : i : $B%3%T!<85%a%K%e!<%G!<%?(B
917 *
918 * [$BJV$jCM(B]
919 * $B%3%T!<$7$?%a%K%e!<%G!<%?(B
920 *
921 * [$B;HMQ4X?t(B]
922 * auxMenuCopy( )
923 * [$B5!G=(B]
924 * $B;XDj$5$l$?%a%K%e!<%G!<%?$r?75,%P%C%U%!$K%3%T!<$7$F(B
925 * $B$=$N%"%I%l%9$rJV$9!#(B
926 */
927 menuAux *auxMenuCopy(orgAux)
928 menuAux *orgAux;
929 {
930 menuItem *item ;
931 int nitem ;
932 int i ;
933 menuAux *newAux ;
934
935 newAux = ( menuAux * )malloc( sizeof( menuAux )) ;
936 if ( !newAux ) return 0 ;
937
938 memcpy(( char * )newAux, ( char * )orgAux, sizeof( menuAux )) ;
939
940 item = ( menuItem * )malloc( sizeof( menuItem ) * orgAux->nitems ) ;
941 newAux->items = item ;
942 for( i = 0 ; i < orgAux->nitems ; i++ ) {
943 memcpy(( char * )item, ( char * )&orgAux->items[i],
944 sizeof( menuItem )) ;
945 if ( item->child ) {
946 item->child = auxMenuCopy( item->child ) ;
947 }
948 item++ ;
949 }
950 return newAux ;
951 }
952
953 /* Page */
954 /*
955 * [$B4X?tL>(B]
956 * auxMenuString( )
957 * [$BI=Bj(B]
958 * $B%a%K%e!<I=<(MQJ8;zNs$N:n@.(B
959 * [$B8F=P7A<0(B]
960 * int auxMenuString( _XatokRecPtr acomm, menuAux *mAux,
961 * wchar *echoStr, int *echoLen, int *revLen,
962 * int *revPos )
963 *
964 * [$B0z?t(B]
965 * $B7?(B : $BL>(B $B>N(B : I O : $B@b(B $BL@(B
966 * _XatokRecPtr : acomm : i/o : kinput2$BMQJQ49%P%C%U%!(B
967 * menuAux : *mAux : i : $B8=:_$N(B MENU CLASS
968 * wchar : *echoStr: o : $BI=<(J8;zNs3JG<NN0h(B
969 * int : *echoLen : o : $BI=<(J8;zNs$ND9$5(B
970 *
971 * [$BJV$jCM(B]
972 * $BI=<(J8;zNs$ND9$5(B
973 *
974 * [$B;HMQ4X?t(B]
975 * menuAux->stringProc( )
976 * euc2wcs( )
977 * [$B5!G=(B]
978 * $B%a%K%e!<$KI=<($9$k$?$a$NJ8;zNs$r:n@.$9$k!#(B
979 * $B8=:_I=<($7$F$$$k%a%K%e!<$KJ8;zNs$r:n@.$9$k$?$a$N(B
980 * $B4X?t(B(menuAux->stirngProc)$B$,;XDj$5$l$F$$$k>l9g$K$O!"(B
981 * $B$=$N4X?t$r8F$S=P$7$F!"J8;zNs$r:n@.$9$k!#(B
982 */
983 int auxMenuString(acomm, mAux, echoStr, echoLen, revLen, revPos)
984 _XatokRecPtr acomm;
985 menuAux *mAux;
986 wchar *echoStr;
987 int *echoLen;
988 int *revLen;
989 int *revPos;
990 {
991 register menuItem *item ;
992 char tbuf[BUFSIZ*2] ;
993 int len ;
994 int i, es ;
995 char *ep ;
996 int status ;
997
998 item = mAux->items ;
999
1000 *revPos = 0 ;
1001 *revLen = 0 ;
1002 len = 0 ;
1003 bzero( tbuf, sizeof( tbuf )) ;
1004
1005 #ifdef ATOK_DEBUG
1006 printf( "AUX ADDR (STR) 0x%x\n", mAux ) ;
1007 #endif /* ATOK_DEBUG */
1008 if ( mAux->stringProc ) {
1009 #ifdef ATOK_DEBUG
1010 printf( "STRING PROC\n" ) ;
1011 #endif /* ATOK_DEBUG */
1012 len = ( mAux->stringProc )( acomm, mAux,
1013 echoStr, echoLen, revLen, revPos ) ;
1014 return len ;
1015 }
1016 ep = tbuf ;
1017 if ( mAux->str ) {
1018 strcpy( ep, mAux->str ) ;
1019 ep += strlen( ep ) ;
1020 }
1021
1022 #ifdef ATOK_DEBUG
1023 printf( "auxMenuString START(%d)\n", mAux->nitems ) ;
1024 #endif /* ATOK_DEBUG */
1025
1026 for( i = 0 ; i < mAux->nitems ; i++ ) {
1027
1028 #ifdef ATOK_DEBUG
1029 printf( "ITEMS %s\n", item->itemStr ? item->itemStr : "NULL" ) ;
1030 #endif /* ATOK_DEBUG */
1031 if ( item->mode == ON ) {
1032 if ( mAux->cur == i ) {
1033 es = strlen( tbuf ) ;
1034 *revPos = euc2wcs( tbuf, es, echoStr ) ;
1035 #ifdef ATOK_DEBUG
1036 printf( "SET ECHO POS %d\n", *revPos ) ;
1037 #endif /* ATOK_DEBUG */
1038
1039 len += *revPos ;
1040 es = strlen( item->numStr ) ;
1041
1042 *revLen = euc2wcs( item->numStr, es,
1043 &echoStr[*revPos] ) ;
1044 len += *revLen ;
1045 #ifdef ATOK_DEBUG
1046 printf( "SET ECHO LEN %d\n", *revLen ) ;
1047 #endif /* ATOK_DEBUG */
1048 ep = tbuf ;
1049 sprintf( ep, " %s", item->itemStr ) ;
1050 ep += strlen( ep ) ;
1051
1052 REVERSE ;
1053 printf( "%s", item->numStr ) ;
1054 NORMAL ;
1055 printf( " %s", item->itemStr ) ;
1056 }
1057 else {
1058 sprintf( ep, "%s %s", item->numStr, item->itemStr ) ;
1059 ep += strlen( ep ) ;
1060
1061 #ifdef ATOK_DEBUG
1062 printf( "%s", item->numStr ) ;
1063 printf( " %s", item->itemStr ) ;
1064 #endif /* ATOK_DEBUG */
1065 }
1066 sprintf( ep, " " ) ;
1067 ep += strlen( ep ) ;
1068 }
1069 item++ ;
1070 }
1071
1072 if (( es = strlen( tbuf ))) {
1073 es = euc2wcs( tbuf, es, &echoStr[*revPos + *revLen] ) ;
1074 #ifdef ATOK_DEBUG
1075 printf( "STR [%s] set +len = %d\n", tbuf, es ) ;
1076 #endif /* ATOK_DEBUG */
1077 len += es ;
1078 }
1079 *echoLen = len ;
1080 #ifdef ATOK_DEBUG
1081 printf( "len = %d, echoLen = %d\n", len, *echoLen ) ;
1082 #endif /* ATOK_DEBUG */
1083 return len ;
1084 }
1085
1086 /*
1087 * $B$3$3$+$i2<$O(BDEBUG$BMQ(B
1088 */
1089
1090 menuPrint(mAux)
1091 menuAux *mAux;
1092 {
1093 int i ;
1094 register menuItem *item ;
1095
1096 item = mAux->items ;
1097 if ( mAux->str ) {
1098 printf( "%s", mAux->str ) ;
1099 }
1100 for( i = 0 ; i < mAux->nitems ; i++ ) {
1101 if ( item->mode == ON ) {
1102 if ( mAux->cur == i ) {
1103 REVERSE ;
1104 printf( "%s", item->numStr ) ;
1105 NORMAL ;
1106 printf( " %s", item->itemStr ) ;
1107 }
1108 else {
1109 printf( "%s", item->numStr ) ;
1110 printf( " %s", item->itemStr ) ;
1111 }
1112 printf( " " ) ;
1113 }
1114 item++ ;
1115 }
1116 printf( "\n" ) ;
1117 }
1118
1119 #ifdef STAND
1120 void
1121 main (argc, argv)
1122 int argc;
1123 char **argv;
1124 {
1125
1126 char buf[BUFSIZ] ;
1127 menuAux *topMenu ;
1128 menuAux *cur ;
1129
1130 int status ;
1131 int key ;
1132
1133 topMenu = auxTopMenu ;
1134 cur = topMenu ;
1135
1136 while( 1 ) {
1137 menuPrint( cur ) ;
1138 printf( "enter command => " ) ;
1139 gets( buf ) ;
1140 key = buf[0] ;
1141 status = MenuCtrl( &cur, key ) ;
1142 if ( status == 1 ) {
1143 if ( !cur ) {
1144 printf( "Program terminated\n" ) ;
1145 exit( 0 ) ;
1146 }
1147 }
1148 else if ( status == 2 ) {
1149 printf( "go to Chiled\n" ) ;
1150 }
1151 else if ( status != 0 ) {
1152 switch( cur->mode ) {
1153 case M_AUX :
1154 printf( "TOP MENU FUNC\n" ) ;
1155 break ;
1156 case M_CODE :
1157 printf( "CODE MENU FUNC\n" ) ;
1158 break ;
1159 case M_CODESJ :
1160 printf( "SJ FUNC\n" ) ;
1161 break ;
1162 case M_CODEEUC :
1163 printf( "EUC FUNC\n" ) ;
1164 break ;
1165 case M_CODEJIS :
1166 printf( "JIS FUNC\n" ) ;
1167 break ;
1168 case M_CODEKUTEN :
1169 printf( "KUTEN FUNC\n" ) ;
1170 break ;
1171 case M_KIGOU :
1172 printf( "KIGOU FUNC\n" ) ;
1173 break ;
1174 default:
1175 printf( "UNKNOWN\n" ) ;
1176 break ;
1177 }
1178 }
1179 }
1180 }
1181
1182 #endif STAND