kterm (6.2.0-46) VTPrsTbl.c

Summary

 VTPrsTbl.c |  418 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 372 insertions(+), 46 deletions(-)

    
download this patch

Patch contents

--- kterm-6.2.0.orig/VTPrsTbl.c
+++ kterm-6.2.0/VTPrsTbl.c
@@ -1417,12 +1417,15 @@
 /*	$		%		&		'	*/
 #ifdef KTERM_MBCS
 CASE_MBCS,
+CASE_ESC_IGNORE,
+CASE_GSET_VERSION_STATE,
+CASE_ESC_IGNORE,
 #else /* !KTERM_MBCS */
 CASE_ESC_IGNORE,
-#endif /* !KTERM_MBCS */
 CASE_ESC_IGNORE,
 CASE_ESC_IGNORE,
 CASE_ESC_IGNORE,
+#endif /* !KTERM_MBCS */
 /*	(		)		*		+	*/
 #ifdef KTERM
 CASE_SCS_STATE,
@@ -2746,24 +2749,24 @@
 #ifdef KTERM
 /*	0		1		2		3	*/
 CASE_GSETS,
-CASE_GSETS,
-CASE_GSETS,
-CASE_GSETS,
+CASE_ESC_IGNORE,
+CASE_ESC_IGNORE,
+CASE_ESC_IGNORE,
 /*	4		5		6		7	*/
-CASE_GSETS,
-CASE_GSETS,
-CASE_GSETS,
-CASE_GSETS,
+CASE_ESC_IGNORE,
+CASE_ESC_IGNORE,
+CASE_ESC_IGNORE,
+CASE_ESC_IGNORE,
 /*	8		9		:		;	*/
-CASE_GSETS,
-CASE_GSETS,
-CASE_GSETS,
-CASE_GSETS,
+CASE_ESC_IGNORE,
+CASE_ESC_IGNORE,
+CASE_ESC_IGNORE,
+CASE_ESC_IGNORE,
 /*	<		=		>		?	*/
-CASE_GSETS,
-CASE_GSETS,
-CASE_GSETS,
-CASE_GSETS,
+CASE_ESC_IGNORE,
+CASE_ESC_IGNORE,
+CASE_ESC_IGNORE,
+CASE_ESC_IGNORE,
 /*	@		A		B		C	*/
 CASE_GSETS,
 CASE_GSETS,
@@ -2823,25 +2826,25 @@
 CASE_GSETS,
 CASE_GSETS,
 CASE_GSETS,
-CASE_GROUND_STATE, /* GSET('p') >= 0x40 (MBCS flag) */
+CASE_GSETS,
 /*	p		q		r		s	*/
-CASE_GROUND_STATE,
-CASE_GROUND_STATE,
-CASE_GROUND_STATE,
-CASE_GROUND_STATE,
+CASE_GSETS,
+CASE_GSETS,
+CASE_GSETS,
+CASE_GSETS,
 /*	t		u		v		w	*/
-CASE_GROUND_STATE,
-CASE_GROUND_STATE,
-CASE_GROUND_STATE,
-CASE_GROUND_STATE,
+CASE_GSETS,
+CASE_GSETS,
+CASE_GSETS,
+CASE_GSETS,
 /*	x		y		z		{	*/
-CASE_GROUND_STATE,
-CASE_GROUND_STATE,
-CASE_GROUND_STATE,
-CASE_GROUND_STATE,
+CASE_GSETS,
+CASE_GSETS,
+CASE_GSETS,
+CASE_GSETS,
 /*	|		}		~		DEL	*/
-CASE_GROUND_STATE,
-CASE_GROUND_STATE,
+CASE_GSETS,
+CASE_GSETS,
 CASE_GROUND_STATE, /* empty character set */
 CASE_GROUND_STATE,
 #else /* !KTERM */
@@ -3514,27 +3517,27 @@
 CASE_GROUND_STATE,
 CASE_GROUND_STATE,
 /*	@		A		B		C	*/
-CASE_GSETS,	/* ESC-$-I-F */
-CASE_GSETS,
-CASE_GSETS,
-CASE_GSETS,
+CASE_GSETS,	/* ESC-$-I-@ (JIS C 6226 1978)   */
+CASE_GSETS,    	/* ESC-$-I-A (GB 2312 1980)      */
+CASE_GSETS,     /* ESC-$-I-B (JIS X 0208 1983)   */
+CASE_GSETS,     /* ESC-$-I-C (KS C 5601 1987)    */
 /*	D		E		F		G	*/
+CASE_GSETS,     /* ESC-$-I-D (JIS X 0212 1999)   */
 CASE_GSETS,
 CASE_GSETS,
-CASE_GSETS,
-CASE_GSETS,
+CASE_GSETS,     /* ESC-$-I-G (CNS 11643 1992 1)  */
 /*	H		I		J		K	*/
-CASE_GSETS,
-CASE_GSETS,
-CASE_GSETS,
-CASE_GSETS,
+CASE_GSETS,     /* ESC-$-I-H (CNS 11643 1992 2)  */
+CASE_GSETS,     /* ESC-$-I-I (CNS 11643 1992 3)  */
+CASE_GSETS,     /* ESC-$-I-J (CNS 11643 1992 4)  */
+CASE_GSETS,     /* ESC-$-I-K (CNS 11643 1992 5)  */
 /*	L		M		N		O	*/
+CASE_GSETS,     /* ESC-$-I-L (CNS 11643 1992 6)  */
+CASE_GSETS,     /* ESC-$-I-M (CNS 11643 1992 7)  */
 CASE_GSETS,
-CASE_GSETS,
-CASE_GSETS,
-CASE_GSETS,
+CASE_GSETS,     /* ESC-$-I-O (JIS X 0213 2000 1) */
 /*	P		Q		R		S	*/
-CASE_GSETS,
+CASE_GSETS,     /* ESC-$-I-P (JIS X 0213 2000 2) */
 CASE_GSETS,
 CASE_GSETS,
 CASE_GSETS,
@@ -3552,7 +3555,7 @@
 CASE_GSETS,
 CASE_GSETS,
 CASE_GSETS,
-CASE_GSETS,
+CASE_GROUND_STATE, /* kterm internal use */
 /*	`		a		b		c	*/
 CASE_GROUND_STATE, /* 3-byte character set */
 CASE_GROUND_STATE,
@@ -3754,4 +3757,327 @@
 CASE_GROUND_STATE,
 CASE_GROUND_STATE,
 };
+
+Const int escversiontable[] = {
+/*      NUL             SOH             STX             ETX     */
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+/*      EOT             ENQ             ACK             BEL     */
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_BELL,
+/*      BS              HT              NL              VT      */
+CASE_BS,
+CASE_TAB,
+CASE_VMOT,
+CASE_VMOT,
+/*      NP              CR              SO              SI      */
+CASE_VMOT,
+CASE_CR,
+CASE_SO,
+CASE_SI,
+/*      DLE             DC1             DC2             DC3     */
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+/*      DC4             NAK             SYN             ETB     */
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+/*      CAN             EM              SUB             ESC     */
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_ESC,
+/*      FS              GS              RS              US      */
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+/*      SP              !               "               #       */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      $               %               &               '       */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      (               )               *               +       */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      ,               -               .               /       */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      0               1               2               3       */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      4               5               6               7       */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      8               9               :               ;       */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      <               =               >               ?       */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      @               A               B               C       */
+CASE_GSET_VERSION,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*     D               E               F               G       */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*     H               I               J               K       */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*     L               M               N               O       */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*     P               Q               R               S       */
+CASE_IGNORE_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*     T               U               V               W       */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*     X               Y               Z               [       */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*     \               ]               ^               _       */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_IGNORE_STATE,
+CASE_IGNORE_STATE,
+/*     `               a               b               c       */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*     d               e               f               g       */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*     h               i               j               k       */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*     l               m               n               o       */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*     p               q               r               s       */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*     t               u               v               w       */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*     x               y               z               {       */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*     |               }               ~               DEL     */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      0x80            0x81            0x82            0x83    */
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+/*      0x84            0x85            0x86            0x87    */
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+/*      0x88            0x89            0x8a            0x8b    */
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+/*      0x8c            0x8d            0x8e            0x8f    */
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+/*      0x90            0x91            0x92            0x93    */
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+/*      0x94            0x95            0x96            0x97    */
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+/*      0x99            0x99            0x9a            0x9b    */
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+/*      0x9c            0x9d            0x9e            0x9f    */
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+CASE_IGNORE,
+/*      nobreakspace    exclamdown      cent            sterling        */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      currency        yen             brokenbar       section         */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      diaeresis       copyright       ordfeminine     guillemotleft   */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      notsign         hyphen          registered      macron          */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      degree          plusminus       twosuperior     threesuperior   */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      acute           mu              paragraph       periodcentered  */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      cedilla         onesuperior     masculine       guillemotright  */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      onequarter      onehalf         threequarters   questiondown    */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      Agrave          Aacute          Acircumflex     Atilde          */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      Adiaeresis      Aring           AE              Ccedilla        */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      Eth             Ntilde          Ograve          Oacute          */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      Udiaeresis      Yacute          Thorn           ssharp          */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      agrave          aacute          acircumflex     atilde          */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      adiaeresis      aring           ae              ccedilla        */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      egrave          eacute          ecircumflex     ediaeresis      */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      igrave          iacute          icircumflex     idiaeresis      */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      eth             ntilde          ograve          oacute          */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      ocircumflex     otilde          odiaeresis      division        */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      oslash          ugrave          uacute          ucircumflex     */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+/*      udiaeresis      yacute          thorn           ydiaeresis      */
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+CASE_GROUND_STATE,
+};
 #endif /* KTERM_MBCS */