1 /*
2  * Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
3  *
4  *                         All Rights Reserved
5  *
6  * Permission to use, copy, modify, and distribute this software and its
7  * documentation for any purpose and without fee is hereby granted,
8  * provided that the above copyright notice appear in all copies and that
9  * both that copyright notice and this permission notice appear in
10  * supporting documentation, and that the name of Digital Equipment
11  * Corporation not be used in advertising or publicity pertaining to
12  * distribution of the software without specific, written prior permission.
13  *
14  *
15  * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
16  * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
17  * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
18  * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
19  * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
20  * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
21  * SOFTWARE.
22  */
23 
24 /*
25  *This file is a part of "kterm" and partially preprocessed and modified
26  *to fit my purpose.
27  * Takanori Watanabe
28  */
29 #include "VTparse.h"
30 
31 #ifdef __STDC__
32 #define Const const
33 #else
34 #define Const /**/
35 #endif
36 #define BUGGY_VTPARSE
37 /*
38  * Stupid Apollo C preprocessor can't handle long lines.  So... To keep
39  * it happy, we put each onto a seperate line....  Sigh...
40  */
41 
42 Const int groundtable[] =
43 {
44 /*	NUL		SOH		STX		ETX	*/
45 CASE_IGNORE,
46 CASE_IGNORE,
47 CASE_IGNORE,
48 CASE_IGNORE,
49 /*	EOT		ENQ		ACK		BEL	*/
50 CASE_IGNORE,
51 CASE_IGNORE,
52 CASE_IGNORE,
53 CASE_BELL,
54 /*	BS		HT		NL		VT	*/
55 CASE_BS,
56 CASE_TAB,
57 CASE_VMOT,
58 CASE_VMOT,
59 /*	NP		CR		SO		SI	*/
60 CASE_VMOT,
61 CASE_CR,
62 CASE_SO,
63 CASE_SI,
64 /*	DLE		DC1		DC2		DC3	*/
65 CASE_IGNORE,
66 CASE_IGNORE,
67 CASE_IGNORE,
68 CASE_IGNORE,
69 /*	DC4		NAK		SYN		ETB	*/
70 CASE_IGNORE,
71 CASE_IGNORE,
72 CASE_IGNORE,
73 CASE_IGNORE,
74 /*	CAN		EM		SUB		ESC	*/
75 CASE_IGNORE,
76 CASE_IGNORE,
77 CASE_IGNORE,
78 CASE_ESC,
79 /*	FS		GS		RS		US	*/
80 CASE_IGNORE,
81 CASE_IGNORE,
82 CASE_IGNORE,
83 CASE_IGNORE,
84 /*	SP		!		"		#	*/
85 CASE_PRINT,
86 CASE_PRINT,
87 CASE_PRINT,
88 CASE_PRINT,
89 /*	$		%		&		'	*/
90 CASE_PRINT,
91 CASE_PRINT,
92 CASE_PRINT,
93 CASE_PRINT,
94 /*	(		)		*		+	*/
95 CASE_PRINT,
96 CASE_PRINT,
97 CASE_PRINT,
98 CASE_PRINT,
99 /*	,		-		.		/	*/
100 CASE_PRINT,
101 CASE_PRINT,
102 CASE_PRINT,
103 CASE_PRINT,
104 /*	0		1		2		3	*/
105 CASE_PRINT,
106 CASE_PRINT,
107 CASE_PRINT,
108 CASE_PRINT,
109 /*	4		5		6		7	*/
110 CASE_PRINT,
111 CASE_PRINT,
112 CASE_PRINT,
113 CASE_PRINT,
114 /*	8		9		:		;	*/
115 CASE_PRINT,
116 CASE_PRINT,
117 CASE_PRINT,
118 CASE_PRINT,
119 /*	<		=		>		?	*/
120 CASE_PRINT,
121 CASE_PRINT,
122 CASE_PRINT,
123 CASE_PRINT,
124 /*	@		A		B		C	*/
125 CASE_PRINT,
126 CASE_PRINT,
127 CASE_PRINT,
128 CASE_PRINT,
129 /*	D		E		F		G	*/
130 CASE_PRINT,
131 CASE_PRINT,
132 CASE_PRINT,
133 CASE_PRINT,
134 /*	H		I		J		K	*/
135 CASE_PRINT,
136 CASE_PRINT,
137 CASE_PRINT,
138 CASE_PRINT,
139 /*	L		M		N		O	*/
140 CASE_PRINT,
141 CASE_PRINT,
142 CASE_PRINT,
143 CASE_PRINT,
144 /*	P		Q		R		S	*/
145 CASE_PRINT,
146 CASE_PRINT,
147 CASE_PRINT,
148 CASE_PRINT,
149 /*	T		U		V		W	*/
150 CASE_PRINT,
151 CASE_PRINT,
152 CASE_PRINT,
153 CASE_PRINT,
154 /*	X		Y		Z		[	*/
155 CASE_PRINT,
156 CASE_PRINT,
157 CASE_PRINT,
158 CASE_PRINT,
159 /*	\		]		^		_	*/
160 CASE_PRINT,
161 CASE_PRINT,
162 CASE_PRINT,
163 CASE_PRINT,
164 /*	`		a		b		c	*/
165 CASE_PRINT,
166 CASE_PRINT,
167 CASE_PRINT,
168 CASE_PRINT,
169 /*	d		e		f		g	*/
170 CASE_PRINT,
171 CASE_PRINT,
172 CASE_PRINT,
173 CASE_PRINT,
174 /*	h		i		j		k	*/
175 CASE_PRINT,
176 CASE_PRINT,
177 CASE_PRINT,
178 CASE_PRINT,
179 /*	l		m		n		o	*/
180 CASE_PRINT,
181 CASE_PRINT,
182 CASE_PRINT,
183 CASE_PRINT,
184 /*	p		q		r		s	*/
185 CASE_PRINT,
186 CASE_PRINT,
187 CASE_PRINT,
188 CASE_PRINT,
189 /*	t		u		v		w	*/
190 CASE_PRINT,
191 CASE_PRINT,
192 CASE_PRINT,
193 CASE_PRINT,
194 /*	x		y		z		{	*/
195 CASE_PRINT,
196 CASE_PRINT,
197 CASE_PRINT,
198 CASE_PRINT,
199 /*	|		}		~		DEL	*/
200 CASE_PRINT,
201 CASE_PRINT,
202 CASE_PRINT,
203 CASE_PRINT,
204 /*      0x80            0x81            0x82            0x83    */
205 CASE_IGNORE,
206 CASE_IGNORE,
207 CASE_IGNORE,
208 CASE_IGNORE,
209 /*      0x84            0x85            0x86            0x87    */
210 CASE_IGNORE,
211 CASE_IGNORE,
212 CASE_IGNORE,
213 CASE_IGNORE,
214 /*      0x88            0x89            0x8a            0x8b    */
215 CASE_IGNORE,
216 CASE_IGNORE,
217 CASE_IGNORE,
218 CASE_IGNORE,
219 /*      0x8c            0x8d            0x8e            0x8f    */
220 CASE_IGNORE,
221 CASE_IGNORE,
222 CASE_SS2,
223 CASE_SS3,
224 /*      0x90            0x91            0x92            0x93    */
225 CASE_IGNORE,
226 CASE_IGNORE,
227 CASE_IGNORE,
228 CASE_IGNORE,
229 /*      0x94            0x95            0x96            0x97    */
230 CASE_IGNORE,
231 CASE_IGNORE,
232 CASE_IGNORE,
233 CASE_IGNORE,
234 /*      0x99            0x99            0x9a            0x9b    */
235 CASE_IGNORE,
236 CASE_IGNORE,
237 CASE_IGNORE,
238 CASE_CSI_STATE,
239 /*      0x9c            0x9d            0x9e            0x9f    */
240 CASE_IGNORE,
241 CASE_IGNORE,
242 CASE_IGNORE,
243 CASE_IGNORE,
244 /*      nobreakspace    exclamdown      cent            sterling        */
245 CASE_PRINT,
246 CASE_PRINT,
247 CASE_PRINT,
248 CASE_PRINT,
249 /*      currency        yen             brokenbar       section         */
250 CASE_PRINT,
251 CASE_PRINT,
252 CASE_PRINT,
253 CASE_PRINT,
254 /*      diaeresis       copyright       ordfeminine     guillemotleft   */
255 CASE_PRINT,
256 CASE_PRINT,
257 CASE_PRINT,
258 CASE_PRINT,
259 /*      notsign         hyphen          registered      macron          */
260 CASE_PRINT,
261 CASE_PRINT,
262 CASE_PRINT,
263 CASE_PRINT,
264 /*      degree          plusminus       twosuperior     threesuperior   */
265 CASE_PRINT,
266 CASE_PRINT,
267 CASE_PRINT,
268 CASE_PRINT,
269 /*      acute           mu              paragraph       periodcentered  */
270 CASE_PRINT,
271 CASE_PRINT,
272 CASE_PRINT,
273 CASE_PRINT,
274 /*      cedilla         onesuperior     masculine       guillemotright  */
275 CASE_PRINT,
276 CASE_PRINT,
277 CASE_PRINT,
278 CASE_PRINT,
279 /*      onequarter      onehalf         threequarters   questiondown    */
280 CASE_PRINT,
281 CASE_PRINT,
282 CASE_PRINT,
283 CASE_PRINT,
284 /*      Agrave          Aacute          Acircumflex     Atilde          */
285 CASE_PRINT,
286 CASE_PRINT,
287 CASE_PRINT,
288 CASE_PRINT,
289 /*      Adiaeresis      Aring           AE              Ccedilla        */
290 CASE_PRINT,
291 CASE_PRINT,
292 CASE_PRINT,
293 CASE_PRINT,
294 /*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
295 CASE_PRINT,
296 CASE_PRINT,
297 CASE_PRINT,
298 CASE_PRINT,
299 /*      Igrave          Iacute          Icircumflex     Idiaeresis      */
300 CASE_PRINT,
301 CASE_PRINT,
302 CASE_PRINT,
303 CASE_PRINT,
304 /*      Eth             Ntilde          Ograve          Oacute          */
305 CASE_PRINT,
306 CASE_PRINT,
307 CASE_PRINT,
308 CASE_PRINT,
309 /*      Ocircumflex     Otilde          Odiaeresis      multiply        */
310 CASE_PRINT,
311 CASE_PRINT,
312 CASE_PRINT,
313 CASE_PRINT,
314 /*      Ooblique        Ugrave          Uacute          Ucircumflex     */
315 CASE_PRINT,
316 CASE_PRINT,
317 CASE_PRINT,
318 CASE_PRINT,
319 /*      Udiaeresis      Yacute          Thorn           ssharp          */
320 CASE_PRINT,
321 CASE_PRINT,
322 CASE_PRINT,
323 CASE_PRINT,
324 /*      agrave          aacute          acircumflex     atilde          */
325 CASE_PRINT,
326 CASE_PRINT,
327 CASE_PRINT,
328 CASE_PRINT,
329 /*      adiaeresis      aring           ae              ccedilla        */
330 CASE_PRINT,
331 CASE_PRINT,
332 CASE_PRINT,
333 CASE_PRINT,
334 /*      egrave          eacute          ecircumflex     ediaeresis      */
335 CASE_PRINT,
336 CASE_PRINT,
337 CASE_PRINT,
338 CASE_PRINT,
339 /*      igrave          iacute          icircumflex     idiaeresis      */
340 CASE_PRINT,
341 CASE_PRINT,
342 CASE_PRINT,
343 CASE_PRINT,
344 /*      eth             ntilde          ograve          oacute          */
345 CASE_PRINT,
346 CASE_PRINT,
347 CASE_PRINT,
348 CASE_PRINT,
349 /*      ocircumflex     otilde          odiaeresis      division        */
350 CASE_PRINT,
351 CASE_PRINT,
352 CASE_PRINT,
353 CASE_PRINT,
354 /*      oslash          ugrave          uacute          ucircumflex     */
355 CASE_PRINT,
356 CASE_PRINT,
357 CASE_PRINT,
358 CASE_PRINT,
359 /*      udiaeresis      yacute          thorn           ydiaeresis      */
360 CASE_PRINT,
361 CASE_PRINT,
362 CASE_PRINT,
363 CASE_PRINT,
364 };
365 
366 Const int csitable[] =		/* ESC [ */
367 {
368 /*	NUL		SOH		STX		ETX	*/
369 CASE_IGNORE,
370 CASE_IGNORE,
371 CASE_IGNORE,
372 CASE_IGNORE,
373 /*	EOT		ENQ		ACK		BEL	*/
374 CASE_IGNORE,
375 CASE_IGNORE,
376 CASE_IGNORE,
377 CASE_BELL,
378 /*	BS		HT		NL		VT	*/
379 CASE_BS,
380 CASE_TAB,
381 CASE_VMOT,
382 CASE_VMOT,
383 /*	NP		CR		SO		SI	*/
384 CASE_VMOT,
385 CASE_CR,
386 CASE_SO,
387 CASE_SI,
388 /*	DLE		DC1		DC2		DC3	*/
389 CASE_IGNORE,
390 CASE_IGNORE,
391 CASE_IGNORE,
392 CASE_IGNORE,
393 /*	DC4		NAK		SYN		ETB	*/
394 CASE_IGNORE,
395 CASE_IGNORE,
396 CASE_IGNORE,
397 CASE_IGNORE,
398 /*	CAN		EM		SUB		ESC	*/
399 CASE_IGNORE,
400 CASE_IGNORE,
401 CASE_IGNORE,
402 CASE_ESC,
403 /*	FS		GS		RS		US	*/
404 CASE_IGNORE,
405 CASE_IGNORE,
406 CASE_IGNORE,
407 CASE_IGNORE,
408 /*	SP		!		"		#	*/
409 #ifndef BUGGY_VTPARSE
410 CASE_ESC_IGNORE,
411 #else
412 CASE_ESC_DIGIT,
413 #endif
414 CASE_ESC_IGNORE,
415 CASE_ESC_IGNORE,
416 CASE_ESC_IGNORE,
417 /*	$		%		&		'	*/
418 CASE_ESC_IGNORE,
419 CASE_ESC_IGNORE,
420 CASE_ESC_IGNORE,
421 CASE_ESC_IGNORE,
422 /*	(		)		*		+	*/
423 CASE_ESC_IGNORE,
424 CASE_ESC_IGNORE,
425 CASE_ESC_IGNORE,
426 CASE_ESC_IGNORE,
427 /*	,		-		.		/	*/
428 CASE_ESC_IGNORE,
429 CASE_ESC_IGNORE,
430 CASE_ESC_IGNORE,
431 CASE_ESC_IGNORE,
432 /*	0		1		2		3	*/
433 CASE_ESC_DIGIT,
434 CASE_ESC_DIGIT,
435 CASE_ESC_DIGIT,
436 CASE_ESC_DIGIT,
437 /*	4		5		6		7	*/
438 CASE_ESC_DIGIT,
439 CASE_ESC_DIGIT,
440 CASE_ESC_DIGIT,
441 CASE_ESC_DIGIT,
442 /*	8		9		:		;	*/
443 CASE_ESC_DIGIT,
444 CASE_ESC_DIGIT,
445 CASE_IGNORE,
446 CASE_ESC_SEMI,
447 /*	<		=		>		?	*/
448 CASE_IGNORE,
449 CASE_IGNORE,
450 CASE_IGNORE,
451 CASE_DEC_STATE,
452 /*	@		A		B		C	*/
453 CASE_ICH,
454 CASE_CUU,
455 CASE_CUD,
456 CASE_CUF,
457 /*	D		E		F		G	*/
458 CASE_CUB,
459 CASE_GROUND_STATE,
460 CASE_GROUND_STATE,
461 CASE_GROUND_STATE,
462 /*	H		I		J		K	*/
463 CASE_CUP,
464 CASE_GROUND_STATE,
465 CASE_ED,
466 CASE_EL,
467 /*	L		M		N		O	*/
468 CASE_IL,
469 CASE_DL,
470 CASE_GROUND_STATE,
471 CASE_GROUND_STATE,
472 /*	P		Q		R		S	*/
473 CASE_DCH,
474 CASE_GROUND_STATE,
475 CASE_GROUND_STATE,
476 CASE_GROUND_STATE,
477 /*	T		U		V		W	*/
478 CASE_TRACK_MOUSE,
479 CASE_GROUND_STATE,
480 CASE_GROUND_STATE,
481 CASE_GROUND_STATE,
482 /*	X		Y		Z		[	*/
483 CASE_GROUND_STATE,
484 CASE_GROUND_STATE,
485 CASE_GROUND_STATE,
486 CASE_GROUND_STATE,
487 /*	\		]		^		_	*/
488 CASE_GROUND_STATE,
489 CASE_GROUND_STATE,
490 CASE_GROUND_STATE,
491 CASE_GROUND_STATE,
492 #ifndef BUGGY_VTPARSE
493 /*	`		a		b		c	*/
494 CASE_GROUND_STATE,
495 CASE_GROUND_STATE,
496 CASE_GROUND_STATE,
497 CASE_DA1,
498 #else
499 /*	`		a		b		c	*/
500 CASE_GROUND_STATE,
501 CASE_CUU,
502 CASE_CUD,
503 CASE_CUF,
504 #endif
505 /*	d		e		f		g	*/
506 #ifndef BUGGY_VTPARSE
507 CASE_GROUND_STATE,
508 #else
509 CASE_CUB,
510 #endif
511 CASE_GROUND_STATE,
512 CASE_CUP,
513 CASE_TBC,
514 /*	h		i		j		k	*/
515 CASE_SET,
516 CASE_GROUND_STATE,
517 #ifndef BUGGY_VTPARSE
518 CASE_GROUND_STATE,
519 #else
520 CASE_ED,
521 #endif
522 CASE_GROUND_STATE,
523 /*	l		m		n		o	*/
524 CASE_RST,
525 CASE_SGR,
526 CASE_CPR,
527 CASE_GROUND_STATE,
528 /*	p		q		r		s	*/
529 CASE_MY_GRAPHIC_CMD,
530 CASE_GROUND_STATE,
531 CASE_DECSTBM,
532 CASE_DECSC,
533 /*	t		u		v		w	*/
534 CASE_GROUND_STATE,
535 CASE_DECRC,
536 CASE_GROUND_STATE,
537 CASE_GROUND_STATE,
538 /*	x		y		z		{	*/
539 CASE_DECREQTPARM,
540 CASE_GROUND_STATE,
541 CASE_GROUND_STATE,
542 CASE_GROUND_STATE,
543 /*	|		}		~		DEL	*/
544 CASE_GROUND_STATE,
545 CASE_GROUND_STATE,
546 CASE_GROUND_STATE,
547 CASE_GROUND_STATE,
548 /*      0x80            0x81            0x82            0x83    */
549 CASE_IGNORE,
550 CASE_IGNORE,
551 CASE_IGNORE,
552 CASE_IGNORE,
553 /*      0x84            0x85            0x86            0x87    */
554 CASE_IGNORE,
555 CASE_IGNORE,
556 CASE_IGNORE,
557 CASE_IGNORE,
558 /*      0x88            0x89            0x8a            0x8b    */
559 CASE_IGNORE,
560 CASE_IGNORE,
561 CASE_IGNORE,
562 CASE_IGNORE,
563 /*      0x8c            0x8d            0x8e            0x8f    */
564 CASE_IGNORE,
565 CASE_IGNORE,
566 CASE_IGNORE,
567 CASE_IGNORE,
568 /*      0x90            0x91            0x92            0x93    */
569 CASE_IGNORE,
570 CASE_IGNORE,
571 CASE_IGNORE,
572 CASE_IGNORE,
573 /*      0x94            0x95            0x96            0x97    */
574 CASE_IGNORE,
575 CASE_IGNORE,
576 CASE_IGNORE,
577 CASE_IGNORE,
578 /*      0x99            0x99            0x9a            0x9b    */
579 CASE_IGNORE,
580 CASE_IGNORE,
581 CASE_IGNORE,
582 CASE_IGNORE,
583 /*      0x9c            0x9d            0x9e            0x9f    */
584 CASE_IGNORE,
585 CASE_IGNORE,
586 CASE_IGNORE,
587 CASE_IGNORE,
588 /*      nobreakspace    exclamdown      cent            sterling        */
589 CASE_GROUND_STATE,
590 CASE_GROUND_STATE,
591 CASE_GROUND_STATE,
592 CASE_GROUND_STATE,
593 /*      currency        yen             brokenbar       section         */
594 CASE_GROUND_STATE,
595 CASE_GROUND_STATE,
596 CASE_GROUND_STATE,
597 CASE_GROUND_STATE,
598 /*      diaeresis       copyright       ordfeminine     guillemotleft   */
599 CASE_GROUND_STATE,
600 CASE_GROUND_STATE,
601 CASE_GROUND_STATE,
602 CASE_GROUND_STATE,
603 /*      notsign         hyphen          registered      macron          */
604 CASE_GROUND_STATE,
605 CASE_GROUND_STATE,
606 CASE_GROUND_STATE,
607 CASE_GROUND_STATE,
608 /*      degree          plusminus       twosuperior     threesuperior   */
609 CASE_GROUND_STATE,
610 CASE_GROUND_STATE,
611 CASE_GROUND_STATE,
612 CASE_GROUND_STATE,
613 /*      acute           mu              paragraph       periodcentered  */
614 CASE_GROUND_STATE,
615 CASE_GROUND_STATE,
616 CASE_GROUND_STATE,
617 CASE_GROUND_STATE,
618 /*      cedilla         onesuperior     masculine       guillemotright  */
619 CASE_GROUND_STATE,
620 CASE_GROUND_STATE,
621 CASE_GROUND_STATE,
622 CASE_GROUND_STATE,
623 /*      onequarter      onehalf         threequarters   questiondown    */
624 CASE_GROUND_STATE,
625 CASE_GROUND_STATE,
626 CASE_GROUND_STATE,
627 CASE_GROUND_STATE,
628 /*      Agrave          Aacute          Acircumflex     Atilde          */
629 CASE_GROUND_STATE,
630 CASE_GROUND_STATE,
631 CASE_GROUND_STATE,
632 CASE_GROUND_STATE,
633 /*      Adiaeresis      Aring           AE              Ccedilla        */
634 CASE_GROUND_STATE,
635 CASE_GROUND_STATE,
636 CASE_GROUND_STATE,
637 CASE_GROUND_STATE,
638 /*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
639 CASE_GROUND_STATE,
640 CASE_GROUND_STATE,
641 CASE_GROUND_STATE,
642 CASE_GROUND_STATE,
643 /*      Igrave          Iacute          Icircumflex     Idiaeresis      */
644 CASE_GROUND_STATE,
645 CASE_GROUND_STATE,
646 CASE_GROUND_STATE,
647 CASE_GROUND_STATE,
648 /*      Eth             Ntilde          Ograve          Oacute          */
649 CASE_GROUND_STATE,
650 CASE_GROUND_STATE,
651 CASE_GROUND_STATE,
652 CASE_GROUND_STATE,
653 /*      Ocircumflex     Otilde          Odiaeresis      multiply        */
654 CASE_GROUND_STATE,
655 CASE_GROUND_STATE,
656 CASE_GROUND_STATE,
657 CASE_GROUND_STATE,
658 /*      Ooblique        Ugrave          Uacute          Ucircumflex     */
659 CASE_GROUND_STATE,
660 CASE_GROUND_STATE,
661 CASE_GROUND_STATE,
662 CASE_GROUND_STATE,
663 /*      Udiaeresis      Yacute          Thorn           ssharp          */
664 CASE_GROUND_STATE,
665 CASE_GROUND_STATE,
666 CASE_GROUND_STATE,
667 CASE_GROUND_STATE,
668 /*      agrave          aacute          acircumflex     atilde          */
669 CASE_GROUND_STATE,
670 CASE_GROUND_STATE,
671 CASE_GROUND_STATE,
672 CASE_GROUND_STATE,
673 /*      adiaeresis      aring           ae              ccedilla        */
674 CASE_GROUND_STATE,
675 CASE_GROUND_STATE,
676 CASE_GROUND_STATE,
677 CASE_GROUND_STATE,
678 /*      egrave          eacute          ecircumflex     ediaeresis      */
679 CASE_GROUND_STATE,
680 CASE_GROUND_STATE,
681 CASE_GROUND_STATE,
682 CASE_GROUND_STATE,
683 /*      igrave          iacute          icircumflex     idiaeresis      */
684 CASE_GROUND_STATE,
685 CASE_GROUND_STATE,
686 CASE_GROUND_STATE,
687 CASE_GROUND_STATE,
688 /*      eth             ntilde          ograve          oacute          */
689 CASE_GROUND_STATE,
690 CASE_GROUND_STATE,
691 CASE_GROUND_STATE,
692 CASE_GROUND_STATE,
693 /*      ocircumflex     otilde          odiaeresis      division        */
694 CASE_GROUND_STATE,
695 CASE_GROUND_STATE,
696 CASE_GROUND_STATE,
697 CASE_GROUND_STATE,
698 /*      oslash          ugrave          uacute          ucircumflex     */
699 CASE_GROUND_STATE,
700 CASE_GROUND_STATE,
701 CASE_GROUND_STATE,
702 CASE_GROUND_STATE,
703 /*      udiaeresis      yacute          thorn           ydiaeresis      */
704 CASE_GROUND_STATE,
705 CASE_GROUND_STATE,
706 CASE_GROUND_STATE,
707 CASE_GROUND_STATE,
708 };
709 
710 Const int dectable[] =		/* ESC [ ? */
711 {
712 /*	NUL		SOH		STX		ETX	*/
713 CASE_IGNORE,
714 CASE_IGNORE,
715 CASE_IGNORE,
716 CASE_IGNORE,
717 /*	EOT		ENQ		ACK		BEL	*/
718 CASE_IGNORE,
719 CASE_IGNORE,
720 CASE_IGNORE,
721 CASE_BELL,
722 /*	BS		HT		NL		VT	*/
723 CASE_BS,
724 CASE_TAB,
725 CASE_VMOT,
726 CASE_VMOT,
727 /*	NP		CR		SO		SI	*/
728 CASE_VMOT,
729 CASE_CR,
730 CASE_SO,
731 CASE_SI,
732 /*	DLE		DC1		DC2		DC3	*/
733 CASE_IGNORE,
734 CASE_IGNORE,
735 CASE_IGNORE,
736 CASE_IGNORE,
737 /*	DC4		NAK		SYN		ETB	*/
738 CASE_IGNORE,
739 CASE_IGNORE,
740 CASE_IGNORE,
741 CASE_IGNORE,
742 /*	CAN		EM		SUB		ESC	*/
743 CASE_IGNORE,
744 CASE_IGNORE,
745 CASE_IGNORE,
746 CASE_ESC,
747 /*	FS		GS		RS		US	*/
748 CASE_IGNORE,
749 CASE_IGNORE,
750 CASE_IGNORE,
751 CASE_IGNORE,
752 /*	SP		!		"		#	*/
753 CASE_ESC_IGNORE,
754 CASE_ESC_IGNORE,
755 CASE_ESC_IGNORE,
756 CASE_ESC_IGNORE,
757 /*	$		%		&		'	*/
758 CASE_ESC_IGNORE,
759 CASE_ESC_IGNORE,
760 CASE_ESC_IGNORE,
761 CASE_ESC_IGNORE,
762 /*	(		)		*		+	*/
763 CASE_ESC_IGNORE,
764 CASE_ESC_IGNORE,
765 CASE_ESC_IGNORE,
766 CASE_ESC_IGNORE,
767 /*	,		-		.		/	*/
768 CASE_ESC_IGNORE,
769 CASE_ESC_IGNORE,
770 CASE_ESC_IGNORE,
771 CASE_ESC_IGNORE,
772 /*	0		1		2		3	*/
773 CASE_ESC_DIGIT,
774 CASE_ESC_DIGIT,
775 CASE_ESC_DIGIT,
776 CASE_ESC_DIGIT,
777 /*	4		5		6		7	*/
778 CASE_ESC_DIGIT,
779 CASE_ESC_DIGIT,
780 CASE_ESC_DIGIT,
781 CASE_ESC_DIGIT,
782 /*	8		9		:		;	*/
783 CASE_ESC_DIGIT,
784 CASE_ESC_DIGIT,
785 CASE_IGNORE,
786 CASE_ESC_SEMI,
787 /*	<		=		>		?	*/
788 CASE_GROUND_STATE,
789 CASE_GROUND_STATE,
790 CASE_GROUND_STATE,
791 CASE_GROUND_STATE,
792 /*	@		A		B		C	*/
793 CASE_GROUND_STATE,
794 CASE_GROUND_STATE,
795 CASE_GROUND_STATE,
796 CASE_GROUND_STATE,
797 /*	D		E		F		G	*/
798 CASE_GROUND_STATE,
799 CASE_GROUND_STATE,
800 CASE_GROUND_STATE,
801 CASE_GROUND_STATE,
802 /*	H		I		J		K	*/
803 CASE_GROUND_STATE,
804 CASE_GROUND_STATE,
805 CASE_GROUND_STATE,
806 CASE_GROUND_STATE,
807 /*	L		M		N		O	*/
808 CASE_GROUND_STATE,
809 CASE_GROUND_STATE,
810 CASE_GROUND_STATE,
811 CASE_GROUND_STATE,
812 /*	P		Q		R		S	*/
813 CASE_GROUND_STATE,
814 CASE_GROUND_STATE,
815 CASE_GROUND_STATE,
816 CASE_GROUND_STATE,
817 /*	T		U		V		W	*/
818 CASE_GROUND_STATE,
819 CASE_GROUND_STATE,
820 CASE_GROUND_STATE,
821 CASE_GROUND_STATE,
822 /*	X		Y		Z		[	*/
823 CASE_GROUND_STATE,
824 CASE_GROUND_STATE,
825 CASE_GROUND_STATE,
826 CASE_GROUND_STATE,
827 /*	\		]		^		_	*/
828 CASE_GROUND_STATE,
829 CASE_GROUND_STATE,
830 CASE_GROUND_STATE,
831 CASE_GROUND_STATE,
832 /*	`		a		b		c	*/
833 CASE_GROUND_STATE,
834 CASE_GROUND_STATE,
835 CASE_GROUND_STATE,
836 CASE_GROUND_STATE,
837 /*	d		e		f		g	*/
838 CASE_GROUND_STATE,
839 CASE_GROUND_STATE,
840 CASE_GROUND_STATE,
841 CASE_GROUND_STATE,
842 /*	h		i		j		k	*/
843 CASE_DECSET,
844 CASE_GROUND_STATE,
845 CASE_GROUND_STATE,
846 CASE_GROUND_STATE,
847 /*	l		m		n		o	*/
848 CASE_DECRST,
849 CASE_GROUND_STATE,
850 CASE_GROUND_STATE,
851 CASE_GROUND_STATE,
852 /*	p		q		r		s	*/
853 CASE_GROUND_STATE,
854 CASE_GROUND_STATE,
855 CASE_XTERM_RESTORE,
856 CASE_XTERM_SAVE,
857 /*	t		u		v		w	*/
858 CASE_GROUND_STATE,
859 CASE_GROUND_STATE,
860 CASE_GROUND_STATE,
861 CASE_GROUND_STATE,
862 /*	x		y		z		{	*/
863 CASE_GROUND_STATE,
864 CASE_GROUND_STATE,
865 CASE_GROUND_STATE,
866 CASE_GROUND_STATE,
867 /*	|		}		~		DEL	*/
868 CASE_GROUND_STATE,
869 CASE_GROUND_STATE,
870 CASE_GROUND_STATE,
871 CASE_GROUND_STATE,
872 /*      0x80            0x81            0x82            0x83    */
873 CASE_IGNORE,
874 CASE_IGNORE,
875 CASE_IGNORE,
876 CASE_IGNORE,
877 /*      0x84            0x85            0x86            0x87    */
878 CASE_IGNORE,
879 CASE_IGNORE,
880 CASE_IGNORE,
881 CASE_IGNORE,
882 /*      0x88            0x89            0x8a            0x8b    */
883 CASE_IGNORE,
884 CASE_IGNORE,
885 CASE_IGNORE,
886 CASE_IGNORE,
887 /*      0x8c            0x8d            0x8e            0x8f    */
888 CASE_IGNORE,
889 CASE_IGNORE,
890 CASE_IGNORE,
891 CASE_IGNORE,
892 /*      0x90            0x91            0x92            0x93    */
893 CASE_IGNORE,
894 CASE_IGNORE,
895 CASE_IGNORE,
896 CASE_IGNORE,
897 /*      0x94            0x95            0x96            0x97    */
898 CASE_IGNORE,
899 CASE_IGNORE,
900 CASE_IGNORE,
901 CASE_IGNORE,
902 /*      0x99            0x99            0x9a            0x9b    */
903 CASE_IGNORE,
904 CASE_IGNORE,
905 CASE_IGNORE,
906 CASE_IGNORE,
907 /*      0x9c            0x9d            0x9e            0x9f    */
908 CASE_IGNORE,
909 CASE_IGNORE,
910 CASE_IGNORE,
911 CASE_IGNORE,
912 /*      nobreakspace    exclamdown      cent            sterling        */
913 CASE_GROUND_STATE,
914 CASE_GROUND_STATE,
915 CASE_GROUND_STATE,
916 CASE_GROUND_STATE,
917 /*      currency        yen             brokenbar       section         */
918 CASE_GROUND_STATE,
919 CASE_GROUND_STATE,
920 CASE_GROUND_STATE,
921 CASE_GROUND_STATE,
922 /*      diaeresis       copyright       ordfeminine     guillemotleft   */
923 CASE_GROUND_STATE,
924 CASE_GROUND_STATE,
925 CASE_GROUND_STATE,
926 CASE_GROUND_STATE,
927 /*      notsign         hyphen          registered      macron          */
928 CASE_GROUND_STATE,
929 CASE_GROUND_STATE,
930 CASE_GROUND_STATE,
931 CASE_GROUND_STATE,
932 /*      degree          plusminus       twosuperior     threesuperior   */
933 CASE_GROUND_STATE,
934 CASE_GROUND_STATE,
935 CASE_GROUND_STATE,
936 CASE_GROUND_STATE,
937 /*      acute           mu              paragraph       periodcentered  */
938 CASE_GROUND_STATE,
939 CASE_GROUND_STATE,
940 CASE_GROUND_STATE,
941 CASE_GROUND_STATE,
942 /*      cedilla         onesuperior     masculine       guillemotright  */
943 CASE_GROUND_STATE,
944 CASE_GROUND_STATE,
945 CASE_GROUND_STATE,
946 CASE_GROUND_STATE,
947 /*      onequarter      onehalf         threequarters   questiondown    */
948 CASE_GROUND_STATE,
949 CASE_GROUND_STATE,
950 CASE_GROUND_STATE,
951 CASE_GROUND_STATE,
952 /*      Agrave          Aacute          Acircumflex     Atilde          */
953 CASE_GROUND_STATE,
954 CASE_GROUND_STATE,
955 CASE_GROUND_STATE,
956 CASE_GROUND_STATE,
957 /*      Adiaeresis      Aring           AE              Ccedilla        */
958 CASE_GROUND_STATE,
959 CASE_GROUND_STATE,
960 CASE_GROUND_STATE,
961 CASE_GROUND_STATE,
962 /*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
963 CASE_GROUND_STATE,
964 CASE_GROUND_STATE,
965 CASE_GROUND_STATE,
966 CASE_GROUND_STATE,
967 /*      Igrave          Iacute          Icircumflex     Idiaeresis      */
968 CASE_GROUND_STATE,
969 CASE_GROUND_STATE,
970 CASE_GROUND_STATE,
971 CASE_GROUND_STATE,
972 /*      Eth             Ntilde          Ograve          Oacute          */
973 CASE_GROUND_STATE,
974 CASE_GROUND_STATE,
975 CASE_GROUND_STATE,
976 CASE_GROUND_STATE,
977 /*      Ocircumflex     Otilde          Odiaeresis      multiply        */
978 CASE_GROUND_STATE,
979 CASE_GROUND_STATE,
980 CASE_GROUND_STATE,
981 CASE_GROUND_STATE,
982 /*      Ooblique        Ugrave          Uacute          Ucircumflex     */
983 CASE_GROUND_STATE,
984 CASE_GROUND_STATE,
985 CASE_GROUND_STATE,
986 CASE_GROUND_STATE,
987 /*      Udiaeresis      Yacute          Thorn           ssharp          */
988 CASE_GROUND_STATE,
989 CASE_GROUND_STATE,
990 CASE_GROUND_STATE,
991 CASE_GROUND_STATE,
992 /*      agrave          aacute          acircumflex     atilde          */
993 CASE_GROUND_STATE,
994 CASE_GROUND_STATE,
995 CASE_GROUND_STATE,
996 CASE_GROUND_STATE,
997 /*      adiaeresis      aring           ae              ccedilla        */
998 CASE_GROUND_STATE,
999 CASE_GROUND_STATE,
1000 CASE_GROUND_STATE,
1001 CASE_GROUND_STATE,
1002 /*      egrave          eacute          ecircumflex     ediaeresis      */
1003 CASE_GROUND_STATE,
1004 CASE_GROUND_STATE,
1005 CASE_GROUND_STATE,
1006 CASE_GROUND_STATE,
1007 /*      igrave          iacute          icircumflex     idiaeresis      */
1008 CASE_GROUND_STATE,
1009 CASE_GROUND_STATE,
1010 CASE_GROUND_STATE,
1011 CASE_GROUND_STATE,
1012 /*      eth             ntilde          ograve          oacute          */
1013 CASE_GROUND_STATE,
1014 CASE_GROUND_STATE,
1015 CASE_GROUND_STATE,
1016 CASE_GROUND_STATE,
1017 /*      ocircumflex     otilde          odiaeresis      division        */
1018 CASE_GROUND_STATE,
1019 CASE_GROUND_STATE,
1020 CASE_GROUND_STATE,
1021 CASE_GROUND_STATE,
1022 /*      oslash          ugrave          uacute          ucircumflex     */
1023 CASE_GROUND_STATE,
1024 CASE_GROUND_STATE,
1025 CASE_GROUND_STATE,
1026 CASE_GROUND_STATE,
1027 /*      udiaeresis      yacute          thorn           ydiaeresis      */
1028 CASE_GROUND_STATE,
1029 CASE_GROUND_STATE,
1030 CASE_GROUND_STATE,
1031 CASE_GROUND_STATE,
1032 };
1033 
1034 Const int eigtable[] =		/* CASE_ESC_IGNORE */
1035 {
1036 /*	NUL		SOH		STX		ETX	*/
1037 CASE_IGNORE,
1038 CASE_IGNORE,
1039 CASE_IGNORE,
1040 CASE_IGNORE,
1041 /*	EOT		ENQ		ACK		BEL	*/
1042 CASE_IGNORE,
1043 CASE_IGNORE,
1044 CASE_IGNORE,
1045 CASE_BELL,
1046 /*	BS		HT		NL		VT	*/
1047 CASE_BS,
1048 CASE_TAB,
1049 CASE_VMOT,
1050 CASE_VMOT,
1051 /*	NP		CR		SO		SI	*/
1052 CASE_VMOT,
1053 CASE_CR,
1054 CASE_SO,
1055 CASE_SI,
1056 /*	DLE		DC1		DC2		DC3	*/
1057 CASE_IGNORE,
1058 CASE_IGNORE,
1059 CASE_IGNORE,
1060 CASE_IGNORE,
1061 /*	DC4		NAK		SYN		ETB	*/
1062 CASE_IGNORE,
1063 CASE_IGNORE,
1064 CASE_IGNORE,
1065 CASE_IGNORE,
1066 /*	CAN		EM		SUB		ESC	*/
1067 CASE_IGNORE,
1068 CASE_IGNORE,
1069 CASE_IGNORE,
1070 CASE_ESC,
1071 /*	FS		GS		RS		US	*/
1072 CASE_IGNORE,
1073 CASE_IGNORE,
1074 CASE_IGNORE,
1075 CASE_IGNORE,
1076 /*	SP		!		"		#	*/
1077 CASE_IGNORE,
1078 CASE_IGNORE,
1079 CASE_IGNORE,
1080 CASE_IGNORE,
1081 /*	$		%		&		'	*/
1082 CASE_IGNORE,
1083 CASE_IGNORE,
1084 CASE_IGNORE,
1085 CASE_IGNORE,
1086 /*	(		)		*		+	*/
1087 CASE_IGNORE,
1088 CASE_IGNORE,
1089 CASE_IGNORE,
1090 CASE_IGNORE,
1091 /*	,
1092 	-		.		/	*/
1093 CASE_IGNORE,
1094 CASE_IGNORE,
1095 CASE_IGNORE,
1096 CASE_IGNORE,
1097 /*	0		1		2		3	*/
1098 CASE_GROUND_STATE,
1099 CASE_GROUND_STATE,
1100 CASE_GROUND_STATE,
1101 CASE_GROUND_STATE,
1102 /*	4		5		6		7	*/
1103 CASE_GROUND_STATE,
1104 CASE_GROUND_STATE,
1105 CASE_GROUND_STATE,
1106 CASE_GROUND_STATE,
1107 /*	8		9		:		;	*/
1108 CASE_GROUND_STATE,
1109 CASE_GROUND_STATE,
1110 CASE_GROUND_STATE,
1111 CASE_GROUND_STATE,
1112 /*	<		=		>		?	*/
1113 CASE_GROUND_STATE,
1114 CASE_GROUND_STATE,
1115 CASE_GROUND_STATE,
1116 CASE_GROUND_STATE,
1117 /*	@		A		B		C	*/
1118 CASE_GROUND_STATE,
1119 CASE_GROUND_STATE,
1120 CASE_GROUND_STATE,
1121 CASE_GROUND_STATE,
1122 /*	D		E		F		G	*/
1123 CASE_GROUND_STATE,
1124 CASE_GROUND_STATE,
1125 CASE_GROUND_STATE,
1126 CASE_GROUND_STATE,
1127 /*	H		I		J		K	*/
1128 CASE_GROUND_STATE,
1129 CASE_GROUND_STATE,
1130 CASE_GROUND_STATE,
1131 CASE_GROUND_STATE,
1132 /*	L		M		N		O	*/
1133 CASE_GROUND_STATE,
1134 CASE_GROUND_STATE,
1135 CASE_GROUND_STATE,
1136 CASE_GROUND_STATE,
1137 /*	P		Q		R		S	*/
1138 CASE_GROUND_STATE,
1139 CASE_GROUND_STATE,
1140 CASE_GROUND_STATE,
1141 CASE_GROUND_STATE,
1142 /*	T		U		V		W	*/
1143 CASE_GROUND_STATE,
1144 CASE_GROUND_STATE,
1145 CASE_GROUND_STATE,
1146 CASE_GROUND_STATE,
1147 /*	X		Y		Z		[	*/
1148 CASE_GROUND_STATE,
1149 CASE_GROUND_STATE,
1150 CASE_GROUND_STATE,
1151 CASE_GROUND_STATE,
1152 /*	\		]		^		_	*/
1153 CASE_GROUND_STATE,
1154 CASE_GROUND_STATE,
1155 CASE_GROUND_STATE,
1156 CASE_GROUND_STATE,
1157 /*	`		a		b		c	*/
1158 CASE_GROUND_STATE,
1159 CASE_GROUND_STATE,
1160 CASE_GROUND_STATE,
1161 CASE_GROUND_STATE,
1162 /*	d		e		f		g	*/
1163 CASE_GROUND_STATE,
1164 CASE_GROUND_STATE,
1165 CASE_GROUND_STATE,
1166 CASE_GROUND_STATE,
1167 /*	h		i		j		k	*/
1168 CASE_GROUND_STATE,
1169 CASE_GROUND_STATE,
1170 CASE_GROUND_STATE,
1171 CASE_GROUND_STATE,
1172 /*	l		m		n		o	*/
1173 CASE_GROUND_STATE,
1174 CASE_GROUND_STATE,
1175 CASE_GROUND_STATE,
1176 CASE_GROUND_STATE,
1177 /*	p		q		r		s	*/
1178 CASE_GROUND_STATE,
1179 CASE_GROUND_STATE,
1180 CASE_GROUND_STATE,
1181 CASE_GROUND_STATE,
1182 /*	t		u		v		w	*/
1183 CASE_GROUND_STATE,
1184 CASE_GROUND_STATE,
1185 CASE_GROUND_STATE,
1186 CASE_GROUND_STATE,
1187 /*	x		y		z		{	*/
1188 CASE_GROUND_STATE,
1189 CASE_GROUND_STATE,
1190 CASE_GROUND_STATE,
1191 CASE_GROUND_STATE,
1192 /*	|		}		~		DEL	*/
1193 CASE_GROUND_STATE,
1194 CASE_GROUND_STATE,
1195 CASE_GROUND_STATE,
1196 CASE_GROUND_STATE,
1197 /*      0x80            0x81            0x82            0x83    */
1198 CASE_IGNORE,
1199 CASE_IGNORE,
1200 CASE_IGNORE,
1201 CASE_IGNORE,
1202 /*      0x84            0x85            0x86            0x87    */
1203 CASE_IGNORE,
1204 CASE_IGNORE,
1205 CASE_IGNORE,
1206 CASE_IGNORE,
1207 /*      0x88            0x89            0x8a            0x8b    */
1208 CASE_IGNORE,
1209 CASE_IGNORE,
1210 CASE_IGNORE,
1211 CASE_IGNORE,
1212 /*      0x8c            0x8d            0x8e            0x8f    */
1213 CASE_IGNORE,
1214 CASE_IGNORE,
1215 CASE_IGNORE,
1216 CASE_IGNORE,
1217 /*      0x90            0x91            0x92            0x93    */
1218 CASE_IGNORE,
1219 CASE_IGNORE,
1220 CASE_IGNORE,
1221 CASE_IGNORE,
1222 /*      0x94            0x95            0x96            0x97    */
1223 CASE_IGNORE,
1224 CASE_IGNORE,
1225 CASE_IGNORE,
1226 CASE_IGNORE,
1227 /*      0x99            0x99            0x9a            0x9b    */
1228 CASE_IGNORE,
1229 CASE_IGNORE,
1230 CASE_IGNORE,
1231 CASE_IGNORE,
1232 /*      0x9c            0x9d            0x9e            0x9f    */
1233 CASE_IGNORE,
1234 CASE_IGNORE,
1235 CASE_IGNORE,
1236 CASE_IGNORE,
1237 /*      nobreakspace    exclamdown      cent            sterling        */
1238 CASE_GROUND_STATE,
1239 CASE_GROUND_STATE,
1240 CASE_GROUND_STATE,
1241 CASE_GROUND_STATE,
1242 /*      currency        yen             brokenbar       section         */
1243 CASE_GROUND_STATE,
1244 CASE_GROUND_STATE,
1245 CASE_GROUND_STATE,
1246 CASE_GROUND_STATE,
1247 /*      diaeresis       copyright       ordfeminine     guillemotleft   */
1248 CASE_GROUND_STATE,
1249 CASE_GROUND_STATE,
1250 CASE_GROUND_STATE,
1251 CASE_GROUND_STATE,
1252 /*      notsign         hyphen          registered      macron          */
1253 CASE_GROUND_STATE,
1254 CASE_GROUND_STATE,
1255 CASE_GROUND_STATE,
1256 CASE_GROUND_STATE,
1257 /*      degree          plusminus       twosuperior     threesuperior   */
1258 CASE_GROUND_STATE,
1259 CASE_GROUND_STATE,
1260 CASE_GROUND_STATE,
1261 CASE_GROUND_STATE,
1262 /*      acute           mu              paragraph       periodcentered  */
1263 CASE_GROUND_STATE,
1264 CASE_GROUND_STATE,
1265 CASE_GROUND_STATE,
1266 CASE_GROUND_STATE,
1267 /*      cedilla         onesuperior     masculine       guillemotright  */
1268 CASE_GROUND_STATE,
1269 CASE_GROUND_STATE,
1270 CASE_GROUND_STATE,
1271 CASE_GROUND_STATE,
1272 /*      onequarter      onehalf         threequarters   questiondown    */
1273 CASE_GROUND_STATE,
1274 CASE_GROUND_STATE,
1275 CASE_GROUND_STATE,
1276 CASE_GROUND_STATE,
1277 /*      Agrave          Aacute          Acircumflex     Atilde          */
1278 CASE_GROUND_STATE,
1279 CASE_GROUND_STATE,
1280 CASE_GROUND_STATE,
1281 CASE_GROUND_STATE,
1282 /*      Adiaeresis      Aring           AE              Ccedilla        */
1283 CASE_GROUND_STATE,
1284 CASE_GROUND_STATE,
1285 CASE_GROUND_STATE,
1286 CASE_GROUND_STATE,
1287 /*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
1288 CASE_GROUND_STATE,
1289 CASE_GROUND_STATE,
1290 CASE_GROUND_STATE,
1291 CASE_GROUND_STATE,
1292 /*      Igrave          Iacute          Icircumflex     Idiaeresis      */
1293 CASE_GROUND_STATE,
1294 CASE_GROUND_STATE,
1295 CASE_GROUND_STATE,
1296 CASE_GROUND_STATE,
1297 /*      Eth             Ntilde          Ograve          Oacute          */
1298 CASE_GROUND_STATE,
1299 CASE_GROUND_STATE,
1300 CASE_GROUND_STATE,
1301 CASE_GROUND_STATE,
1302 /*      Ocircumflex     Otilde          Odiaeresis      multiply        */
1303 CASE_GROUND_STATE,
1304 CASE_GROUND_STATE,
1305 CASE_GROUND_STATE,
1306 CASE_GROUND_STATE,
1307 /*      Ooblique        Ugrave          Uacute          Ucircumflex     */
1308 CASE_GROUND_STATE,
1309 CASE_GROUND_STATE,
1310 CASE_GROUND_STATE,
1311 CASE_GROUND_STATE,
1312 /*      Udiaeresis      Yacute          Thorn           ssharp          */
1313 CASE_GROUND_STATE,
1314 CASE_GROUND_STATE,
1315 CASE_GROUND_STATE,
1316 CASE_GROUND_STATE,
1317 /*      agrave          aacute          acircumflex     atilde          */
1318 CASE_GROUND_STATE,
1319 CASE_GROUND_STATE,
1320 CASE_GROUND_STATE,
1321 CASE_GROUND_STATE,
1322 /*      adiaeresis      aring           ae              ccedilla        */
1323 CASE_GROUND_STATE,
1324 CASE_GROUND_STATE,
1325 CASE_GROUND_STATE,
1326 CASE_GROUND_STATE,
1327 /*      egrave          eacute          ecircumflex     ediaeresis      */
1328 CASE_GROUND_STATE,
1329 CASE_GROUND_STATE,
1330 CASE_GROUND_STATE,
1331 CASE_GROUND_STATE,
1332 /*      igrave          iacute          icircumflex     idiaeresis      */
1333 CASE_GROUND_STATE,
1334 CASE_GROUND_STATE,
1335 CASE_GROUND_STATE,
1336 CASE_GROUND_STATE,
1337 /*      eth             ntilde          ograve          oacute          */
1338 CASE_GROUND_STATE,
1339 CASE_GROUND_STATE,
1340 CASE_GROUND_STATE,
1341 CASE_GROUND_STATE,
1342 /*      ocircumflex     otilde          odiaeresis      division        */
1343 CASE_GROUND_STATE,
1344 CASE_GROUND_STATE,
1345 CASE_GROUND_STATE,
1346 CASE_GROUND_STATE,
1347 /*      oslash          ugrave          uacute          ucircumflex     */
1348 CASE_GROUND_STATE,
1349 CASE_GROUND_STATE,
1350 CASE_GROUND_STATE,
1351 CASE_GROUND_STATE,
1352 /*      udiaeresis      yacute          thorn           ydiaeresis      */
1353 CASE_GROUND_STATE,
1354 CASE_GROUND_STATE,
1355 CASE_GROUND_STATE,
1356 CASE_GROUND_STATE,
1357 };
1358 
1359 Const int esctable[] =		/* ESC */
1360 {
1361 /*	NUL		SOH		STX		ETX	*/
1362 CASE_IGNORE,
1363 CASE_IGNORE,
1364 CASE_IGNORE,
1365 CASE_IGNORE,
1366 /*	EOT		ENQ		ACK		BEL	*/
1367 CASE_IGNORE,
1368 CASE_IGNORE,
1369 CASE_IGNORE,
1370 CASE_BELL,
1371 /*	BS		HT		NL		VT	*/
1372 CASE_BS,
1373 CASE_TAB,
1374 CASE_VMOT,
1375 CASE_VMOT,
1376 /*	NP		CR		SO		SI	*/
1377 CASE_VMOT,
1378 CASE_CR,
1379 CASE_SO,
1380 CASE_SI,
1381 /*	DLE		DC1		DC2		DC3	*/
1382 CASE_IGNORE,
1383 CASE_IGNORE,
1384 CASE_IGNORE,
1385 CASE_IGNORE,
1386 /*	DC4		NAK		SYN		ETB	*/
1387 CASE_IGNORE,
1388 CASE_IGNORE,
1389 CASE_IGNORE,
1390 CASE_IGNORE,
1391 /*	CAN		EM		SUB		ESC	*/
1392 CASE_IGNORE,
1393 CASE_IGNORE,
1394 CASE_IGNORE,
1395 CASE_ESC,
1396 /*	FS		GS		RS		US	*/
1397 CASE_IGNORE,
1398 CASE_IGNORE,
1399 CASE_IGNORE,
1400 CASE_IGNORE,
1401 /*	SP		!		"		#	*/
1402 CASE_ESC_IGNORE,
1403 CASE_ESC_IGNORE,
1404 CASE_ESC_IGNORE,
1405 CASE_SCR_STATE,
1406 /*	$		%		&		'	*/
1407 CASE_MBCS,
1408 CASE_ESC_IGNORE,
1409 CASE_ESC_IGNORE,
1410 CASE_ESC_IGNORE,
1411 /*	(		)		*		+	*/
1412 CASE_SCS_STATE,
1413 CASE_SCS_STATE,
1414 CASE_SCS_STATE,
1415 CASE_SCS_STATE,
1416 /*	,		-		.		/	*/
1417 CASE_SCS_STATE,	/* not defined in ISO2022 but used in Mule */
1418 CASE_SCS_STATE,
1419 CASE_SCS_STATE,
1420 CASE_SCS_STATE,
1421 /*	0		1		2		3	*/
1422 CASE_GROUND_STATE,
1423 CASE_GROUND_STATE,
1424 CASE_GROUND_STATE,
1425 CASE_GROUND_STATE,
1426 /*	4		5		6		7	*/
1427 CASE_GROUND_STATE,
1428 CASE_GROUND_STATE,
1429 CASE_GROUND_STATE,
1430 CASE_DECSC,
1431 /*	8		9		:		;	*/
1432 CASE_DECRC,
1433 CASE_GROUND_STATE,
1434 CASE_GROUND_STATE,
1435 CASE_GROUND_STATE,
1436 /*	<		=		>		?	*/
1437 CASE_GROUND_STATE,
1438 CASE_DECKPAM,
1439 CASE_DECKPNM,
1440 CASE_GROUND_STATE,
1441 /*	@		A		B		C	*/
1442 CASE_GROUND_STATE,
1443 CASE_GROUND_STATE,
1444 CASE_GROUND_STATE,
1445 CASE_GROUND_STATE,
1446 /*	D		E		F		G	*/
1447 CASE_IND,
1448 CASE_NEL,
1449 CASE_HP_BUGGY_LL,
1450 CASE_GROUND_STATE,
1451 /*	H		I		J		K	*/
1452 CASE_HTS,
1453 CASE_GROUND_STATE,
1454 CASE_GROUND_STATE,
1455 CASE_GROUND_STATE,
1456 /*	L		M		N		O	*/
1457 CASE_GROUND_STATE,
1458 CASE_RI,
1459 CASE_SS2,
1460 CASE_SS3,
1461 /*	P		Q		R		S	*/
1462 CASE_IGNORE_STATE,
1463 CASE_GROUND_STATE,
1464 CASE_GROUND_STATE,
1465 CASE_GROUND_STATE,
1466 /*	T		U		V		W	*/
1467 CASE_XTERM_TITLE,
1468 CASE_GROUND_STATE,
1469 CASE_GROUND_STATE,
1470 CASE_GROUND_STATE,
1471 /*	X		Y		Z		[	*/
1472 CASE_GROUND_STATE,
1473 CASE_GROUND_STATE,
1474 CASE_DECID,
1475 CASE_CSI_STATE,
1476 /*	\		]		^		_	*/
1477 CASE_GROUND_STATE,
1478 CASE_OSC,
1479 CASE_IGNORE_STATE,
1480 CASE_IGNORE_STATE,
1481 /*	`		a		b		c	*/
1482 CASE_GROUND_STATE,
1483 CASE_GROUND_STATE,
1484 CASE_GROUND_STATE,
1485 CASE_RIS,
1486 /*	d		e		f		g	*/
1487 CASE_GROUND_STATE,
1488 CASE_GROUND_STATE,
1489 CASE_GROUND_STATE,
1490 CASE_GROUND_STATE,
1491 /*	h		i		j		k	*/
1492 CASE_GROUND_STATE,
1493 CASE_GROUND_STATE,
1494 CASE_GROUND_STATE,
1495 CASE_GROUND_STATE,
1496 /*	l		m		n		o	*/
1497 CASE_HP_MEM_LOCK,
1498 CASE_HP_MEM_UNLOCK,
1499 CASE_LS2,
1500 CASE_LS3,
1501 /*	p		q		r		s	*/
1502 CASE_GROUND_STATE,
1503 CASE_GROUND_STATE,
1504 CASE_GROUND_STATE,
1505 CASE_GROUND_STATE,
1506 /*	t		u		v		w	*/
1507 CASE_GROUND_STATE,
1508 CASE_GROUND_STATE,
1509 CASE_GROUND_STATE,
1510 CASE_GROUND_STATE,
1511 /*	x		y		z		{	*/
1512 CASE_GROUND_STATE,
1513 CASE_GROUND_STATE,
1514 CASE_GROUND_STATE,
1515 CASE_GROUND_STATE,
1516 /*	|		}		~		DEL	*/
1517 CASE_LS3R,
1518 CASE_LS2R,
1519 CASE_LS1R,
1520 CASE_GROUND_STATE,
1521 /*      0x80            0x81            0x82            0x83    */
1522 CASE_IGNORE,
1523 CASE_IGNORE,
1524 CASE_IGNORE,
1525 CASE_IGNORE,
1526 /*      0x84            0x85            0x86            0x87    */
1527 CASE_IGNORE,
1528 CASE_IGNORE,
1529 CASE_IGNORE,
1530 CASE_IGNORE,
1531 /*      0x88            0x89            0x8a            0x8b    */
1532 CASE_IGNORE,
1533 CASE_IGNORE,
1534 CASE_IGNORE,
1535 CASE_IGNORE,
1536 /*      0x8c            0x8d            0x8e            0x8f    */
1537 CASE_IGNORE,
1538 CASE_IGNORE,
1539 CASE_IGNORE,
1540 CASE_IGNORE,
1541 /*      0x90            0x91            0x92            0x93    */
1542 CASE_IGNORE,
1543 CASE_IGNORE,
1544 CASE_IGNORE,
1545 CASE_IGNORE,
1546 /*      0x94            0x95            0x96            0x97    */
1547 CASE_IGNORE,
1548 CASE_IGNORE,
1549 CASE_IGNORE,
1550 CASE_IGNORE,
1551 /*      0x99            0x99            0x9a            0x9b    */
1552 CASE_IGNORE,
1553 CASE_IGNORE,
1554 CASE_IGNORE,
1555 CASE_IGNORE,
1556 /*      0x9c            0x9d            0x9e            0x9f    */
1557 CASE_IGNORE,
1558 CASE_IGNORE,
1559 CASE_IGNORE,
1560 CASE_IGNORE,
1561 /*      nobreakspace    exclamdown      cent            sterling        */
1562 CASE_GROUND_STATE,
1563 CASE_GROUND_STATE,
1564 CASE_GROUND_STATE,
1565 CASE_GROUND_STATE,
1566 /*      currency        yen             brokenbar       section         */
1567 CASE_GROUND_STATE,
1568 CASE_GROUND_STATE,
1569 CASE_GROUND_STATE,
1570 CASE_GROUND_STATE,
1571 /*      diaeresis       copyright       ordfeminine     guillemotleft   */
1572 CASE_GROUND_STATE,
1573 CASE_GROUND_STATE,
1574 CASE_GROUND_STATE,
1575 CASE_GROUND_STATE,
1576 /*      notsign         hyphen          registered      macron          */
1577 CASE_GROUND_STATE,
1578 CASE_GROUND_STATE,
1579 CASE_GROUND_STATE,
1580 CASE_GROUND_STATE,
1581 /*      degree          plusminus       twosuperior     threesuperior   */
1582 CASE_GROUND_STATE,
1583 CASE_GROUND_STATE,
1584 CASE_GROUND_STATE,
1585 CASE_GROUND_STATE,
1586 /*      acute           mu              paragraph       periodcentered  */
1587 CASE_GROUND_STATE,
1588 CASE_GROUND_STATE,
1589 CASE_GROUND_STATE,
1590 CASE_GROUND_STATE,
1591 /*      cedilla         onesuperior     masculine       guillemotright  */
1592 CASE_GROUND_STATE,
1593 CASE_GROUND_STATE,
1594 CASE_GROUND_STATE,
1595 CASE_GROUND_STATE,
1596 /*      onequarter      onehalf         threequarters   questiondown    */
1597 CASE_GROUND_STATE,
1598 CASE_GROUND_STATE,
1599 CASE_GROUND_STATE,
1600 CASE_GROUND_STATE,
1601 /*      Agrave          Aacute          Acircumflex     Atilde          */
1602 CASE_GROUND_STATE,
1603 CASE_GROUND_STATE,
1604 CASE_GROUND_STATE,
1605 CASE_GROUND_STATE,
1606 /*      Adiaeresis      Aring           AE              Ccedilla        */
1607 CASE_GROUND_STATE,
1608 CASE_GROUND_STATE,
1609 CASE_GROUND_STATE,
1610 CASE_GROUND_STATE,
1611 /*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
1612 CASE_GROUND_STATE,
1613 CASE_GROUND_STATE,
1614 CASE_GROUND_STATE,
1615 CASE_GROUND_STATE,
1616 /*      Igrave          Iacute          Icircumflex     Idiaeresis      */
1617 CASE_GROUND_STATE,
1618 CASE_GROUND_STATE,
1619 CASE_GROUND_STATE,
1620 CASE_GROUND_STATE,
1621 /*      Eth             Ntilde          Ograve          Oacute          */
1622 CASE_GROUND_STATE,
1623 CASE_GROUND_STATE,
1624 CASE_GROUND_STATE,
1625 CASE_GROUND_STATE,
1626 /*      Ocircumflex     Otilde          Odiaeresis      multiply        */
1627 CASE_GROUND_STATE,
1628 CASE_GROUND_STATE,
1629 CASE_GROUND_STATE,
1630 CASE_GROUND_STATE,
1631 /*      Ooblique        Ugrave          Uacute          Ucircumflex     */
1632 CASE_GROUND_STATE,
1633 CASE_GROUND_STATE,
1634 CASE_GROUND_STATE,
1635 CASE_GROUND_STATE,
1636 /*      Udiaeresis      Yacute          Thorn           ssharp          */
1637 CASE_GROUND_STATE,
1638 CASE_GROUND_STATE,
1639 CASE_GROUND_STATE,
1640 CASE_GROUND_STATE,
1641 /*      agrave          aacute          acircumflex     atilde          */
1642 CASE_GROUND_STATE,
1643 CASE_GROUND_STATE,
1644 CASE_GROUND_STATE,
1645 CASE_GROUND_STATE,
1646 /*      adiaeresis      aring           ae              ccedilla        */
1647 CASE_GROUND_STATE,
1648 CASE_GROUND_STATE,
1649 CASE_GROUND_STATE,
1650 CASE_GROUND_STATE,
1651 /*      egrave          eacute          ecircumflex     ediaeresis      */
1652 CASE_GROUND_STATE,
1653 CASE_GROUND_STATE,
1654 CASE_GROUND_STATE,
1655 CASE_GROUND_STATE,
1656 /*      igrave          iacute          icircumflex     idiaeresis      */
1657 CASE_GROUND_STATE,
1658 CASE_GROUND_STATE,
1659 CASE_GROUND_STATE,
1660 CASE_GROUND_STATE,
1661 /*      eth             ntilde          ograve          oacute          */
1662 CASE_GROUND_STATE,
1663 CASE_GROUND_STATE,
1664 CASE_GROUND_STATE,
1665 CASE_GROUND_STATE,
1666 /*      ocircumflex     otilde          odiaeresis      division        */
1667 CASE_GROUND_STATE,
1668 CASE_GROUND_STATE,
1669 CASE_GROUND_STATE,
1670 CASE_GROUND_STATE,
1671 /*      oslash          ugrave          uacute          ucircumflex     */
1672 CASE_GROUND_STATE,
1673 CASE_GROUND_STATE,
1674 CASE_GROUND_STATE,
1675 CASE_GROUND_STATE,
1676 /*      udiaeresis      yacute          thorn           ydiaeresis      */
1677 CASE_GROUND_STATE,
1678 CASE_GROUND_STATE,
1679 CASE_GROUND_STATE,
1680 CASE_GROUND_STATE,
1681 };
1682 
1683 Const int iestable[] =		/* CASE_IGNORE_ESC */
1684 {
1685 /*	NUL		SOH		STX		ETX	*/
1686 CASE_IGNORE_STATE,
1687 CASE_IGNORE_STATE,
1688 CASE_IGNORE_STATE,
1689 CASE_IGNORE_STATE,
1690 /*	EOT		ENQ		ACK		BEL	*/
1691 CASE_IGNORE_STATE,
1692 CASE_IGNORE_STATE,
1693 CASE_IGNORE_STATE,
1694 CASE_IGNORE_STATE,
1695 /*	BS		HT		NL		VT	*/
1696 CASE_IGNORE_STATE,
1697 CASE_IGNORE_STATE,
1698 CASE_IGNORE_STATE,
1699 CASE_IGNORE_STATE,
1700 /*	NP		CR		SO		SI	*/
1701 CASE_IGNORE_STATE,
1702 CASE_IGNORE_STATE,
1703 CASE_IGNORE_STATE,
1704 CASE_IGNORE_STATE,
1705 /*	DLE		DC1		DC2		DC3	*/
1706 CASE_IGNORE_STATE,
1707 CASE_IGNORE_STATE,
1708 CASE_IGNORE_STATE,
1709 CASE_IGNORE_STATE,
1710 /*	DC4		NAK		SYN		ETB	*/
1711 CASE_IGNORE_STATE,
1712 CASE_IGNORE_STATE,
1713 CASE_IGNORE_STATE,
1714 CASE_IGNORE_STATE,
1715 /*	CAN		EM		SUB		ESC	*/
1716 CASE_IGNORE_STATE,
1717 CASE_IGNORE_STATE,
1718 CASE_IGNORE_STATE,
1719 CASE_IGNORE_STATE,
1720 /*	FS		GS		RS		US	*/
1721 CASE_IGNORE_STATE,
1722 CASE_IGNORE_STATE,
1723 CASE_IGNORE_STATE,
1724 CASE_IGNORE_STATE,
1725 /*	SP		!		"		#	*/
1726 CASE_IGNORE_STATE,
1727 CASE_IGNORE_STATE,
1728 CASE_IGNORE_STATE,
1729 CASE_IGNORE_STATE,
1730 /*	$		%		&		'	*/
1731 CASE_IGNORE_STATE,
1732 CASE_IGNORE_STATE,
1733 CASE_IGNORE_STATE,
1734 CASE_IGNORE_STATE,
1735 /*	(		)		*		+	*/
1736 CASE_IGNORE_STATE,
1737 CASE_IGNORE_STATE,
1738 CASE_IGNORE_STATE,
1739 CASE_IGNORE_STATE,
1740 /*	,		-		.		/	*/
1741 CASE_IGNORE_STATE,
1742 CASE_IGNORE_STATE,
1743 CASE_IGNORE_STATE,
1744 CASE_IGNORE_STATE,
1745 /*	0		1		2		3	*/
1746 CASE_IGNORE_STATE,
1747 CASE_IGNORE_STATE,
1748 CASE_IGNORE_STATE,
1749 CASE_IGNORE_STATE,
1750 /*	4		5		6		7	*/
1751 CASE_IGNORE_STATE,
1752 CASE_IGNORE_STATE,
1753 CASE_IGNORE_STATE,
1754 CASE_IGNORE_STATE,
1755 /*	8		9		:		;	*/
1756 CASE_IGNORE_STATE,
1757 CASE_IGNORE_STATE,
1758 CASE_IGNORE_STATE,
1759 CASE_IGNORE_STATE,
1760 /*	<		=		>		?	*/
1761 CASE_IGNORE_STATE,
1762 CASE_IGNORE_STATE,
1763 CASE_IGNORE_STATE,
1764 CASE_IGNORE_STATE,
1765 /*	@		A		B		C	*/
1766 CASE_IGNORE_STATE,
1767 CASE_IGNORE_STATE,
1768 CASE_IGNORE_STATE,
1769 CASE_IGNORE_STATE,
1770 /*	D		E		F		G	*/
1771 CASE_IGNORE_STATE,
1772 CASE_IGNORE_STATE,
1773 CASE_IGNORE_STATE,
1774 CASE_IGNORE_STATE,
1775 /*	H		I		J		K	*/
1776 CASE_IGNORE_STATE,
1777 CASE_IGNORE_STATE,
1778 CASE_IGNORE_STATE,
1779 CASE_IGNORE_STATE,
1780 /*	L		M		N		O	*/
1781 CASE_IGNORE_STATE,
1782 CASE_IGNORE_STATE,
1783 CASE_IGNORE_STATE,
1784 CASE_IGNORE_STATE,
1785 /*	P		Q		R		S	*/
1786 CASE_IGNORE_STATE,
1787 CASE_IGNORE_STATE,
1788 CASE_IGNORE_STATE,
1789 CASE_IGNORE_STATE,
1790 /*	T		U		V		W	*/
1791 CASE_IGNORE_STATE,
1792 CASE_IGNORE_STATE,
1793 CASE_IGNORE_STATE,
1794 CASE_IGNORE_STATE,
1795 /*	X		Y		Z		[	*/
1796 CASE_IGNORE_STATE,
1797 CASE_IGNORE_STATE,
1798 CASE_IGNORE_STATE,
1799 CASE_IGNORE_STATE,
1800 /*	\		]		^		_	*/
1801 CASE_GROUND_STATE,
1802 CASE_IGNORE_STATE,
1803 CASE_IGNORE_STATE,
1804 CASE_IGNORE_STATE,
1805 /*	`		a		b		c	*/
1806 CASE_IGNORE_STATE,
1807 CASE_IGNORE_STATE,
1808 CASE_IGNORE_STATE,
1809 CASE_IGNORE_STATE,
1810 /*	d		e		f		g	*/
1811 CASE_IGNORE_STATE,
1812 CASE_IGNORE_STATE,
1813 CASE_IGNORE_STATE,
1814 CASE_IGNORE_STATE,
1815 /*	h		i		j		k	*/
1816 CASE_IGNORE_STATE,
1817 CASE_IGNORE_STATE,
1818 CASE_IGNORE_STATE,
1819 CASE_IGNORE_STATE,
1820 /*	l		m		n		o	*/
1821 CASE_IGNORE_STATE,
1822 CASE_IGNORE_STATE,
1823 CASE_IGNORE_STATE,
1824 CASE_IGNORE_STATE,
1825 /*	p		q		r		s	*/
1826 CASE_IGNORE_STATE,
1827 CASE_IGNORE_STATE,
1828 CASE_IGNORE_STATE,
1829 CASE_IGNORE_STATE,
1830 /*	t		u		v		w	*/
1831 CASE_IGNORE_STATE,
1832 CASE_IGNORE_STATE,
1833 CASE_IGNORE_STATE,
1834 CASE_IGNORE_STATE,
1835 /*	x		y		z		{	*/
1836 CASE_IGNORE_STATE,
1837 CASE_IGNORE_STATE,
1838 CASE_IGNORE_STATE,
1839 CASE_IGNORE_STATE,
1840 /*	|		}		~		DEL	*/
1841 CASE_IGNORE_STATE,
1842 CASE_IGNORE_STATE,
1843 CASE_IGNORE_STATE,
1844 CASE_IGNORE_STATE,
1845 /*      0x80            0x81            0x82            0x83    */
1846 CASE_IGNORE,
1847 CASE_IGNORE,
1848 CASE_IGNORE,
1849 CASE_IGNORE,
1850 /*      0x84            0x85            0x86            0x87    */
1851 CASE_IGNORE,
1852 CASE_IGNORE,
1853 CASE_IGNORE,
1854 CASE_IGNORE,
1855 /*      0x88            0x89            0x8a            0x8b    */
1856 CASE_IGNORE,
1857 CASE_IGNORE,
1858 CASE_IGNORE,
1859 CASE_IGNORE,
1860 /*      0x8c            0x8d            0x8e            0x8f    */
1861 CASE_IGNORE,
1862 CASE_IGNORE,
1863 CASE_IGNORE,
1864 CASE_IGNORE,
1865 /*      0x90            0x91            0x92            0x93    */
1866 CASE_IGNORE,
1867 CASE_IGNORE,
1868 CASE_IGNORE,
1869 CASE_IGNORE,
1870 /*      0x94            0x95            0x96            0x97    */
1871 CASE_IGNORE,
1872 CASE_IGNORE,
1873 CASE_IGNORE,
1874 CASE_IGNORE,
1875 /*      0x99            0x99            0x9a            0x9b    */
1876 CASE_IGNORE,
1877 CASE_IGNORE,
1878 CASE_IGNORE,
1879 CASE_IGNORE,
1880 /*      0x9c            0x9d            0x9e            0x9f    */
1881 CASE_IGNORE,
1882 CASE_IGNORE,
1883 CASE_IGNORE,
1884 CASE_IGNORE,
1885 /*      nobreakspace    exclamdown      cent            sterling        */
1886 CASE_GROUND_STATE,
1887 CASE_GROUND_STATE,
1888 CASE_GROUND_STATE,
1889 CASE_GROUND_STATE,
1890 /*      currency        yen             brokenbar       section         */
1891 CASE_GROUND_STATE,
1892 CASE_GROUND_STATE,
1893 CASE_GROUND_STATE,
1894 CASE_GROUND_STATE,
1895 /*      diaeresis       copyright       ordfeminine     guillemotleft   */
1896 CASE_GROUND_STATE,
1897 CASE_GROUND_STATE,
1898 CASE_GROUND_STATE,
1899 CASE_GROUND_STATE,
1900 /*      notsign         hyphen          registered      macron          */
1901 CASE_GROUND_STATE,
1902 CASE_GROUND_STATE,
1903 CASE_GROUND_STATE,
1904 CASE_GROUND_STATE,
1905 /*      degree          plusminus       twosuperior     threesuperior   */
1906 CASE_GROUND_STATE,
1907 CASE_GROUND_STATE,
1908 CASE_GROUND_STATE,
1909 CASE_GROUND_STATE,
1910 /*      acute           mu              paragraph       periodcentered  */
1911 CASE_GROUND_STATE,
1912 CASE_GROUND_STATE,
1913 CASE_GROUND_STATE,
1914 CASE_GROUND_STATE,
1915 /*      cedilla         onesuperior     masculine       guillemotright  */
1916 CASE_GROUND_STATE,
1917 CASE_GROUND_STATE,
1918 CASE_GROUND_STATE,
1919 CASE_GROUND_STATE,
1920 /*      onequarter      onehalf         threequarters   questiondown    */
1921 CASE_GROUND_STATE,
1922 CASE_GROUND_STATE,
1923 CASE_GROUND_STATE,
1924 CASE_GROUND_STATE,
1925 /*      Agrave          Aacute          Acircumflex     Atilde          */
1926 CASE_GROUND_STATE,
1927 CASE_GROUND_STATE,
1928 CASE_GROUND_STATE,
1929 CASE_GROUND_STATE,
1930 /*      Adiaeresis      Aring           AE              Ccedilla        */
1931 CASE_GROUND_STATE,
1932 CASE_GROUND_STATE,
1933 CASE_GROUND_STATE,
1934 CASE_GROUND_STATE,
1935 /*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
1936 CASE_GROUND_STATE,
1937 CASE_GROUND_STATE,
1938 CASE_GROUND_STATE,
1939 CASE_GROUND_STATE,
1940 /*      Igrave          Iacute          Icircumflex     Idiaeresis      */
1941 CASE_GROUND_STATE,
1942 CASE_GROUND_STATE,
1943 CASE_GROUND_STATE,
1944 CASE_GROUND_STATE,
1945 /*      Eth             Ntilde          Ograve          Oacute          */
1946 CASE_GROUND_STATE,
1947 CASE_GROUND_STATE,
1948 CASE_GROUND_STATE,
1949 CASE_GROUND_STATE,
1950 /*      Ocircumflex     Otilde          Odiaeresis      multiply        */
1951 CASE_GROUND_STATE,
1952 CASE_GROUND_STATE,
1953 CASE_GROUND_STATE,
1954 CASE_GROUND_STATE,
1955 /*      Ooblique        Ugrave          Uacute          Ucircumflex     */
1956 CASE_GROUND_STATE,
1957 CASE_GROUND_STATE,
1958 CASE_GROUND_STATE,
1959 CASE_GROUND_STATE,
1960 /*      Udiaeresis      Yacute          Thorn           ssharp          */
1961 CASE_GROUND_STATE,
1962 CASE_GROUND_STATE,
1963 CASE_GROUND_STATE,
1964 CASE_GROUND_STATE,
1965 /*      agrave          aacute          acircumflex     atilde          */
1966 CASE_GROUND_STATE,
1967 CASE_GROUND_STATE,
1968 CASE_GROUND_STATE,
1969 CASE_GROUND_STATE,
1970 /*      adiaeresis      aring           ae              ccedilla        */
1971 CASE_GROUND_STATE,
1972 CASE_GROUND_STATE,
1973 CASE_GROUND_STATE,
1974 CASE_GROUND_STATE,
1975 /*      egrave          eacute          ecircumflex     ediaeresis      */
1976 CASE_GROUND_STATE,
1977 CASE_GROUND_STATE,
1978 CASE_GROUND_STATE,
1979 CASE_GROUND_STATE,
1980 /*      igrave          iacute          icircumflex     idiaeresis      */
1981 CASE_GROUND_STATE,
1982 CASE_GROUND_STATE,
1983 CASE_GROUND_STATE,
1984 CASE_GROUND_STATE,
1985 /*      eth             ntilde          ograve          oacute          */
1986 CASE_GROUND_STATE,
1987 CASE_GROUND_STATE,
1988 CASE_GROUND_STATE,
1989 CASE_GROUND_STATE,
1990 /*      ocircumflex     otilde          odiaeresis      division        */
1991 CASE_GROUND_STATE,
1992 CASE_GROUND_STATE,
1993 CASE_GROUND_STATE,
1994 CASE_GROUND_STATE,
1995 /*      oslash          ugrave          uacute          ucircumflex     */
1996 CASE_GROUND_STATE,
1997 CASE_GROUND_STATE,
1998 CASE_GROUND_STATE,
1999 CASE_GROUND_STATE,
2000 /*      udiaeresis      yacute          thorn           ydiaeresis      */
2001 CASE_GROUND_STATE,
2002 CASE_GROUND_STATE,
2003 CASE_GROUND_STATE,
2004 CASE_GROUND_STATE,
2005 };
2006 
2007 Const int igntable[] =		/* CASE_IGNORE_STATE */
2008 {
2009 /*	NUL		SOH		STX		ETX	*/
2010 CASE_IGNORE,
2011 CASE_IGNORE,
2012 CASE_IGNORE,
2013 CASE_IGNORE,
2014 /*	EOT		ENQ		ACK		BEL	*/
2015 CASE_IGNORE,
2016 CASE_IGNORE,
2017 CASE_IGNORE,
2018 CASE_IGNORE,
2019 /*	BS		HT		NL		VT	*/
2020 CASE_IGNORE,
2021 CASE_IGNORE,
2022 CASE_IGNORE,
2023 CASE_IGNORE,
2024 /*	NP		CR		SO		SI	*/
2025 CASE_IGNORE,
2026 CASE_IGNORE,
2027 CASE_IGNORE,
2028 CASE_IGNORE,
2029 /*	DLE		DC1		DC2		DC3	*/
2030 CASE_IGNORE,
2031 CASE_IGNORE,
2032 CASE_IGNORE,
2033 CASE_IGNORE,
2034 /*	DC4		NAK		SYN		ETB	*/
2035 CASE_IGNORE,
2036 CASE_IGNORE,
2037 CASE_IGNORE,
2038 CASE_IGNORE,
2039 /*	CAN		EM		SUB		ESC	*/
2040 CASE_GROUND_STATE,
2041 CASE_IGNORE,
2042 CASE_GROUND_STATE,
2043 CASE_IGNORE_ESC,
2044 /*	FS		GS		RS		US	*/
2045 CASE_IGNORE,
2046 CASE_IGNORE,
2047 CASE_IGNORE,
2048 CASE_IGNORE,
2049 /*	SP		!		"		#	*/
2050 CASE_IGNORE,
2051 CASE_IGNORE,
2052 CASE_IGNORE,
2053 CASE_IGNORE,
2054 /*	$		%		&		'	*/
2055 CASE_IGNORE,
2056 CASE_IGNORE,
2057 CASE_IGNORE,
2058 CASE_IGNORE,
2059 /*	(		)		*		+	*/
2060 CASE_IGNORE,
2061 CASE_IGNORE,
2062 CASE_IGNORE,
2063 CASE_IGNORE,
2064 /*	,		-		.		/	*/
2065 CASE_IGNORE,
2066 CASE_IGNORE,
2067 CASE_IGNORE,
2068 CASE_IGNORE,
2069 /*	0		1		2		3	*/
2070 CASE_IGNORE,
2071 CASE_IGNORE,
2072 CASE_IGNORE,
2073 CASE_IGNORE,
2074 /*	4		5		6		7	*/
2075 CASE_IGNORE,
2076 CASE_IGNORE,
2077 CASE_IGNORE,
2078 CASE_IGNORE,
2079 /*	8		9		:		;	*/
2080 CASE_IGNORE,
2081 CASE_IGNORE,
2082 CASE_IGNORE,
2083 CASE_IGNORE,
2084 /*	<		=		>		?	*/
2085 CASE_IGNORE,
2086 CASE_IGNORE,
2087 CASE_IGNORE,
2088 CASE_IGNORE,
2089 /*	@		A		B		C	*/
2090 CASE_IGNORE,
2091 CASE_IGNORE,
2092 CASE_IGNORE,
2093 CASE_IGNORE,
2094 /*	D		E		F		G	*/
2095 CASE_IGNORE,
2096 CASE_IGNORE,
2097 CASE_IGNORE,
2098 CASE_IGNORE,
2099 /*	H		I		J		K	*/
2100 CASE_IGNORE,
2101 CASE_IGNORE,
2102 CASE_IGNORE,
2103 CASE_IGNORE,
2104 /*	L		M		N		O	*/
2105 CASE_IGNORE,
2106 CASE_IGNORE,
2107 CASE_IGNORE,
2108 CASE_IGNORE,
2109 /*	P		Q		R		S	*/
2110 CASE_IGNORE,
2111 CASE_IGNORE,
2112 CASE_IGNORE,
2113 CASE_IGNORE,
2114 /*	T		U		V		W	*/
2115 CASE_IGNORE,
2116 CASE_IGNORE,
2117 CASE_IGNORE,
2118 CASE_IGNORE,
2119 /*	X		Y		Z		[	*/
2120 CASE_IGNORE,
2121 CASE_IGNORE,
2122 CASE_IGNORE,
2123 CASE_IGNORE,
2124 /*	\		]		^		_	*/
2125 CASE_IGNORE,
2126 CASE_IGNORE,
2127 CASE_IGNORE,
2128 CASE_IGNORE,
2129 /*	`		a		b		c	*/
2130 CASE_IGNORE,
2131 CASE_IGNORE,
2132 CASE_IGNORE,
2133 CASE_IGNORE,
2134 /*	d		e		f		g	*/
2135 CASE_IGNORE,
2136 CASE_IGNORE,
2137 CASE_IGNORE,
2138 CASE_IGNORE,
2139 /*	h		i		j		k	*/
2140 CASE_IGNORE,
2141 CASE_IGNORE,
2142 CASE_IGNORE,
2143 CASE_IGNORE,
2144 /*	l		m		n		o	*/
2145 CASE_IGNORE,
2146 CASE_IGNORE,
2147 CASE_IGNORE,
2148 CASE_IGNORE,
2149 /*	p		q		r		s	*/
2150 CASE_IGNORE,
2151 CASE_IGNORE,
2152 CASE_IGNORE,
2153 CASE_IGNORE,
2154 /*	t		u		v		w	*/
2155 CASE_IGNORE,
2156 CASE_IGNORE,
2157 CASE_IGNORE,
2158 CASE_IGNORE,
2159 /*	x		y		z		{	*/
2160 CASE_IGNORE,
2161 CASE_IGNORE,
2162 CASE_IGNORE,
2163 CASE_IGNORE,
2164 /*	|		}		~		DEL	*/
2165 CASE_IGNORE,
2166 CASE_IGNORE,
2167 CASE_IGNORE,
2168 CASE_IGNORE,
2169 /*      0x80            0x81            0x82            0x83    */
2170 CASE_IGNORE,
2171 CASE_IGNORE,
2172 CASE_IGNORE,
2173 CASE_IGNORE,
2174 /*      0x84            0x85            0x86            0x87    */
2175 CASE_IGNORE,
2176 CASE_IGNORE,
2177 CASE_IGNORE,
2178 CASE_IGNORE,
2179 /*      0x88            0x89            0x8a            0x8b    */
2180 CASE_IGNORE,
2181 CASE_IGNORE,
2182 CASE_IGNORE,
2183 CASE_IGNORE,
2184 /*      0x8c            0x8d            0x8e            0x8f    */
2185 CASE_IGNORE,
2186 CASE_IGNORE,
2187 CASE_IGNORE,
2188 CASE_IGNORE,
2189 /*      0x90            0x91            0x92            0x93    */
2190 CASE_IGNORE,
2191 CASE_IGNORE,
2192 CASE_IGNORE,
2193 CASE_IGNORE,
2194 /*      0x94            0x95            0x96            0x97    */
2195 CASE_IGNORE,
2196 CASE_IGNORE,
2197 CASE_IGNORE,
2198 CASE_IGNORE,
2199 /*      0x99            0x99            0x9a            0x9b    */
2200 CASE_IGNORE,
2201 CASE_IGNORE,
2202 CASE_IGNORE,
2203 CASE_IGNORE,
2204 /*      0x9c            0x9d            0x9e            0x9f    */
2205 CASE_IGNORE,
2206 CASE_IGNORE,
2207 CASE_IGNORE,
2208 CASE_IGNORE,
2209 /*      nobreakspace    exclamdown      cent            sterling        */
2210 CASE_GROUND_STATE,
2211 CASE_GROUND_STATE,
2212 CASE_GROUND_STATE,
2213 CASE_GROUND_STATE,
2214 /*      currency        yen             brokenbar       section         */
2215 CASE_GROUND_STATE,
2216 CASE_GROUND_STATE,
2217 CASE_GROUND_STATE,
2218 CASE_GROUND_STATE,
2219 /*      diaeresis       copyright       ordfeminine     guillemotleft   */
2220 CASE_GROUND_STATE,
2221 CASE_GROUND_STATE,
2222 CASE_GROUND_STATE,
2223 CASE_GROUND_STATE,
2224 /*      notsign         hyphen          registered      macron          */
2225 CASE_GROUND_STATE,
2226 CASE_GROUND_STATE,
2227 CASE_GROUND_STATE,
2228 CASE_GROUND_STATE,
2229 /*      degree          plusminus       twosuperior     threesuperior   */
2230 CASE_GROUND_STATE,
2231 CASE_GROUND_STATE,
2232 CASE_GROUND_STATE,
2233 CASE_GROUND_STATE,
2234 /*      acute           mu              paragraph       periodcentered  */
2235 CASE_GROUND_STATE,
2236 CASE_GROUND_STATE,
2237 CASE_GROUND_STATE,
2238 CASE_GROUND_STATE,
2239 /*      cedilla         onesuperior     masculine       guillemotright  */
2240 CASE_GROUND_STATE,
2241 CASE_GROUND_STATE,
2242 CASE_GROUND_STATE,
2243 CASE_GROUND_STATE,
2244 /*      onequarter      onehalf         threequarters   questiondown    */
2245 CASE_GROUND_STATE,
2246 CASE_GROUND_STATE,
2247 CASE_GROUND_STATE,
2248 CASE_GROUND_STATE,
2249 /*      Agrave          Aacute          Acircumflex     Atilde          */
2250 CASE_GROUND_STATE,
2251 CASE_GROUND_STATE,
2252 CASE_GROUND_STATE,
2253 CASE_GROUND_STATE,
2254 /*      Adiaeresis      Aring           AE              Ccedilla        */
2255 CASE_GROUND_STATE,
2256 CASE_GROUND_STATE,
2257 CASE_GROUND_STATE,
2258 CASE_GROUND_STATE,
2259 /*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
2260 CASE_GROUND_STATE,
2261 CASE_GROUND_STATE,
2262 CASE_GROUND_STATE,
2263 CASE_GROUND_STATE,
2264 /*      Igrave          Iacute          Icircumflex     Idiaeresis      */
2265 CASE_GROUND_STATE,
2266 CASE_GROUND_STATE,
2267 CASE_GROUND_STATE,
2268 CASE_GROUND_STATE,
2269 /*      Eth             Ntilde          Ograve          Oacute          */
2270 CASE_GROUND_STATE,
2271 CASE_GROUND_STATE,
2272 CASE_GROUND_STATE,
2273 CASE_GROUND_STATE,
2274 /*      Ocircumflex     Otilde          Odiaeresis      multiply        */
2275 CASE_GROUND_STATE,
2276 CASE_GROUND_STATE,
2277 CASE_GROUND_STATE,
2278 CASE_GROUND_STATE,
2279 /*      Ooblique        Ugrave          Uacute          Ucircumflex     */
2280 CASE_GROUND_STATE,
2281 CASE_GROUND_STATE,
2282 CASE_GROUND_STATE,
2283 CASE_GROUND_STATE,
2284 /*      Udiaeresis      Yacute          Thorn           ssharp          */
2285 CASE_GROUND_STATE,
2286 CASE_GROUND_STATE,
2287 CASE_GROUND_STATE,
2288 CASE_GROUND_STATE,
2289 /*      agrave          aacute          acircumflex     atilde          */
2290 CASE_GROUND_STATE,
2291 CASE_GROUND_STATE,
2292 CASE_GROUND_STATE,
2293 CASE_GROUND_STATE,
2294 /*      adiaeresis      aring           ae              ccedilla        */
2295 CASE_GROUND_STATE,
2296 CASE_GROUND_STATE,
2297 CASE_GROUND_STATE,
2298 CASE_GROUND_STATE,
2299 /*      egrave          eacute          ecircumflex     ediaeresis      */
2300 CASE_GROUND_STATE,
2301 CASE_GROUND_STATE,
2302 CASE_GROUND_STATE,
2303 CASE_GROUND_STATE,
2304 /*      igrave          iacute          icircumflex     idiaeresis      */
2305 CASE_GROUND_STATE,
2306 CASE_GROUND_STATE,
2307 CASE_GROUND_STATE,
2308 CASE_GROUND_STATE,
2309 /*      eth             ntilde          ograve          oacute          */
2310 CASE_GROUND_STATE,
2311 CASE_GROUND_STATE,
2312 CASE_GROUND_STATE,
2313 CASE_GROUND_STATE,
2314 /*      ocircumflex     otilde          odiaeresis      division        */
2315 CASE_GROUND_STATE,
2316 CASE_GROUND_STATE,
2317 CASE_GROUND_STATE,
2318 CASE_GROUND_STATE,
2319 /*      oslash          ugrave          uacute          ucircumflex     */
2320 CASE_GROUND_STATE,
2321 CASE_GROUND_STATE,
2322 CASE_GROUND_STATE,
2323 CASE_GROUND_STATE,
2324 /*      udiaeresis      yacute          thorn           ydiaeresis      */
2325 CASE_GROUND_STATE,
2326 CASE_GROUND_STATE,
2327 CASE_GROUND_STATE,
2328 CASE_GROUND_STATE,
2329 };
2330 
2331 Const int scrtable[] =		/* ESC # */
2332 {
2333 /*	NUL		SOH		STX		ETX	*/
2334 CASE_IGNORE,
2335 CASE_IGNORE,
2336 CASE_IGNORE,
2337 CASE_IGNORE,
2338 /*	EOT		ENQ		ACK		BEL	*/
2339 CASE_IGNORE,
2340 CASE_IGNORE,
2341 CASE_IGNORE,
2342 CASE_BELL,
2343 /*	BS		HT		NL		VT	*/
2344 CASE_BS,
2345 CASE_TAB,
2346 CASE_VMOT,
2347 CASE_VMOT,
2348 /*	NP		CR		SO		SI	*/
2349 CASE_VMOT,
2350 CASE_CR,
2351 CASE_SO,
2352 CASE_SI,
2353 /*	DLE		DC1		DC2		DC3	*/
2354 CASE_IGNORE,
2355 CASE_IGNORE,
2356 CASE_IGNORE,
2357 CASE_IGNORE,
2358 /*	DC4		NAK		SYN		ETB	*/
2359 CASE_IGNORE,
2360 CASE_IGNORE,
2361 CASE_IGNORE,
2362 CASE_IGNORE,
2363 /*	CAN		EM		SUB		ESC	*/
2364 CASE_IGNORE,
2365 CASE_IGNORE,
2366 CASE_IGNORE,
2367 CASE_ESC,
2368 /*	FS		GS		RS		US	*/
2369 CASE_IGNORE,
2370 CASE_IGNORE,
2371 CASE_IGNORE,
2372 CASE_IGNORE,
2373 /*	SP		!		"		#	*/
2374 CASE_ESC_IGNORE,
2375 CASE_ESC_IGNORE,
2376 CASE_ESC_IGNORE,
2377 CASE_ESC_IGNORE,
2378 /*	$		%		&		'	*/
2379 CASE_ESC_IGNORE,
2380 CASE_ESC_IGNORE,
2381 CASE_ESC_IGNORE,
2382 CASE_ESC_IGNORE,
2383 /*	(		)		*		+	*/
2384 CASE_ESC_IGNORE,
2385 CASE_ESC_IGNORE,
2386 CASE_ESC_IGNORE,
2387 CASE_ESC_IGNORE,
2388 /*	,		-		.		/	*/
2389 CASE_ESC_IGNORE,
2390 CASE_ESC_IGNORE,
2391 CASE_ESC_IGNORE,
2392 CASE_ESC_IGNORE,
2393 /*	0		1		2		3	*/
2394 CASE_GROUND_STATE,
2395 CASE_GROUND_STATE,
2396 CASE_GROUND_STATE,
2397 CASE_GROUND_STATE,
2398 /*	4		5		6		7	*/
2399 CASE_GROUND_STATE,
2400 CASE_GROUND_STATE,
2401 CASE_GROUND_STATE,
2402 CASE_GROUND_STATE,
2403 /*	8		9		:		;	*/
2404 CASE_DECALN,
2405 CASE_GROUND_STATE,
2406 CASE_GROUND_STATE,
2407 CASE_GROUND_STATE,
2408 /*	<		=		>		?	*/
2409 CASE_GROUND_STATE,
2410 CASE_GROUND_STATE,
2411 CASE_GROUND_STATE,
2412 CASE_GROUND_STATE,
2413 /*	@		A		B		C	*/
2414 CASE_GROUND_STATE,
2415 CASE_GROUND_STATE,
2416 CASE_GROUND_STATE,
2417 CASE_GROUND_STATE,
2418 /*	D		E		F		G	*/
2419 CASE_GROUND_STATE,
2420 CASE_GROUND_STATE,
2421 CASE_GROUND_STATE,
2422 CASE_GROUND_STATE,
2423 /*	H		I		J		K	*/
2424 CASE_GROUND_STATE,
2425 CASE_GROUND_STATE,
2426 CASE_GROUND_STATE,
2427 CASE_GROUND_STATE,
2428 /*	L		M		N		O	*/
2429 CASE_GROUND_STATE,
2430 CASE_GROUND_STATE,
2431 CASE_GROUND_STATE,
2432 CASE_GROUND_STATE,
2433 /*	P		Q		R		S	*/
2434 CASE_GROUND_STATE,
2435 CASE_GROUND_STATE,
2436 CASE_GROUND_STATE,
2437 CASE_GROUND_STATE,
2438 /*	T		U		V		W	*/
2439 CASE_GROUND_STATE,
2440 CASE_GROUND_STATE,
2441 CASE_GROUND_STATE,
2442 CASE_GROUND_STATE,
2443 /*	X		Y		Z		[	*/
2444 CASE_GROUND_STATE,
2445 CASE_GROUND_STATE,
2446 CASE_GROUND_STATE,
2447 CASE_GROUND_STATE,
2448 /*	\		]		^		_	*/
2449 CASE_GROUND_STATE,
2450 CASE_GROUND_STATE,
2451 CASE_GROUND_STATE,
2452 CASE_GROUND_STATE,
2453 /*	`		a		b		c	*/
2454 CASE_GROUND_STATE,
2455 CASE_GROUND_STATE,
2456 CASE_GROUND_STATE,
2457 CASE_GROUND_STATE,
2458 /*	d		e		f		g	*/
2459 CASE_GROUND_STATE,
2460 CASE_GROUND_STATE,
2461 CASE_GROUND_STATE,
2462 CASE_GROUND_STATE,
2463 /*	h		i		j		k	*/
2464 CASE_GROUND_STATE,
2465 CASE_GROUND_STATE,
2466 CASE_GROUND_STATE,
2467 CASE_GROUND_STATE,
2468 /*	l		m		n		o	*/
2469 CASE_GROUND_STATE,
2470 CASE_GROUND_STATE,
2471 CASE_GROUND_STATE,
2472 CASE_GROUND_STATE,
2473 /*	p		q		r		s	*/
2474 CASE_GROUND_STATE,
2475 CASE_GROUND_STATE,
2476 CASE_GROUND_STATE,
2477 CASE_GROUND_STATE,
2478 /*	t		u		v		w	*/
2479 CASE_GROUND_STATE,
2480 CASE_GROUND_STATE,
2481 CASE_GROUND_STATE,
2482 CASE_GROUND_STATE,
2483 /*	x		y		z		{	*/
2484 CASE_GROUND_STATE,
2485 CASE_GROUND_STATE,
2486 CASE_GROUND_STATE,
2487 CASE_GROUND_STATE,
2488 /*	|		}		~		DEL	*/
2489 CASE_GROUND_STATE,
2490 CASE_GROUND_STATE,
2491 CASE_GROUND_STATE,
2492 CASE_GROUND_STATE,
2493 /*      0x80            0x81            0x82            0x83    */
2494 CASE_IGNORE,
2495 CASE_IGNORE,
2496 CASE_IGNORE,
2497 CASE_IGNORE,
2498 /*      0x84            0x85            0x86            0x87    */
2499 CASE_IGNORE,
2500 CASE_IGNORE,
2501 CASE_IGNORE,
2502 CASE_IGNORE,
2503 /*      0x88            0x89            0x8a            0x8b    */
2504 CASE_IGNORE,
2505 CASE_IGNORE,
2506 CASE_IGNORE,
2507 CASE_IGNORE,
2508 /*      0x8c            0x8d            0x8e            0x8f    */
2509 CASE_IGNORE,
2510 CASE_IGNORE,
2511 CASE_IGNORE,
2512 CASE_IGNORE,
2513 /*      0x90            0x91            0x92            0x93    */
2514 CASE_IGNORE,
2515 CASE_IGNORE,
2516 CASE_IGNORE,
2517 CASE_IGNORE,
2518 /*      0x94            0x95            0x96            0x97    */
2519 CASE_IGNORE,
2520 CASE_IGNORE,
2521 CASE_IGNORE,
2522 CASE_IGNORE,
2523 /*      0x99            0x99            0x9a            0x9b    */
2524 CASE_IGNORE,
2525 CASE_IGNORE,
2526 CASE_IGNORE,
2527 CASE_IGNORE,
2528 /*      0x9c            0x9d            0x9e            0x9f    */
2529 CASE_IGNORE,
2530 CASE_IGNORE,
2531 CASE_IGNORE,
2532 CASE_IGNORE,
2533 /*      nobreakspace    exclamdown      cent            sterling        */
2534 CASE_GROUND_STATE,
2535 CASE_GROUND_STATE,
2536 CASE_GROUND_STATE,
2537 CASE_GROUND_STATE,
2538 /*      currency        yen             brokenbar       section         */
2539 CASE_GROUND_STATE,
2540 CASE_GROUND_STATE,
2541 CASE_GROUND_STATE,
2542 CASE_GROUND_STATE,
2543 /*      diaeresis       copyright       ordfeminine     guillemotleft   */
2544 CASE_GROUND_STATE,
2545 CASE_GROUND_STATE,
2546 CASE_GROUND_STATE,
2547 CASE_GROUND_STATE,
2548 /*      notsign         hyphen          registered      macron          */
2549 CASE_GROUND_STATE,
2550 CASE_GROUND_STATE,
2551 CASE_GROUND_STATE,
2552 CASE_GROUND_STATE,
2553 /*      degree          plusminus       twosuperior     threesuperior   */
2554 CASE_GROUND_STATE,
2555 CASE_GROUND_STATE,
2556 CASE_GROUND_STATE,
2557 CASE_GROUND_STATE,
2558 /*      acute           mu              paragraph       periodcentered  */
2559 CASE_GROUND_STATE,
2560 CASE_GROUND_STATE,
2561 CASE_GROUND_STATE,
2562 CASE_GROUND_STATE,
2563 /*      cedilla         onesuperior     masculine       guillemotright  */
2564 CASE_GROUND_STATE,
2565 CASE_GROUND_STATE,
2566 CASE_GROUND_STATE,
2567 CASE_GROUND_STATE,
2568 /*      onequarter      onehalf         threequarters   questiondown    */
2569 CASE_GROUND_STATE,
2570 CASE_GROUND_STATE,
2571 CASE_GROUND_STATE,
2572 CASE_GROUND_STATE,
2573 /*      Agrave          Aacute          Acircumflex     Atilde          */
2574 CASE_GROUND_STATE,
2575 CASE_GROUND_STATE,
2576 CASE_GROUND_STATE,
2577 CASE_GROUND_STATE,
2578 /*      Adiaeresis      Aring           AE              Ccedilla        */
2579 CASE_GROUND_STATE,
2580 CASE_GROUND_STATE,
2581 CASE_GROUND_STATE,
2582 CASE_GROUND_STATE,
2583 /*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
2584 CASE_GROUND_STATE,
2585 CASE_GROUND_STATE,
2586 CASE_GROUND_STATE,
2587 CASE_GROUND_STATE,
2588 /*      Igrave          Iacute          Icircumflex     Idiaeresis      */
2589 CASE_GROUND_STATE,
2590 CASE_GROUND_STATE,
2591 CASE_GROUND_STATE,
2592 CASE_GROUND_STATE,
2593 /*      Eth             Ntilde          Ograve          Oacute          */
2594 CASE_GROUND_STATE,
2595 CASE_GROUND_STATE,
2596 CASE_GROUND_STATE,
2597 CASE_GROUND_STATE,
2598 /*      Ocircumflex     Otilde          Odiaeresis      multiply        */
2599 CASE_GROUND_STATE,
2600 CASE_GROUND_STATE,
2601 CASE_GROUND_STATE,
2602 CASE_GROUND_STATE,
2603 /*      Ooblique        Ugrave          Uacute          Ucircumflex     */
2604 CASE_GROUND_STATE,
2605 CASE_GROUND_STATE,
2606 CASE_GROUND_STATE,
2607 CASE_GROUND_STATE,
2608 /*      Udiaeresis      Yacute          Thorn           ssharp          */
2609 CASE_GROUND_STATE,
2610 CASE_GROUND_STATE,
2611 CASE_GROUND_STATE,
2612 CASE_GROUND_STATE,
2613 /*      agrave          aacute          acircumflex     atilde          */
2614 CASE_GROUND_STATE,
2615 CASE_GROUND_STATE,
2616 CASE_GROUND_STATE,
2617 CASE_GROUND_STATE,
2618 /*      adiaeresis      aring           ae              ccedilla        */
2619 CASE_GROUND_STATE,
2620 CASE_GROUND_STATE,
2621 CASE_GROUND_STATE,
2622 CASE_GROUND_STATE,
2623 /*      egrave          eacute          ecircumflex     ediaeresis      */
2624 CASE_GROUND_STATE,
2625 CASE_GROUND_STATE,
2626 CASE_GROUND_STATE,
2627 CASE_GROUND_STATE,
2628 /*      igrave          iacute          icircumflex     idiaeresis      */
2629 CASE_GROUND_STATE,
2630 CASE_GROUND_STATE,
2631 CASE_GROUND_STATE,
2632 CASE_GROUND_STATE,
2633 /*      eth             ntilde          ograve          oacute          */
2634 CASE_GROUND_STATE,
2635 CASE_GROUND_STATE,
2636 CASE_GROUND_STATE,
2637 CASE_GROUND_STATE,
2638 /*      ocircumflex     otilde          odiaeresis      division        */
2639 CASE_GROUND_STATE,
2640 CASE_GROUND_STATE,
2641 CASE_GROUND_STATE,
2642 CASE_GROUND_STATE,
2643 /*      oslash          ugrave          uacute          ucircumflex     */
2644 CASE_GROUND_STATE,
2645 CASE_GROUND_STATE,
2646 CASE_GROUND_STATE,
2647 CASE_GROUND_STATE,
2648 /*      udiaeresis      yacute          thorn           ydiaeresis      */
2649 CASE_GROUND_STATE,
2650 CASE_GROUND_STATE,
2651 CASE_GROUND_STATE,
2652 CASE_GROUND_STATE,
2653 };
2654 
2655 Const int scstable[] =		/* ESC ( etc. */
2656 {
2657 /*	NUL		SOH		STX		ETX	*/
2658 CASE_IGNORE,
2659 CASE_IGNORE,
2660 CASE_IGNORE,
2661 CASE_IGNORE,
2662 /*	EOT		ENQ		ACK		BEL	*/
2663 CASE_IGNORE,
2664 CASE_IGNORE,
2665 CASE_IGNORE,
2666 CASE_BELL,
2667 /*	BS		HT		NL		VT	*/
2668 CASE_BS,
2669 CASE_TAB,
2670 CASE_VMOT,
2671 CASE_VMOT,
2672 /*	NP		CR		SO		SI	*/
2673 CASE_VMOT,
2674 CASE_CR,
2675 CASE_SO,
2676 CASE_SI,
2677 /*	DLE		DC1		DC2		DC3	*/
2678 CASE_IGNORE,
2679 CASE_IGNORE,
2680 CASE_IGNORE,
2681 CASE_IGNORE,
2682 /*	DC4		NAK		SYN		ETB	*/
2683 CASE_IGNORE,
2684 CASE_IGNORE,
2685 CASE_IGNORE,
2686 CASE_IGNORE,
2687 /*	CAN		EM		SUB		ESC	*/
2688 CASE_IGNORE,
2689 CASE_IGNORE,
2690 CASE_IGNORE,
2691 CASE_ESC,
2692 /*	FS		GS		RS		US	*/
2693 CASE_IGNORE,
2694 CASE_IGNORE,
2695 CASE_IGNORE,
2696 CASE_IGNORE,
2697 /*	SP		!		"		#	*/
2698 CASE_ESC_IGNORE,
2699 CASE_ESC_IGNORE,
2700 CASE_ESC_IGNORE,
2701 CASE_ESC_IGNORE,
2702 /*	$		%		&		'	*/
2703 CASE_ESC_IGNORE,
2704 CASE_ESC_IGNORE,
2705 CASE_ESC_IGNORE,
2706 CASE_ESC_IGNORE,
2707 /*	(		)		*		+	*/
2708 CASE_ESC_IGNORE,
2709 CASE_ESC_IGNORE,
2710 CASE_ESC_IGNORE,
2711 CASE_ESC_IGNORE,
2712 /*	,		-		.		/	*/
2713 CASE_ESC_IGNORE,
2714 CASE_ESC_IGNORE,
2715 CASE_ESC_IGNORE,
2716 CASE_ESC_IGNORE,
2717 /*	0		1		2		3	*/
2718 CASE_GSETS,
2719 CASE_GSETS,
2720 CASE_GSETS,
2721 CASE_GSETS,
2722 /*	4		5		6		7	*/
2723 CASE_GSETS,
2724 CASE_GSETS,
2725 CASE_GSETS,
2726 CASE_GSETS,
2727 /*	8		9		:		;	*/
2728 CASE_GSETS,
2729 CASE_GSETS,
2730 CASE_GSETS,
2731 CASE_GSETS,
2732 /*	<		=		>		?	*/
2733 CASE_GSETS,
2734 CASE_GSETS,
2735 CASE_GSETS,
2736 CASE_GSETS,
2737 /*	@		A		B		C	*/
2738 CASE_GSETS,
2739 CASE_GSETS,
2740 CASE_GSETS,
2741 CASE_GSETS,
2742 /*	D		E		F		G	*/
2743 CASE_GSETS,
2744 CASE_GSETS,
2745 CASE_GSETS,
2746 CASE_GSETS,
2747 /*	H		I		J		K	*/
2748 CASE_GSETS,
2749 CASE_GSETS,
2750 CASE_GSETS,
2751 CASE_GSETS,
2752 /*	L		M		N		O	*/
2753 CASE_GSETS,
2754 CASE_GSETS,
2755 CASE_GSETS,
2756 CASE_GSETS,
2757 /*	P		Q		R		S	*/
2758 CASE_GSETS,
2759 CASE_GSETS,
2760 CASE_GSETS,
2761 CASE_GSETS,
2762 /*	T		U		V		W	*/
2763 CASE_GSETS,
2764 CASE_GSETS,
2765 CASE_GSETS,
2766 CASE_GSETS,
2767 /*	X		Y		Z		[	*/
2768 CASE_GSETS,
2769 CASE_GSETS,
2770 CASE_GSETS,
2771 CASE_GSETS,
2772 /*	\		]		^		_	*/
2773 CASE_GSETS,
2774 CASE_GSETS,
2775 CASE_GSETS,
2776 CASE_GSETS,
2777 /*	`		a		b		c	*/
2778 CASE_GSETS,
2779 CASE_GSETS,
2780 CASE_GSETS,
2781 CASE_GSETS,
2782 /*	d		e		f		g	*/
2783 CASE_GSETS,
2784 CASE_GSETS,
2785 CASE_GSETS,
2786 CASE_GSETS,
2787 /*	h		i		j		k	*/
2788 CASE_GSETS,
2789 CASE_GSETS,
2790 CASE_GSETS,
2791 CASE_GSETS,
2792 /*	l		m		n		o	*/
2793 CASE_GSETS,
2794 CASE_GSETS,
2795 CASE_GSETS,
2796 CASE_GROUND_STATE, /* GSET('p') >= 0x40 (MBCS flag) */
2797 /*	p		q		r		s	*/
2798 CASE_GROUND_STATE,
2799 CASE_GROUND_STATE,
2800 CASE_GROUND_STATE,
2801 CASE_GROUND_STATE,
2802 /*	t		u		v		w	*/
2803 CASE_GROUND_STATE,
2804 CASE_GROUND_STATE,
2805 CASE_GROUND_STATE,
2806 CASE_GROUND_STATE,
2807 /*	x		y		z		{	*/
2808 CASE_GROUND_STATE,
2809 CASE_GROUND_STATE,
2810 CASE_GROUND_STATE,
2811 CASE_GROUND_STATE,
2812 /*	|		}		~		DEL	*/
2813 CASE_GROUND_STATE,
2814 CASE_GROUND_STATE,
2815 CASE_GROUND_STATE, /* empty character set */
2816 CASE_GROUND_STATE,
2817 /*      0x80            0x81            0x82            0x83    */
2818 CASE_IGNORE,
2819 CASE_IGNORE,
2820 CASE_IGNORE,
2821 CASE_IGNORE,
2822 /*      0x84            0x85            0x86            0x87    */
2823 CASE_IGNORE,
2824 CASE_IGNORE,
2825 CASE_IGNORE,
2826 CASE_IGNORE,
2827 /*      0x88            0x89            0x8a            0x8b    */
2828 CASE_IGNORE,
2829 CASE_IGNORE,
2830 CASE_IGNORE,
2831 CASE_IGNORE,
2832 /*      0x8c            0x8d            0x8e            0x8f    */
2833 CASE_IGNORE,
2834 CASE_IGNORE,
2835 CASE_IGNORE,
2836 CASE_IGNORE,
2837 /*      0x90            0x91            0x92            0x93    */
2838 CASE_IGNORE,
2839 CASE_IGNORE,
2840 CASE_IGNORE,
2841 CASE_IGNORE,
2842 /*      0x94            0x95            0x96            0x97    */
2843 CASE_IGNORE,
2844 CASE_IGNORE,
2845 CASE_IGNORE,
2846 CASE_IGNORE,
2847 /*      0x99            0x99            0x9a            0x9b    */
2848 CASE_IGNORE,
2849 CASE_IGNORE,
2850 CASE_IGNORE,
2851 CASE_IGNORE,
2852 /*      0x9c            0x9d            0x9e            0x9f    */
2853 CASE_IGNORE,
2854 CASE_IGNORE,
2855 CASE_IGNORE,
2856 CASE_IGNORE,
2857 /*      nobreakspace    exclamdown      cent            sterling        */
2858 CASE_GROUND_STATE,
2859 CASE_GROUND_STATE,
2860 CASE_GROUND_STATE,
2861 CASE_GROUND_STATE,
2862 /*      currency        yen             brokenbar       section         */
2863 CASE_GROUND_STATE,
2864 CASE_GROUND_STATE,
2865 CASE_GROUND_STATE,
2866 CASE_GROUND_STATE,
2867 /*      diaeresis       copyright       ordfeminine     guillemotleft   */
2868 CASE_GROUND_STATE,
2869 CASE_GROUND_STATE,
2870 CASE_GROUND_STATE,
2871 CASE_GROUND_STATE,
2872 /*      notsign         hyphen          registered      macron          */
2873 CASE_GROUND_STATE,
2874 CASE_GROUND_STATE,
2875 CASE_GROUND_STATE,
2876 CASE_GROUND_STATE,
2877 /*      degree          plusminus       twosuperior     threesuperior   */
2878 CASE_GROUND_STATE,
2879 CASE_GROUND_STATE,
2880 CASE_GROUND_STATE,
2881 CASE_GROUND_STATE,
2882 /*      acute           mu              paragraph       periodcentered  */
2883 CASE_GROUND_STATE,
2884 CASE_GROUND_STATE,
2885 CASE_GROUND_STATE,
2886 CASE_GROUND_STATE,
2887 /*      cedilla         onesuperior     masculine       guillemotright  */
2888 CASE_GROUND_STATE,
2889 CASE_GROUND_STATE,
2890 CASE_GROUND_STATE,
2891 CASE_GROUND_STATE,
2892 /*      onequarter      onehalf         threequarters   questiondown    */
2893 CASE_GROUND_STATE,
2894 CASE_GROUND_STATE,
2895 CASE_GROUND_STATE,
2896 CASE_GROUND_STATE,
2897 /*      Agrave          Aacute          Acircumflex     Atilde          */
2898 CASE_GROUND_STATE,
2899 CASE_GROUND_STATE,
2900 CASE_GROUND_STATE,
2901 CASE_GROUND_STATE,
2902 /*      Adiaeresis      Aring           AE              Ccedilla        */
2903 CASE_GROUND_STATE,
2904 CASE_GROUND_STATE,
2905 CASE_GROUND_STATE,
2906 CASE_GROUND_STATE,
2907 /*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
2908 CASE_GROUND_STATE,
2909 CASE_GROUND_STATE,
2910 CASE_GROUND_STATE,
2911 CASE_GROUND_STATE,
2912 /*      Igrave          Iacute          Icircumflex     Idiaeresis      */
2913 CASE_GROUND_STATE,
2914 CASE_GROUND_STATE,
2915 CASE_GROUND_STATE,
2916 CASE_GROUND_STATE,
2917 /*      Eth             Ntilde          Ograve          Oacute          */
2918 CASE_GROUND_STATE,
2919 CASE_GROUND_STATE,
2920 CASE_GROUND_STATE,
2921 CASE_GROUND_STATE,
2922 /*      Ocircumflex     Otilde          Odiaeresis      multiply        */
2923 CASE_GROUND_STATE,
2924 CASE_GROUND_STATE,
2925 CASE_GROUND_STATE,
2926 CASE_GROUND_STATE,
2927 /*      Ooblique        Ugrave          Uacute          Ucircumflex     */
2928 CASE_GROUND_STATE,
2929 CASE_GROUND_STATE,
2930 CASE_GROUND_STATE,
2931 CASE_GROUND_STATE,
2932 /*      Udiaeresis      Yacute          Thorn           ssharp          */
2933 CASE_GROUND_STATE,
2934 CASE_GROUND_STATE,
2935 CASE_GROUND_STATE,
2936 CASE_GROUND_STATE,
2937 /*      agrave          aacute          acircumflex     atilde          */
2938 CASE_GROUND_STATE,
2939 CASE_GROUND_STATE,
2940 CASE_GROUND_STATE,
2941 CASE_GROUND_STATE,
2942 /*      adiaeresis      aring           ae              ccedilla        */
2943 CASE_GROUND_STATE,
2944 CASE_GROUND_STATE,
2945 CASE_GROUND_STATE,
2946 CASE_GROUND_STATE,
2947 /*      egrave          eacute          ecircumflex     ediaeresis      */
2948 CASE_GROUND_STATE,
2949 CASE_GROUND_STATE,
2950 CASE_GROUND_STATE,
2951 CASE_GROUND_STATE,
2952 /*      igrave          iacute          icircumflex     idiaeresis      */
2953 CASE_GROUND_STATE,
2954 CASE_GROUND_STATE,
2955 CASE_GROUND_STATE,
2956 CASE_GROUND_STATE,
2957 /*      eth             ntilde          ograve          oacute          */
2958 CASE_GROUND_STATE,
2959 CASE_GROUND_STATE,
2960 CASE_GROUND_STATE,
2961 CASE_GROUND_STATE,
2962 /*      ocircumflex     otilde          odiaeresis      division        */
2963 CASE_GROUND_STATE,
2964 CASE_GROUND_STATE,
2965 CASE_GROUND_STATE,
2966 CASE_GROUND_STATE,
2967 /*      oslash          ugrave          uacute          ucircumflex     */
2968 CASE_GROUND_STATE,
2969 CASE_GROUND_STATE,
2970 CASE_GROUND_STATE,
2971 CASE_GROUND_STATE,
2972 /*      udiaeresis      yacute          thorn           ydiaeresis      */
2973 CASE_GROUND_STATE,
2974 CASE_GROUND_STATE,
2975 CASE_GROUND_STATE,
2976 CASE_GROUND_STATE,
2977 };
2978 
2979 Const int mbcstable[] = {
2980 /*	NUL		SOH		STX		ETX	*/
2981 CASE_IGNORE,
2982 CASE_IGNORE,
2983 CASE_IGNORE,
2984 CASE_IGNORE,
2985 /*	EOT		ENQ		ACK		BEL	*/
2986 CASE_IGNORE,
2987 CASE_IGNORE,
2988 CASE_IGNORE,
2989 CASE_BELL,
2990 /*	BS		HT		NL		VT	*/
2991 CASE_BS,
2992 CASE_TAB,
2993 CASE_VMOT,
2994 CASE_VMOT,
2995 /*	NP		CR		SO		SI	*/
2996 CASE_VMOT,
2997 CASE_CR,
2998 CASE_SO,
2999 CASE_SI,
3000 /*	DLE		DC1		DC2		DC3	*/
3001 CASE_IGNORE,
3002 CASE_IGNORE,
3003 CASE_IGNORE,
3004 CASE_IGNORE,
3005 /*	DC4		NAK		SYN		ETB	*/
3006 CASE_IGNORE,
3007 CASE_IGNORE,
3008 CASE_IGNORE,
3009 CASE_IGNORE,
3010 /*	CAN		EM		SUB		ESC	*/
3011 CASE_IGNORE,
3012 CASE_IGNORE,
3013 CASE_IGNORE,
3014 CASE_ESC,
3015 /*	FS		GS		RS		US	*/
3016 CASE_IGNORE,
3017 CASE_IGNORE,
3018 CASE_IGNORE,
3019 CASE_IGNORE,
3020 /*	SP		!		"		#	*/
3021 CASE_ESC_IGNORE,
3022 CASE_ESC_IGNORE,
3023 CASE_ESC_IGNORE,
3024 CASE_ESC_IGNORE,
3025 /*	$		%		&		'	*/
3026 CASE_ESC_IGNORE,
3027 CASE_ESC_IGNORE,
3028 CASE_ESC_IGNORE,
3029 CASE_ESC_IGNORE,
3030 /*	(		)		*		+	*/
3031 CASE_SCS_STATE,
3032 CASE_SCS_STATE,
3033 CASE_SCS_STATE,
3034 CASE_SCS_STATE,
3035 /*	,		-		.		/	*/
3036 CASE_ESC_IGNORE,
3037 CASE_SCS_STATE,
3038 CASE_SCS_STATE,
3039 CASE_SCS_STATE,
3040 /*	0		1		2		3	*/
3041 CASE_GROUND_STATE,
3042 CASE_GROUND_STATE,
3043 CASE_GROUND_STATE,
3044 CASE_GROUND_STATE,
3045 /*	4		5		6		7	*/
3046 CASE_GROUND_STATE,
3047 CASE_GROUND_STATE,
3048 CASE_GROUND_STATE,
3049 CASE_GROUND_STATE,
3050 /*	8		9		:		;	*/
3051 CASE_GROUND_STATE,
3052 CASE_GROUND_STATE,
3053 CASE_GROUND_STATE,
3054 CASE_GROUND_STATE,
3055 /*	<		=		>		?	*/
3056 CASE_GROUND_STATE,
3057 CASE_GROUND_STATE,
3058 CASE_GROUND_STATE,
3059 CASE_GROUND_STATE,
3060 /*	@		A		B		C	*/
3061 CASE_GSETS,	/* ESC-$-@ (JIS-78) */
3062 CASE_GSETS,	/* ESC-$-A (GB) */
3063 CASE_GSETS,	/* ESC-$-B (JIS-83) */
3064 CASE_GROUND_STATE,
3065 /*	D		E		F		G	*/
3066 CASE_GROUND_STATE,
3067 CASE_GROUND_STATE,
3068 CASE_GROUND_STATE,
3069 CASE_GROUND_STATE,
3070 /*	H		I		J		K	*/
3071 CASE_GROUND_STATE,
3072 CASE_GROUND_STATE,
3073 CASE_GROUND_STATE,
3074 CASE_GROUND_STATE,
3075 /*	L		M		N		O	*/
3076 CASE_GROUND_STATE,
3077 CASE_GROUND_STATE,
3078 CASE_GROUND_STATE,
3079 CASE_GROUND_STATE,
3080 /*	P		Q		R		S	*/
3081 CASE_IGNORE_STATE,
3082 CASE_GROUND_STATE,
3083 CASE_GROUND_STATE,
3084 CASE_GROUND_STATE,
3085 /*	T		U		V		W	*/
3086 CASE_GROUND_STATE,
3087 CASE_GROUND_STATE,
3088 CASE_GROUND_STATE,
3089 CASE_GROUND_STATE,
3090 /*	X		Y		Z		[	*/
3091 CASE_GROUND_STATE,
3092 CASE_GROUND_STATE,
3093 CASE_GROUND_STATE,
3094 CASE_GROUND_STATE,
3095 /*	\		]		^		_	*/
3096 CASE_GROUND_STATE,
3097 CASE_GROUND_STATE,
3098 CASE_IGNORE_STATE,
3099 CASE_IGNORE_STATE,
3100 /*	`		a		b		c	*/
3101 CASE_GROUND_STATE,
3102 CASE_GROUND_STATE,
3103 CASE_GROUND_STATE,
3104 CASE_GROUND_STATE,
3105 /*	d		e		f		g	*/
3106 CASE_GROUND_STATE,
3107 CASE_GROUND_STATE,
3108 CASE_GROUND_STATE,
3109 CASE_GROUND_STATE,
3110 /*	h		i		j		k	*/
3111 CASE_GROUND_STATE,
3112 CASE_GROUND_STATE,
3113 CASE_GROUND_STATE,
3114 CASE_GROUND_STATE,
3115 /*	l		m		n		o	*/
3116 CASE_GROUND_STATE,
3117 CASE_GROUND_STATE,
3118 CASE_GROUND_STATE,
3119 CASE_GROUND_STATE,
3120 /*	p		q		r		s	*/
3121 CASE_GROUND_STATE,
3122 CASE_GROUND_STATE,
3123 CASE_GROUND_STATE,
3124 CASE_GROUND_STATE,
3125 /*	t		u		v		w	*/
3126 CASE_GROUND_STATE,
3127 CASE_GROUND_STATE,
3128 CASE_GROUND_STATE,
3129 CASE_GROUND_STATE,
3130 /*	x		y		z		{	*/
3131 CASE_GROUND_STATE,
3132 CASE_GROUND_STATE,
3133 CASE_GROUND_STATE,
3134 CASE_GROUND_STATE,
3135 /*	|		}		~		DEL	*/
3136 CASE_GROUND_STATE,
3137 CASE_GROUND_STATE,
3138 CASE_GROUND_STATE,
3139 CASE_GROUND_STATE,
3140 /*      0x80            0x81            0x82            0x83    */
3141 CASE_IGNORE,
3142 CASE_IGNORE,
3143 CASE_IGNORE,
3144 CASE_IGNORE,
3145 /*      0x84            0x85            0x86            0x87    */
3146 CASE_IGNORE,
3147 CASE_IGNORE,
3148 CASE_IGNORE,
3149 CASE_IGNORE,
3150 /*      0x88            0x89            0x8a            0x8b    */
3151 CASE_IGNORE,
3152 CASE_IGNORE,
3153 CASE_IGNORE,
3154 CASE_IGNORE,
3155 /*      0x8c            0x8d            0x8e            0x8f    */
3156 CASE_IGNORE,
3157 CASE_IGNORE,
3158 CASE_IGNORE,
3159 CASE_IGNORE,
3160 /*      0x90            0x91            0x92            0x93    */
3161 CASE_IGNORE,
3162 CASE_IGNORE,
3163 CASE_IGNORE,
3164 CASE_IGNORE,
3165 /*      0x94            0x95            0x96            0x97    */
3166 CASE_IGNORE,
3167 CASE_IGNORE,
3168 CASE_IGNORE,
3169 CASE_IGNORE,
3170 /*      0x99            0x99            0x9a            0x9b    */
3171 CASE_IGNORE,
3172 CASE_IGNORE,
3173 CASE_IGNORE,
3174 CASE_IGNORE,
3175 /*      0x9c            0x9d            0x9e            0x9f    */
3176 CASE_IGNORE,
3177 CASE_IGNORE,
3178 CASE_IGNORE,
3179 CASE_IGNORE,
3180 /*      nobreakspace    exclamdown      cent            sterling        */
3181 CASE_GROUND_STATE,
3182 CASE_GROUND_STATE,
3183 CASE_GROUND_STATE,
3184 CASE_GROUND_STATE,
3185 /*      currency        yen             brokenbar       section         */
3186 CASE_GROUND_STATE,
3187 CASE_GROUND_STATE,
3188 CASE_GROUND_STATE,
3189 CASE_GROUND_STATE,
3190 /*      diaeresis       copyright       ordfeminine     guillemotleft   */
3191 CASE_GROUND_STATE,
3192 CASE_GROUND_STATE,
3193 CASE_GROUND_STATE,
3194 CASE_GROUND_STATE,
3195 /*      notsign         hyphen          registered      macron          */
3196 CASE_GROUND_STATE,
3197 CASE_GROUND_STATE,
3198 CASE_GROUND_STATE,
3199 CASE_GROUND_STATE,
3200 /*      degree          plusminus       twosuperior     threesuperior   */
3201 CASE_GROUND_STATE,
3202 CASE_GROUND_STATE,
3203 CASE_GROUND_STATE,
3204 CASE_GROUND_STATE,
3205 /*      acute           mu              paragraph       periodcentered  */
3206 CASE_GROUND_STATE,
3207 CASE_GROUND_STATE,
3208 CASE_GROUND_STATE,
3209 CASE_GROUND_STATE,
3210 /*      cedilla         onesuperior     masculine       guillemotright  */
3211 CASE_GROUND_STATE,
3212 CASE_GROUND_STATE,
3213 CASE_GROUND_STATE,
3214 CASE_GROUND_STATE,
3215 /*      onequarter      onehalf         threequarters   questiondown    */
3216 CASE_GROUND_STATE,
3217 CASE_GROUND_STATE,
3218 CASE_GROUND_STATE,
3219 CASE_GROUND_STATE,
3220 /*      Agrave          Aacute          Acircumflex     Atilde          */
3221 CASE_GROUND_STATE,
3222 CASE_GROUND_STATE,
3223 CASE_GROUND_STATE,
3224 CASE_GROUND_STATE,
3225 /*      Adiaeresis      Aring           AE              Ccedilla        */
3226 CASE_GROUND_STATE,
3227 CASE_GROUND_STATE,
3228 CASE_GROUND_STATE,
3229 CASE_GROUND_STATE,
3230 /*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
3231 CASE_GROUND_STATE,
3232 CASE_GROUND_STATE,
3233 CASE_GROUND_STATE,
3234 CASE_GROUND_STATE,
3235 /*      Igrave          Iacute          Icircumflex     Idiaeresis      */
3236 CASE_GROUND_STATE,
3237 CASE_GROUND_STATE,
3238 CASE_GROUND_STATE,
3239 CASE_GROUND_STATE,
3240 /*      Eth             Ntilde          Ograve          Oacute          */
3241 CASE_GROUND_STATE,
3242 CASE_GROUND_STATE,
3243 CASE_GROUND_STATE,
3244 CASE_GROUND_STATE,
3245 /*      Ocircumflex     Otilde          Odiaeresis      multiply        */
3246 CASE_GROUND_STATE,
3247 CASE_GROUND_STATE,
3248 CASE_GROUND_STATE,
3249 CASE_GROUND_STATE,
3250 /*      Ooblique        Ugrave          Uacute          Ucircumflex     */
3251 CASE_GROUND_STATE,
3252 CASE_GROUND_STATE,
3253 CASE_GROUND_STATE,
3254 CASE_GROUND_STATE,
3255 /*      Udiaeresis      Yacute          Thorn           ssharp          */
3256 CASE_GROUND_STATE,
3257 CASE_GROUND_STATE,
3258 CASE_GROUND_STATE,
3259 CASE_GROUND_STATE,
3260 /*      agrave          aacute          acircumflex     atilde          */
3261 CASE_GROUND_STATE,
3262 CASE_GROUND_STATE,
3263 CASE_GROUND_STATE,
3264 CASE_GROUND_STATE,
3265 /*      adiaeresis      aring           ae              ccedilla        */
3266 CASE_GROUND_STATE,
3267 CASE_GROUND_STATE,
3268 CASE_GROUND_STATE,
3269 CASE_GROUND_STATE,
3270 /*      egrave          eacute          ecircumflex     ediaeresis      */
3271 CASE_GROUND_STATE,
3272 CASE_GROUND_STATE,
3273 CASE_GROUND_STATE,
3274 CASE_GROUND_STATE,
3275 /*      igrave          iacute          icircumflex     idiaeresis      */
3276 CASE_GROUND_STATE,
3277 CASE_GROUND_STATE,
3278 CASE_GROUND_STATE,
3279 CASE_GROUND_STATE,
3280 /*      eth             ntilde          ograve          oacute          */
3281 CASE_GROUND_STATE,
3282 CASE_GROUND_STATE,
3283 CASE_GROUND_STATE,
3284 CASE_GROUND_STATE,
3285 /*      ocircumflex     otilde          odiaeresis      division        */
3286 CASE_GROUND_STATE,
3287 CASE_GROUND_STATE,
3288 CASE_GROUND_STATE,
3289 CASE_GROUND_STATE,
3290 /*      oslash          ugrave          uacute          ucircumflex     */
3291 CASE_GROUND_STATE,
3292 CASE_GROUND_STATE,
3293 CASE_GROUND_STATE,
3294 CASE_GROUND_STATE,
3295 /*      udiaeresis      yacute          thorn           ydiaeresis      */
3296 CASE_GROUND_STATE,
3297 CASE_GROUND_STATE,
3298 CASE_GROUND_STATE,
3299 CASE_GROUND_STATE,
3300 };
3301 
3302 Const int smbcstable[] = {
3303 /*	NUL		SOH		STX		ETX	*/
3304 CASE_IGNORE,
3305 CASE_IGNORE,
3306 CASE_IGNORE,
3307 CASE_IGNORE,
3308 /*	EOT		ENQ		ACK		BEL	*/
3309 CASE_IGNORE,
3310 CASE_IGNORE,
3311 CASE_IGNORE,
3312 CASE_BELL,
3313 /*	BS		HT		NL		VT	*/
3314 CASE_BS,
3315 CASE_TAB,
3316 CASE_VMOT,
3317 CASE_VMOT,
3318 /*	NP		CR		SO		SI	*/
3319 CASE_VMOT,
3320 CASE_CR,
3321 CASE_SO,
3322 CASE_SI,
3323 /*	DLE		DC1		DC2		DC3	*/
3324 CASE_IGNORE,
3325 CASE_IGNORE,
3326 CASE_IGNORE,
3327 CASE_IGNORE,
3328 /*	DC4		NAK		SYN		ETB	*/
3329 CASE_IGNORE,
3330 CASE_IGNORE,
3331 CASE_IGNORE,
3332 CASE_IGNORE,
3333 /*	CAN		EM		SUB		ESC	*/
3334 CASE_IGNORE,
3335 CASE_IGNORE,
3336 CASE_IGNORE,
3337 CASE_ESC,
3338 /*	FS		GS		RS		US	*/
3339 CASE_IGNORE,
3340 CASE_IGNORE,
3341 CASE_IGNORE,
3342 CASE_IGNORE,
3343 /*	SP		!		"		#	*/
3344 CASE_ESC_IGNORE,
3345 CASE_ESC_IGNORE,
3346 CASE_ESC_IGNORE,
3347 CASE_ESC_IGNORE,
3348 /*	$		%		&		'	*/
3349 CASE_ESC_IGNORE,
3350 CASE_ESC_IGNORE,
3351 CASE_ESC_IGNORE,
3352 CASE_ESC_IGNORE,
3353 /*	(		)		*		+	*/
3354 CASE_ESC_IGNORE,
3355 CASE_ESC_IGNORE,
3356 CASE_ESC_IGNORE,
3357 CASE_ESC_IGNORE,
3358 /*	,		-		.		/	*/
3359 CASE_ESC_IGNORE,
3360 CASE_ESC_IGNORE,
3361 CASE_ESC_IGNORE,
3362 CASE_ESC_IGNORE,
3363 /*	0		1		2		3	*/
3364 CASE_GROUND_STATE, /* (2-byte or more) private character set */
3365 CASE_GROUND_STATE,
3366 CASE_GROUND_STATE,
3367 CASE_GROUND_STATE,
3368 /*	4		5		6		7	*/
3369 CASE_GROUND_STATE,
3370 CASE_GROUND_STATE,
3371 CASE_GROUND_STATE,
3372 CASE_GROUND_STATE,
3373 /*	8		9		:		;	*/
3374 CASE_GROUND_STATE,
3375 CASE_GROUND_STATE,
3376 CASE_GROUND_STATE,
3377 CASE_GROUND_STATE,
3378 /*	<		=		>		?	*/
3379 CASE_GROUND_STATE,
3380 CASE_GROUND_STATE,
3381 CASE_GROUND_STATE,
3382 CASE_GROUND_STATE,
3383 /*	@		A		B		C	*/
3384 CASE_GSETS,	/* ESC-$-I-F */
3385 CASE_GSETS,
3386 CASE_GSETS,
3387 CASE_GSETS,
3388 /*	D		E		F		G	*/
3389 CASE_GSETS,
3390 CASE_GSETS,
3391 CASE_GSETS,
3392 CASE_GSETS,
3393 /*	H		I		J		K	*/
3394 CASE_GSETS,
3395 CASE_GSETS,
3396 CASE_GSETS,
3397 CASE_GSETS,
3398 /*	L		M		N		O	*/
3399 CASE_GSETS,
3400 CASE_GSETS,
3401 CASE_GSETS,
3402 CASE_GSETS,
3403 /*	P		Q		R		S	*/
3404 CASE_GSETS,
3405 CASE_GSETS,
3406 CASE_GSETS,
3407 CASE_GSETS,
3408 /*	T		U		V		W	*/
3409 CASE_GSETS,
3410 CASE_GSETS,
3411 CASE_GSETS,
3412 CASE_GSETS,
3413 /*	X		Y		Z		[	*/
3414 CASE_GSETS,
3415 CASE_GSETS,
3416 CASE_GSETS,
3417 CASE_GSETS,
3418 /*	\		]		^		_	*/
3419 CASE_GSETS,
3420 CASE_GSETS,
3421 CASE_GSETS,
3422 CASE_GSETS,
3423 /*	`		a		b		c	*/
3424 CASE_GROUND_STATE, /* 3-byte character set */
3425 CASE_GROUND_STATE,
3426 CASE_GROUND_STATE,
3427 CASE_GROUND_STATE,
3428 /*	d		e		f		g	*/
3429 CASE_GROUND_STATE,
3430 CASE_GROUND_STATE,
3431 CASE_GROUND_STATE,
3432 CASE_GROUND_STATE,
3433 /*	h		i		j		k	*/
3434 CASE_GROUND_STATE,
3435 CASE_GROUND_STATE,
3436 CASE_GROUND_STATE,
3437 CASE_GROUND_STATE,
3438 /*	l		m		n		o	*/
3439 CASE_GROUND_STATE,
3440 CASE_GROUND_STATE,
3441 CASE_GROUND_STATE,
3442 CASE_GROUND_STATE,
3443 /*	p		q		r		s	*/
3444 CASE_GROUND_STATE, /* 4-byte character set */
3445 CASE_GROUND_STATE,
3446 CASE_GROUND_STATE,
3447 CASE_GROUND_STATE,
3448 /*	t		u		v		w	*/
3449 CASE_GROUND_STATE,
3450 CASE_GROUND_STATE,
3451 CASE_GROUND_STATE,
3452 CASE_GROUND_STATE,
3453 /*	x		y		z		{	*/
3454 CASE_GROUND_STATE,
3455 CASE_GROUND_STATE,
3456 CASE_GROUND_STATE,
3457 CASE_GROUND_STATE,
3458 /*	|		}		~		DEL	*/
3459 CASE_GROUND_STATE,
3460 CASE_GROUND_STATE,
3461 CASE_GROUND_STATE,
3462 CASE_GROUND_STATE,
3463 /*      0x80            0x81            0x82            0x83    */
3464 CASE_IGNORE,
3465 CASE_IGNORE,
3466 CASE_IGNORE,
3467 CASE_IGNORE,
3468 /*      0x84            0x85            0x86            0x87    */
3469 CASE_IGNORE,
3470 CASE_IGNORE,
3471 CASE_IGNORE,
3472 CASE_IGNORE,
3473 /*      0x88            0x89            0x8a            0x8b    */
3474 CASE_IGNORE,
3475 CASE_IGNORE,
3476 CASE_IGNORE,
3477 CASE_IGNORE,
3478 /*      0x8c            0x8d            0x8e            0x8f    */
3479 CASE_IGNORE,
3480 CASE_IGNORE,
3481 CASE_IGNORE,
3482 CASE_IGNORE,
3483 /*      0x90            0x91            0x92            0x93    */
3484 CASE_IGNORE,
3485 CASE_IGNORE,
3486 CASE_IGNORE,
3487 CASE_IGNORE,
3488 /*      0x94            0x95            0x96            0x97    */
3489 CASE_IGNORE,
3490 CASE_IGNORE,
3491 CASE_IGNORE,
3492 CASE_IGNORE,
3493 /*      0x99            0x99            0x9a            0x9b    */
3494 CASE_IGNORE,
3495 CASE_IGNORE,
3496 CASE_IGNORE,
3497 CASE_IGNORE,
3498 /*      0x9c            0x9d            0x9e            0x9f    */
3499 CASE_IGNORE,
3500 CASE_IGNORE,
3501 CASE_IGNORE,
3502 CASE_IGNORE,
3503 /*      nobreakspace    exclamdown      cent            sterling        */
3504 CASE_GROUND_STATE,
3505 CASE_GROUND_STATE,
3506 CASE_GROUND_STATE,
3507 CASE_GROUND_STATE,
3508 /*      currency        yen             brokenbar       section         */
3509 CASE_GROUND_STATE,
3510 CASE_GROUND_STATE,
3511 CASE_GROUND_STATE,
3512 CASE_GROUND_STATE,
3513 /*      diaeresis       copyright       ordfeminine     guillemotleft   */
3514 CASE_GROUND_STATE,
3515 CASE_GROUND_STATE,
3516 CASE_GROUND_STATE,
3517 CASE_GROUND_STATE,
3518 /*      notsign         hyphen          registered      macron          */
3519 CASE_GROUND_STATE,
3520 CASE_GROUND_STATE,
3521 CASE_GROUND_STATE,
3522 CASE_GROUND_STATE,
3523 /*      degree          plusminus       twosuperior     threesuperior   */
3524 CASE_GROUND_STATE,
3525 CASE_GROUND_STATE,
3526 CASE_GROUND_STATE,
3527 CASE_GROUND_STATE,
3528 /*      acute           mu              paragraph       periodcentered  */
3529 CASE_GROUND_STATE,
3530 CASE_GROUND_STATE,
3531 CASE_GROUND_STATE,
3532 CASE_GROUND_STATE,
3533 /*      cedilla         onesuperior     masculine       guillemotright  */
3534 CASE_GROUND_STATE,
3535 CASE_GROUND_STATE,
3536 CASE_GROUND_STATE,
3537 CASE_GROUND_STATE,
3538 /*      onequarter      onehalf         threequarters   questiondown    */
3539 CASE_GROUND_STATE,
3540 CASE_GROUND_STATE,
3541 CASE_GROUND_STATE,
3542 CASE_GROUND_STATE,
3543 /*      Agrave          Aacute          Acircumflex     Atilde          */
3544 CASE_GROUND_STATE,
3545 CASE_GROUND_STATE,
3546 CASE_GROUND_STATE,
3547 CASE_GROUND_STATE,
3548 /*      Adiaeresis      Aring           AE              Ccedilla        */
3549 CASE_GROUND_STATE,
3550 CASE_GROUND_STATE,
3551 CASE_GROUND_STATE,
3552 CASE_GROUND_STATE,
3553 /*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
3554 CASE_GROUND_STATE,
3555 CASE_GROUND_STATE,
3556 CASE_GROUND_STATE,
3557 CASE_GROUND_STATE,
3558 /*      Igrave          Iacute          Icircumflex     Idiaeresis      */
3559 CASE_GROUND_STATE,
3560 CASE_GROUND_STATE,
3561 CASE_GROUND_STATE,
3562 CASE_GROUND_STATE,
3563 /*      Eth             Ntilde          Ograve          Oacute          */
3564 CASE_GROUND_STATE,
3565 CASE_GROUND_STATE,
3566 CASE_GROUND_STATE,
3567 CASE_GROUND_STATE,
3568 /*      Ocircumflex     Otilde          Odiaeresis      multiply        */
3569 CASE_GROUND_STATE,
3570 CASE_GROUND_STATE,
3571 CASE_GROUND_STATE,
3572 CASE_GROUND_STATE,
3573 /*      Ooblique        Ugrave          Uacute          Ucircumflex     */
3574 CASE_GROUND_STATE,
3575 CASE_GROUND_STATE,
3576 CASE_GROUND_STATE,
3577 CASE_GROUND_STATE,
3578 /*      Udiaeresis      Yacute          Thorn           ssharp          */
3579 CASE_GROUND_STATE,
3580 CASE_GROUND_STATE,
3581 CASE_GROUND_STATE,
3582 CASE_GROUND_STATE,
3583 /*      agrave          aacute          acircumflex     atilde          */
3584 CASE_GROUND_STATE,
3585 CASE_GROUND_STATE,
3586 CASE_GROUND_STATE,
3587 CASE_GROUND_STATE,
3588 /*      adiaeresis      aring           ae              ccedilla        */
3589 CASE_GROUND_STATE,
3590 CASE_GROUND_STATE,
3591 CASE_GROUND_STATE,
3592 CASE_GROUND_STATE,
3593 /*      egrave          eacute          ecircumflex     ediaeresis      */
3594 CASE_GROUND_STATE,
3595 CASE_GROUND_STATE,
3596 CASE_GROUND_STATE,
3597 CASE_GROUND_STATE,
3598 /*      igrave          iacute          icircumflex     idiaeresis      */
3599 CASE_GROUND_STATE,
3600 CASE_GROUND_STATE,
3601 CASE_GROUND_STATE,
3602 CASE_GROUND_STATE,
3603 /*      eth             ntilde          ograve          oacute          */
3604 CASE_GROUND_STATE,
3605 CASE_GROUND_STATE,
3606 CASE_GROUND_STATE,
3607 CASE_GROUND_STATE,
3608 /*      ocircumflex     otilde          odiaeresis      division        */
3609 CASE_GROUND_STATE,
3610 CASE_GROUND_STATE,
3611 CASE_GROUND_STATE,
3612 CASE_GROUND_STATE,
3613 /*      oslash          ugrave          uacute          ucircumflex     */
3614 CASE_GROUND_STATE,
3615 CASE_GROUND_STATE,
3616 CASE_GROUND_STATE,
3617 CASE_GROUND_STATE,
3618 /*      udiaeresis      yacute          thorn           ydiaeresis      */
3619 CASE_GROUND_STATE,
3620 CASE_GROUND_STATE,
3621 CASE_GROUND_STATE,
3622 CASE_GROUND_STATE,
3623 };
3624