v09i035: colxterm -- Color xterm, Part05/14
Tom Weinstein
tomw at orac.esd.sgi.com
Fri Sep 14 13:50:13 AEST 1990
Submitted-by: Tom Weinstein <tomw at orac.esd.sgi.com>
Posting-number: Volume 9, Issue 35
Archive-name: colxterm/part05
#! /bin/sh
# This is a shell archive. Remove anything before this line, then feed it
# into a shell via "sh file" or similar. To overwrite existing files,
# type "sh file -c".
# The tool that generated this appeared in the comp.sources.unix newsgroup;
# send mail to comp-sources-unix at uunet.uu.net if you want that tool.
# If this archive is complete, you will see the following message at the end:
# "End of archive 5 (of 14)."
# Contents: xterm/VTPrsTbl.c.ab xterm/charproc.c.aa
# Wrapped by argv at turnpike on Thu Sep 13 20:42:21 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'xterm/VTPrsTbl.c.ab' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xterm/VTPrsTbl.c.ab'\"
else
echo shar: Extracting \"'xterm/VTPrsTbl.c.ab'\" \(22756 characters\)
sed "s/^X//" >'xterm/VTPrsTbl.c.ab' <<'END_OF_FILE'
XCASE_GROUND_STATE,
X/* oslash ugrave uacute ucircumflex */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* udiaeresis yacute thorn ydiaeresis */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X};
X
Xint eigtable[] = {
X/* NUL SOH STX ETX */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* EOT ENQ ACK BEL */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_BELL,
X/* BS HT NL VT */
XCASE_BS,
XCASE_TAB,
XCASE_VMOT,
XCASE_VMOT,
X/* NP CR SO SI */
XCASE_VMOT,
XCASE_CR,
XCASE_SO,
XCASE_SI,
X/* DLE DC1 DC2 DC3 */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* DC4 NAK SYN ETB */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* CAN EM SUB ESC */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_ESC,
X/* FS GS RS US */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* SP ! " # */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* $ % & ' */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* ( ) * + */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* ,
X - . / */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* 0 1 2 3 */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* 4 5 6 7 */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* 8 9 : ; */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* < = > ? */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* @ A B C */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* D E F G */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* H I J K */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* L M N O */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* P Q R S */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* T U V W */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* X Y Z [ */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* \ ] ^ _ */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* ` a b c */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* d e f g */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* h i j k */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* l m n o */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* p q r s */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* t u v w */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* x y z { */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* | } ~ DEL */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* 0x80 0x81 0x82 0x83 */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* 0x84 0x85 0x86 0x87 */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* 0x88 0x89 0x8a 0x8b */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* 0x8c 0x8d 0x8e 0x8f */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* 0x90 0x91 0x92 0x93 */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* 0x94 0x95 0x96 0x97 */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* 0x99 0x99 0x9a 0x9b */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* 0x9c 0x9d 0x9e 0x9f */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* nobreakspace exclamdown cent sterling */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* currency yen brokenbar section */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* diaeresis copyright ordfeminine guillemotleft */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* notsign hyphen registered macron */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* degree plusminus twosuperior threesuperior */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* acute mu paragraph periodcentered */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* cedilla onesuperior masculine guillemotright */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* onequarter onehalf threequarters questiondown */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* Agrave Aacute Acircumflex Atilde */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* Adiaeresis Aring AE Ccedilla */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* Egrave Eacute Ecircumflex Ediaeresis */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* Igrave Iacute Icircumflex Idiaeresis */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* Eth Ntilde Ograve Oacute */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* Ocircumflex Otilde Odiaeresis multiply */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* Ooblique Ugrave Uacute Ucircumflex */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* Udiaeresis Yacute Thorn ssharp */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* agrave aacute acircumflex atilde */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* adiaeresis aring ae ccedilla */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* egrave eacute ecircumflex ediaeresis */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* igrave iacute icircumflex idiaeresis */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* eth ntilde ograve oacute */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* ocircumflex otilde odiaeresis division */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* oslash ugrave uacute ucircumflex */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* udiaeresis yacute thorn ydiaeresis */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X};
X
Xint esctable[] = {
X/* NUL SOH STX ETX */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* EOT ENQ ACK BEL */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_BELL,
X/* BS HT NL VT */
XCASE_BS,
XCASE_TAB,
XCASE_VMOT,
XCASE_VMOT,
X/* NP CR SO SI */
XCASE_VMOT,
XCASE_CR,
XCASE_SO,
XCASE_SI,
X/* DLE DC1 DC2 DC3 */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* DC4 NAK SYN ETB */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* CAN EM SUB ESC */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_ESC,
X/* FS GS RS US */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* SP ! " # */
XCASE_ESC_IGNORE,
XCASE_ESC_IGNORE,
XCASE_ESC_IGNORE,
XCASE_SCR_STATE,
X/* $ % & ' */
XCASE_ESC_IGNORE,
XCASE_ESC_IGNORE,
XCASE_ESC_IGNORE,
XCASE_ESC_IGNORE,
X/* ( ) * + */
XCASE_SCS0_STATE,
XCASE_SCS1_STATE,
XCASE_SCS2_STATE,
XCASE_SCS3_STATE,
X/* , - . / */
XCASE_ESC_IGNORE,
XCASE_ESC_IGNORE,
XCASE_ESC_IGNORE,
XCASE_ESC_IGNORE,
X/* 0 1 2 3 */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* 4 5 6 7 */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_DECSC,
X/* 8 9 : ; */
XCASE_DECRC,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* < = > ? */
XCASE_GROUND_STATE,
XCASE_DECKPAM,
XCASE_DECKPNM,
XCASE_GROUND_STATE,
X/* @ A B C */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* D E F G */
XCASE_IND,
XCASE_NEL,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* H I J K */
XCASE_HTS,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* L M N O */
XCASE_GROUND_STATE,
XCASE_RI,
XCASE_SS2,
XCASE_SS3,
X/* P Q R S */
XCASE_IGNORE_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* T U V W */
XCASE_XTERM_TITLE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* X Y Z [ */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_DECID,
XCASE_CSI_STATE,
X/* \ ] ^ _ */
XCASE_GROUND_STATE,
XCASE_OSC,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* ` a b c */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_RIS,
X/* d e f g */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* h i j k */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* l m n o */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_LS2,
XCASE_LS3,
X/* p q r s */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* t u v w */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* x y z { */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* | } ~ DEL */
XCASE_LS3R,
XCASE_LS2R,
XCASE_LS1R,
XCASE_GROUND_STATE,
X/* 0x80 0x81 0x82 0x83 */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* 0x84 0x85 0x86 0x87 */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* 0x88 0x89 0x8a 0x8b */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* 0x8c 0x8d 0x8e 0x8f */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* 0x90 0x91 0x92 0x93 */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* 0x94 0x95 0x96 0x97 */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* 0x99 0x99 0x9a 0x9b */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* 0x9c 0x9d 0x9e 0x9f */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* nobreakspace exclamdown cent sterling */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* currency yen brokenbar section */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* diaeresis copyright ordfeminine guillemotleft */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* notsign hyphen registered macron */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* degree plusminus twosuperior threesuperior */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* acute mu paragraph periodcentered */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* cedilla onesuperior masculine guillemotright */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* onequarter onehalf threequarters questiondown */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* Agrave Aacute Acircumflex Atilde */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* Adiaeresis Aring AE Ccedilla */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* Egrave Eacute Ecircumflex Ediaeresis */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* Igrave Iacute Icircumflex Idiaeresis */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* Eth Ntilde Ograve Oacute */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* Ocircumflex Otilde Odiaeresis multiply */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* Ooblique Ugrave Uacute Ucircumflex */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* Udiaeresis Yacute Thorn ssharp */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* agrave aacute acircumflex atilde */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* adiaeresis aring ae ccedilla */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* egrave eacute ecircumflex ediaeresis */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* igrave iacute icircumflex idiaeresis */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* eth ntilde ograve oacute */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* ocircumflex otilde odiaeresis division */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* oslash ugrave uacute ucircumflex */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* udiaeresis yacute thorn ydiaeresis */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X};
X
Xint iestable[] = {
X/* NUL SOH STX ETX */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* EOT ENQ ACK BEL */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* BS HT NL VT */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* NP CR SO SI */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* DLE DC1 DC2 DC3 */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* DC4 NAK SYN ETB */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* CAN EM SUB ESC */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* FS GS RS US */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* SP ! " # */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* $ % & ' */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* ( ) * + */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* , - . / */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* 0 1 2 3 */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* 4 5 6 7 */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* 8 9 : ; */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* < = > ? */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* @ A B C */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* D E F G */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* H I J K */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* L M N O */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* P Q R S */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* T U V W */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* X Y Z [ */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* \ ] ^ _ */
XCASE_GROUND_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* ` a b c */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* d e f g */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* h i j k */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* l m n o */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* p q r s */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* t u v w */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* x y z { */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* | } ~ DEL */
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
XCASE_IGNORE_STATE,
X/* 0x80 0x81 0x82 0x83 */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* 0x84 0x85 0x86 0x87 */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* 0x88 0x89 0x8a 0x8b */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* 0x8c 0x8d 0x8e 0x8f */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* 0x90 0x91 0x92 0x93 */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* 0x94 0x95 0x96 0x97 */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* 0x99 0x99 0x9a 0x9b */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* 0x9c 0x9d 0x9e 0x9f */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* nobreakspace exclamdown cent sterling */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* currency yen brokenbar section */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* diaeresis copyright ordfeminine guillemotleft */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* notsign hyphen registered macron */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* degree plusminus twosuperior threesuperior */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* acute mu paragraph periodcentered */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* cedilla onesuperior masculine guillemotright */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* onequarter onehalf threequarters questiondown */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* Agrave Aacute Acircumflex Atilde */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* Adiaeresis Aring AE Ccedilla */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* Egrave Eacute Ecircumflex Ediaeresis */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* Igrave Iacute Icircumflex Idiaeresis */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* Eth Ntilde Ograve Oacute */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* Ocircumflex Otilde Odiaeresis multiply */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* Ooblique Ugrave Uacute Ucircumflex */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* Udiaeresis Yacute Thorn ssharp */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* agrave aacute acircumflex atilde */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* adiaeresis aring ae ccedilla */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* egrave eacute ecircumflex ediaeresis */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* igrave iacute icircumflex idiaeresis */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* eth ntilde ograve oacute */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* ocircumflex otilde odiaeresis division */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* oslash ugrave uacute ucircumflex */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X/* udiaeresis yacute thorn ydiaeresis */
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
XCASE_GROUND_STATE,
X};
X
Xint igntable[] = {
X/* NUL SOH STX ETX */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* EOT ENQ ACK BEL */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* BS HT NL VT */
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
XCASE_IGNORE,
X/* NP CR SO SI */
END_OF_FILE
if test 22756 -ne `wc -c <'xterm/VTPrsTbl.c.ab'`; then
echo shar: \"'xterm/VTPrsTbl.c.ab'\" unpacked with wrong size!
fi
# end of 'xterm/VTPrsTbl.c.ab'
fi
if test -f 'xterm/charproc.c.aa' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'xterm/charproc.c.aa'\"
else
echo shar: Extracting \"'xterm/charproc.c.aa'\" \(29680 characters\)
sed "s/^X//" >'xterm/charproc.c.aa' <<'END_OF_FILE'
X/*
X * $XConsortium: charproc.c,v 1.127 90/06/08 13:58:12 jim Exp $
X */
X
X
X#include <X11/copyright.h>
X#include <X11/Xlib.h>
X#include <X11/Xatom.h>
X#include <X11/Xmu/Atoms.h>
X
X/*
X * Copyright 1988 Massachusetts Institute of Technology
X * Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
X *
X * All Rights Reserved
X *
X * Permission to use, copy, modify, and distribute this software and its
X * documentation for any purpose and without fee is hereby granted,
X * provided that the above copyright notice appear in all copies and that
X * both that copyright notice and this permission notice appear in
X * supporting documentation, and that the name of Digital Equipment
X * Corporation not be used in advertising or publicity pertaining to
X * distribution of the software without specific, written prior permission.
X *
X *
X * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
X * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
X * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
X * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
X * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
X * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
X * SOFTWARE.
X */
X
X
X/* charproc.c */
X
X#ifdef att
X#ifndef STREAMSCONN
X#define STREAMSCONN
X#endif
X#endif
X
X#include <stdio.h>
X#include <X11/Xos.h>
X#ifndef CRAY
X#include <sgtty.h>
X#endif
X#include <ctype.h>
X#include <errno.h>
X#include <setjmp.h>
X#if defined(macII) || defined(CRAY)
X#undef FIOCLEX /* redefined from sgtty.h */
X#undef FIONCLEX /* redefined from sgtty.h */
X#endif
X#include "ptyx.h"
X#include "VTparse.h"
X#include "data.h"
X#include <X11/Xutil.h>
X#include "error.h"
X#include "main.h"
X#include <X11/cursorfont.h>
X#include <X11/StringDefs.h>
X#include "menu.h"
X
X#if !defined(EWOULDBLOCK) && defined(EAGAIN)
X#define EWOULDBLOCK EAGAIN
X#endif
X
Xextern Widget toplevel;
Xextern void exit(), bcopy();
Xstatic void VTallocbuf();
X
X#define DEFAULT -1
X#define TEXT_BUF_SIZE 256
X#define TRACKTIMESEC 4L
X#define TRACKTIMEUSEC 0L
X
X#define XtNalwaysHighlight "alwaysHighlight"
X#define XtNboldFont "boldFont"
X#define XtNc132 "c132"
X#define XtNcharClass "charClass"
X#define XtNcurses "curses"
X#define XtNcursorColor "cursorColor"
X#define XtNcolor0 "color0"
X#define XtNcolor1 "color1"
X#define XtNcolor2 "color2"
X#define XtNcolor3 "color3"
X#define XtNcolor4 "color4"
X#define XtNcolor5 "color5"
X#define XtNcolor6 "color6"
X#define XtNcolor7 "color7"
X#define XtNcutNewline "cutNewline"
X#define XtNcutToBeginningOfLine "cutToBeginningOfLine"
X#define XtNeightBitInput "eightBitInput"
X#define XtNeightBitOutput "eightBitOutput"
X#define XtNgeometry "geometry"
X#define XtNtekGeometry "tekGeometry"
X#define XtNinternalBorder "internalBorder"
X#define XtNjumpScroll "jumpScroll"
X#define XtNbltScroll "bltScroll"
X#define XtNlogFile "logFile"
X#define XtNlogging "logging"
X#define XtNlogInhibit "logInhibit"
X#define XtNloginShell "loginShell"
X#define XtNmarginBell "marginBell"
X#define XtNpointerColor "pointerColor"
X#define XtNpointerColorBackground "pointerColorBackground"
X#define XtNpointerShape "pointerShape"
X#define XtNmultiClickTime "multiClickTime"
X#define XtNmultiScroll "multiScroll"
X#define XtNnMarginBell "nMarginBell"
X#define XtNreverseWrap "reverseWrap"
X#define XtNautoWrap "autoWrap"
X#define XtNsaveLines "saveLines"
X#define XtNscrollBar "scrollBar"
X#define XtNscrollTtyOutput "scrollTtyOutput"
X#define XtNscrollKey "scrollKey"
X#define XtNscrollLines "scrollLines"
X#define XtNscrollPos "scrollPos"
X#define XtNsignalInhibit "signalInhibit"
X#define XtNtekInhibit "tekInhibit"
X#define XtNtekSmall "tekSmall"
X#define XtNtekStartup "tekStartup"
X#define XtNtiteInhibit "titeInhibit"
X#define XtNvisualBell "visualBell"
X#define XtNallowSendEvents "allowSendEvents"
X
X#define XtCAlwaysHighlight "AlwaysHighlight"
X#define XtCC132 "C132"
X#define XtCCharClass "CharClass"
X#define XtCCurses "Curses"
X#define XtCCutNewline "CutNewline"
X#define XtCCutToBeginningOfLine "CutToBeginningOfLine"
X#define XtCEightBitInput "EightBitInput"
X#define XtCEightBitOutput "EightBitOutput"
X#define XtCGeometry "Geometry"
X#define XtCJumpScroll "JumpScroll"
X#define XtCBltScroll "BltScroll"
X#define XtCLogfile "Logfile"
X#define XtCLogging "Logging"
X#define XtCLogInhibit "LogInhibit"
X#define XtCLoginShell "LoginShell"
X#define XtCMarginBell "MarginBell"
X#define XtCMultiClickTime "MultiClickTime"
X#define XtCMultiScroll "MultiScroll"
X#define XtCColumn "Column"
X#define XtCReverseWrap "ReverseWrap"
X#define XtCAutoWrap "AutoWrap"
X#define XtCSaveLines "SaveLines"
X#define XtCScrollBar "ScrollBar"
X#define XtCScrollLines "ScrollLines"
X#define XtCScrollPos "ScrollPos"
X#define XtCScrollCond "ScrollCond"
X#define XtCSignalInhibit "SignalInhibit"
X#define XtCTekInhibit "TekInhibit"
X#define XtCTekSmall "TekSmall"
X#define XtCTekStartup "TekStartup"
X#define XtCTiteInhibit "TiteInhibit"
X#define XtCVisualBell "VisualBell"
X#define XtCAllowSendEvents "AllowSendEvents"
X
X#define doinput() (bcnt-- > 0 ? *bptr++ : in_put())
X
X#ifndef lint
Xstatic char rcs_id[] = "$XConsortium: charproc.c,v 1.127 90/06/08 13:58:12 jim Exp $";
X#endif /* lint */
X
Xstatic int nparam;
Xstatic ANSI reply;
Xstatic int param[NPARAM];
X
Xstatic unsigned long ctotal;
Xstatic unsigned long ntotal;
Xstatic jmp_buf vtjmpbuf;
X
Xextern int groundtable[];
Xextern int csitable[];
Xextern int dectable[];
Xextern int eigtable[];
Xextern int esctable[];
Xextern int iestable[];
Xextern int igntable[];
Xextern int scrtable[];
Xextern int scstable[];
X
X
X/* event handlers */
Xextern void HandleKeyPressed(), HandleEightBitKeyPressed();
Xextern void HandleStringEvent();
Xextern void HandleEnterWindow();
Xextern void HandleLeaveWindow();
Xextern void HandleFocusChange();
Xstatic void HandleKeymapChange();
Xextern void HandleInsertSelection();
Xextern void HandleSelectStart(), HandleKeyboardSelectStart();
Xextern void HandleSelectExtend(), HandleSelectSet();
Xextern void HandleSelectEnd(), HandleKeyboardSelectEnd();
Xextern void HandleStartExtend(), HandleKeyboardStartExtend();
Xstatic void HandleBell();
Xstatic void HandleIgnore();
Xextern void HandleSecure();
Xextern void HandleScrollForward();
Xextern void HandleScrollBack();
Xextern void HandleCreateMenu(), HandlePopupMenu();
Xextern void HandleSetFont();
Xextern void SetVTFont();
X
X/*
X * NOTE: VTInitialize zeros out the entire ".screen" component of the
X * XtermWidget, so make sure to add an assignment statement in VTInitialize()
X * for each new ".screen" field added to this resource list.
X */
X
X/* Defaults */
Xstatic Boolean defaultFALSE = FALSE;
Xstatic Boolean defaultTRUE = TRUE;
Xstatic int defaultBorderWidth = DEFBORDERWIDTH;
Xstatic int defaultIntBorder = DEFBORDER;
Xstatic int defaultSaveLines = SAVELINES;
Xstatic int defaultScrollLines = SCROLLLINES;
Xstatic int defaultNMarginBell = N_MARGINBELL;
Xstatic int defaultMultiClickTime = MULTICLICKTIME;
Xstatic char * _Font_Selected_ = "yes"; /* string is arbitrary */
X
X/*
X * Warning, the following must be kept under 1024 bytes or else some
X * compilers (particularly AT&T 6386 SVR3.2) will barf). Workaround is to
X * declare a static buffer and copy in at run time (the the Athena text widget
X * does). Yuck.
X */
Xstatic char defaultTranslations[] =
X"\
X Shift <KeyPress> Prior: scroll-back(1,halfpage) \n\
X Shift <KeyPress> Next: scroll-forw(1,halfpage) \n\
X Shift <KeyPress> Select: select-cursor-start() select-cursor-end(PRIMARY, CUT_BUFFER0) \n\
X Shift <KeyPress> Insert: insert-selection(PRIMARY, CUT_BUFFER0) \n\
X ~Meta<KeyPress>: insert-seven-bit() \n\
X Meta<KeyPress>: insert-eight-bit() \n\
X Ctrl ~Meta<Btn1Down>: popup-menu(mainMenu) \n\
X ~Meta <Btn1Down>: select-start() \n\
X ~Meta <Btn1Motion>: select-extend() \n\
X Ctrl ~Meta <Btn2Down>: popup-menu(vtMenu) \n\
X~Ctrl ~Meta <Btn2Down>: ignore() \n\
X~Ctrl ~Meta <Btn2Up>: insert-selection(PRIMARY, CUT_BUFFER0) \n\
X Ctrl ~Meta <Btn3Down>: popup-menu(fontMenu) \n\
X~Ctrl ~Meta <Btn3Down>: start-extend() \n\
X ~Meta <Btn3Motion>: select-extend() \n\
X~Ctrl ~Meta <BtnUp>: select-end(PRIMARY, CUT_BUFFER0) \n\
X <BtnDown>: bell(0) \
X";
X
Xstatic XtActionsRec actionsList[] = {
X { "bell", HandleBell },
X { "create-menu", HandleCreateMenu },
X { "ignore", HandleIgnore },
X { "insert", HandleKeyPressed }, /* alias for insert-seven-bit */
X { "insert-seven-bit", HandleKeyPressed },
X { "insert-eight-bit", HandleEightBitKeyPressed },
X { "insert-selection", HandleInsertSelection },
X { "keymap", HandleKeymapChange },
X { "popup-menu", HandlePopupMenu },
X { "secure", HandleSecure },
X { "select-start", HandleSelectStart },
X { "select-extend", HandleSelectExtend },
X { "select-end", HandleSelectEnd },
X { "select-set", HandleSelectSet },
X { "select-cursor-start", HandleKeyboardSelectStart },
X { "select-cursor-end", HandleKeyboardSelectEnd },
X { "set-vt-font", HandleSetFont },
X { "start-extend", HandleStartExtend },
X { "start-cursor-extend", HandleKeyboardStartExtend },
X { "string", HandleStringEvent },
X { "scroll-forw", HandleScrollForward },
X { "scroll-back", HandleScrollBack },
X /* menu actions */
X { "allow-send-events", HandleAllowSends },
X { "set-visual-bell", HandleVisualBell },
X { "set-logging", HandleLogging },
X { "redraw", HandleRedraw },
X { "send-signal", HandleSendSignal },
X { "quit", HandleQuit },
X { "set-scrollbar", HandleScrollbar },
X { "set-jumpscroll", HandleJumpscroll },
X { "set-bltscroll", HandleBltscroll },
X { "set-reverse-video", HandleReverseVideo },
X { "set-autowrap", HandleAutoWrap },
X { "set-reversewrap", HandleReverseWrap },
X { "set-autolinefeed", HandleAutoLineFeed },
X { "set-appcursor", HandleAppCursor },
X { "set-appkeypad", HandleAppKeypad },
X { "set-scroll-on-key", HandleScrollKey },
X { "set-scroll-on-tty-output", HandleScrollTtyOutput },
X { "set-allow132", HandleAllow132 },
X { "set-cursesemul", HandleCursesEmul },
X { "set-marginbell", HandleMarginBell },
X { "set-altscreen", HandleAltScreen },
X { "soft-reset", HandleSoftReset },
X { "hard-reset", HandleHardReset },
X { "set-terminal-type", HandleSetTerminalType },
X { "set-visibility", HandleVisibility },
X { "set-tek-text", HandleSetTekText },
X { "tek-page", HandleTekPage },
X { "tek-reset", HandleTekReset },
X { "tek-copy", HandleTekCopy },
X};
X
Xstatic XtResource resources[] = {
X{XtNfont, XtCFont, XtRString, sizeof(char *),
X XtOffset(XtermWidget, misc.f_n), XtRString,
X DEFFONT},
X{XtNboldFont, XtCFont, XtRString, sizeof(char *),
X XtOffset(XtermWidget, misc.f_b), XtRString,
X DEFBOLDFONT},
X{XtNc132, XtCC132, XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, screen.c132),
X XtRBoolean, (caddr_t) &defaultFALSE},
X{XtNcharClass, XtCCharClass, XtRString, sizeof(char *),
X XtOffset(XtermWidget, screen.charClass),
X XtRString, (caddr_t) NULL},
X{XtNcurses, XtCCurses, XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, screen.curses),
X XtRBoolean, (caddr_t) &defaultFALSE},
X{XtNcutNewline, XtCCutNewline, XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, screen.cutNewline),
X XtRBoolean, (caddr_t) &defaultTRUE},
X{XtNcutToBeginningOfLine, XtCCutToBeginningOfLine, XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, screen.cutToBeginningOfLine),
X XtRBoolean, (caddr_t) &defaultTRUE},
X{XtNbackground, XtCBackground, XtRPixel, sizeof(Pixel),
X XtOffset(XtermWidget, core.background_pixel),
X XtRString, "XtDefaultBackground"},
X{XtNforeground, XtCForeground, XtRPixel, sizeof(Pixel),
X XtOffset(XtermWidget, screen.foreground),
X XtRString, "XtDefaultForeground"},
X{XtNcursorColor, XtCForeground, XtRPixel, sizeof(Pixel),
X XtOffset(XtermWidget, screen.cursorcolor),
X XtRString, "XtDefaultForeground"},
X{XtNcolor0, XtCForeground, XtRPixel, sizeof(Pixel),
X XtOffset(XtermWidget, screen.colors[COLOR_0]),
X XtRString, "XtDefaultForeground"},
X{XtNcolor1, XtCForeground, XtRPixel, sizeof(Pixel),
X XtOffset(XtermWidget, screen.colors[COLOR_1]),
X XtRString, "XtDefaultForeground"},
X{XtNcolor2, XtCForeground, XtRPixel, sizeof(Pixel),
X XtOffset(XtermWidget, screen.colors[COLOR_2]),
X XtRString, "XtDefaultForeground"},
X{XtNcolor3, XtCForeground, XtRPixel, sizeof(Pixel),
X XtOffset(XtermWidget, screen.colors[COLOR_3]),
X XtRString, "XtDefaultForeground"},
X{XtNcolor4, XtCForeground, XtRPixel, sizeof(Pixel),
X XtOffset(XtermWidget, screen.colors[COLOR_4]),
X XtRString, "XtDefaultForeground"},
X{XtNcolor5, XtCForeground, XtRPixel, sizeof(Pixel),
X XtOffset(XtermWidget, screen.colors[COLOR_5]),
X XtRString, "XtDefaultForeground"},
X{XtNcolor6, XtCForeground, XtRPixel, sizeof(Pixel),
X XtOffset(XtermWidget, screen.colors[COLOR_6]),
X XtRString, "XtDefaultForeground"},
X{XtNcolor7, XtCForeground, XtRPixel, sizeof(Pixel),
X XtOffset(XtermWidget, screen.colors[COLOR_7]),
X XtRString, "XtDefaultForeground"},
X{XtNeightBitInput, XtCEightBitInput, XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, screen.input_eight_bits),
X XtRBoolean, (caddr_t) &defaultTRUE},
X{XtNeightBitOutput, XtCEightBitOutput, XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, screen.output_eight_bits),
X XtRBoolean, (caddr_t) &defaultTRUE},
X{XtNgeometry,XtCGeometry, XtRString, sizeof(char *),
X XtOffset(XtermWidget, misc.geo_metry),
X XtRString, (caddr_t) NULL},
X{XtNalwaysHighlight,XtCAlwaysHighlight,XtRBoolean,
X sizeof(Boolean),XtOffset(XtermWidget, screen.always_highlight),
X XtRBoolean, (caddr_t) &defaultFALSE},
X{XtNtekGeometry,XtCGeometry, XtRString, sizeof(char *),
X XtOffset(XtermWidget, misc.T_geometry),
X XtRString, (caddr_t) NULL},
X{XtNinternalBorder,XtCBorderWidth,XtRInt, sizeof(int),
X XtOffset(XtermWidget, screen.border),
X XtRInt, (caddr_t) &defaultIntBorder},
X{XtNjumpScroll, XtCJumpScroll, XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, screen.jumpscroll),
X XtRBoolean, (caddr_t) &defaultTRUE},
X{XtNbltScroll, XtCBltScroll, XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, screen.bltscroll),
X XtRBoolean, (caddr_t) &defaultTRUE},
X{XtNlogFile, XtCLogfile, XtRString, sizeof(char *),
X XtOffset(XtermWidget, screen.logfile),
X XtRString, (caddr_t) NULL},
X{XtNlogging, XtCLogging, XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, misc.log_on),
X XtRBoolean, (caddr_t) &defaultFALSE},
X{XtNlogInhibit, XtCLogInhibit, XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, misc.logInhibit),
X XtRBoolean, (caddr_t) &defaultFALSE},
X{XtNloginShell, XtCLoginShell, XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, misc.login_shell),
X XtRBoolean, (caddr_t) &defaultFALSE},
X{XtNmarginBell, XtCMarginBell, XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, screen.marginbell),
X XtRBoolean, (caddr_t) &defaultFALSE},
X{XtNpointerColor, XtCForeground, XtRPixel, sizeof(Pixel),
X XtOffset(XtermWidget, screen.mousecolor),
X XtRString, "XtDefaultForeground"},
X{XtNpointerColorBackground, XtCBackground, XtRPixel, sizeof(Pixel),
X XtOffset(XtermWidget, screen.mousecolorback),
X XtRString, "XtDefaultBackground"},
X{XtNpointerShape,XtCCursor, XtRCursor, sizeof(Cursor),
X XtOffset(XtermWidget, screen.pointer_cursor),
X XtRString, (caddr_t) "xterm"},
X{XtNmultiClickTime,XtCMultiClickTime, XtRInt, sizeof(int),
X XtOffset(XtermWidget, screen.multiClickTime),
X XtRInt, (caddr_t) &defaultMultiClickTime},
X{XtNmultiScroll,XtCMultiScroll, XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, screen.multiscroll),
X XtRBoolean, (caddr_t) &defaultFALSE},
X{XtNnMarginBell,XtCColumn, XtRInt, sizeof(int),
X XtOffset(XtermWidget, screen.nmarginbell),
X XtRInt, (caddr_t) &defaultNMarginBell},
X{XtNreverseVideo,XtCReverseVideo,XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, misc.re_verse),
X XtRBoolean, (caddr_t) &defaultFALSE},
X{XtNreverseWrap,XtCReverseWrap, XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, misc.reverseWrap),
X XtRBoolean, (caddr_t) &defaultFALSE},
X{XtNautoWrap,XtCAutoWrap, XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, misc.autoWrap),
X XtRBoolean, (caddr_t) &defaultTRUE},
X{XtNsaveLines, XtCSaveLines, XtRInt, sizeof(int),
X XtOffset(XtermWidget, screen.savelines),
X XtRInt, (caddr_t) &defaultSaveLines},
X{XtNscrollBar, XtCScrollBar, XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, misc.scrollbar),
X XtRBoolean, (caddr_t) &defaultFALSE},
X{XtNscrollTtyOutput,XtCScrollCond, XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, screen.scrollttyoutput),
X XtRBoolean, (caddr_t) &defaultTRUE},
X{XtNscrollKey, XtCScrollCond, XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, screen.scrollkey),
X XtRBoolean, (caddr_t) &defaultFALSE},
X{XtNscrollLines, XtCScrollLines, XtRInt, sizeof(int),
X XtOffset(XtermWidget, screen.scrolllines),
X XtRInt, (caddr_t) &defaultScrollLines},
X{XtNsignalInhibit,XtCSignalInhibit,XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, misc.signalInhibit),
X XtRBoolean, (caddr_t) &defaultFALSE},
X{XtNtekInhibit, XtCTekInhibit, XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, misc.tekInhibit),
X XtRBoolean, (caddr_t) &defaultFALSE},
X{XtNtekSmall, XtCTekSmall, XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, misc.tekSmall),
X XtRBoolean, (caddr_t) &defaultFALSE},
X{XtNtekStartup, XtCTekStartup, XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, screen.TekEmu),
X XtRBoolean, (caddr_t) &defaultFALSE},
X{XtNtiteInhibit, XtCTiteInhibit, XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, misc.titeInhibit),
X XtRBoolean, (caddr_t) &defaultFALSE},
X{XtNvisualBell, XtCVisualBell, XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, screen.visualbell),
X XtRBoolean, (caddr_t) &defaultFALSE},
X{XtNallowSendEvents, XtCAllowSendEvents, XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, screen.allowSendEvents),
X XtRBoolean, (caddr_t) &defaultFALSE},
X{"font1", "Font1", XtRString, sizeof(String),
X XtOffset(XtermWidget, screen.menu_font_names[fontMenu_font1]),
X XtRString, (caddr_t) NULL},
X{"font2", "Font2", XtRString, sizeof(String),
X XtOffset(XtermWidget, screen.menu_font_names[fontMenu_font2]),
X XtRString, (caddr_t) NULL},
X{"font3", "Font3", XtRString, sizeof(String),
X XtOffset(XtermWidget, screen.menu_font_names[fontMenu_font3]),
X XtRString, (caddr_t) NULL},
X{"font4", "Font4", XtRString, sizeof(String),
X XtOffset(XtermWidget, screen.menu_font_names[fontMenu_font4]),
X XtRString, (caddr_t) NULL},
X{"dynamicColors", "DynamicColors", XtRBoolean, sizeof(Boolean),
X XtOffset(XtermWidget, misc.dynamicColors),
X XtRBoolean, (caddr_t) &defaultTRUE}
X};
X
X
Xstatic void VTInitialize(), VTRealize(), VTExpose(), VTResize();
Xstatic void VTDestroy();
X
XWidgetClassRec xtermClassRec = {
X {
X/* core_class fields */
X /* superclass */ (WidgetClass) &widgetClassRec,
X /* class_name */ "VT100",
X /* widget_size */ sizeof(XtermWidgetRec),
X /* class_initialize */ NULL,
X /* class_part_initialize */ NULL,
X /* class_inited */ FALSE,
X /* initialize */ VTInitialize,
X /* initialize_hook */ NULL,
X /* realize */ VTRealize,
X /* actions */ actionsList,
X /* num_actions */ XtNumber(actionsList),
X /* resources */ resources,
X /* num_resources */ XtNumber(resources),
X /* xrm_class */ NULLQUARK,
X /* compress_motion */ TRUE,
X /* compress_exposure */ FALSE,
X /* compress_enterleave */ TRUE,
X /* visible_interest */ FALSE,
X /* destroy */ VTDestroy,
X /* resize */ VTResize,
X /* expose */ VTExpose,
X /* set_values */ NULL,
X /* set_values_hook */ NULL,
X /* set_values_almost */ NULL,
X /* get_values_hook */ NULL,
X /* accept_focus */ NULL,
X /* version */ XtVersion,
X /* callback_offsets */ NULL,
X /* tm_table */ defaultTranslations,
X /* query_geometry */ XtInheritQueryGeometry,
X /* display_accelerator*/ XtInheritDisplayAccelerator,
X /* extension */ NULL
X }
X};
X
XWidgetClass xtermWidgetClass = (WidgetClass)&xtermClassRec;
X
XVTparse()
X{
X register TScreen *screen = &term->screen;
X register int *parsestate = groundtable;
X register unsigned int c;
X register unsigned char *cp;
X register int row, col, top, bot, scstype;
X extern int bitset(), bitclr(), finput(), TrackMouse();
X
X if(setjmp(vtjmpbuf))
X parsestate = groundtable;
X for( ; ; ) {
X switch (parsestate[c = doinput()]) {
X case CASE_PRINT:
X /* printable characters */
X top = bcnt > TEXT_BUF_SIZE ? TEXT_BUF_SIZE : bcnt;
X cp = bptr;
X *--bptr = c;
X while(top > 0 && isprint(*cp & 0x7f)) {
X top--;
X bcnt--;
X cp++;
X }
X if(screen->curss) {
X dotext(screen, term->flags,
X term->cur_foreground,
X term->cur_background,
X screen->gsets[screen->curss], bptr, bptr + 1);
X screen->curss = 0;
X bptr++;
X }
X if(bptr < cp)
X dotext(screen, term->flags,
X term->cur_foreground,
X term->cur_background,
X screen->gsets[screen->curgl], bptr, cp);
X bptr = cp;
X break;
X
X case CASE_GROUND_STATE:
X /* exit ignore mode */
X parsestate = groundtable;
X break;
X
X case CASE_IGNORE_STATE:
X /* Ies: ignore anything else */
X parsestate = igntable;
X break;
X
X case CASE_IGNORE_ESC:
X /* Ign: escape */
X parsestate = iestable;
X break;
X
X case CASE_IGNORE:
X /* Ignore character */
X break;
X
X case CASE_BELL:
X /* bell */
X Bell();
X break;
X
X case CASE_BS:
X /* backspace */
X CursorBack(screen, 1);
X break;
X
X case CASE_CR:
X /* carriage return */
X CarriageReturn(screen);
X break;
X
X case CASE_ESC:
X /* escape */
X parsestate = esctable;
X break;
X
X case CASE_VMOT:
X /*
X * form feed, line feed, vertical tab
X */
X Index(screen, 1);
X if (term->flags & LINEFEED)
X CarriageReturn(screen);
X if (screen->display->qlen > 0 ||
X GetBytesAvailable (screen->display->fd) > 0)
X xevents();
X break;
X
X case CASE_TAB:
X /* tab */
X screen->cur_col = TabNext(term->tabs, screen->cur_col);
X if (screen->cur_col > screen->max_col)
X screen->cur_col = screen->max_col;
X break;
X
X case CASE_SI:
X screen->curgl = 0;
X break;
X
X case CASE_SO:
X screen->curgl = 1;
X break;
X
X case CASE_SCR_STATE:
X /* enter scr state */
X parsestate = scrtable;
X break;
X
X case CASE_SCS0_STATE:
X /* enter scs state 0 */
X scstype = 0;
X parsestate = scstable;
X break;
X
X case CASE_SCS1_STATE:
X /* enter scs state 1 */
X scstype = 1;
X parsestate = scstable;
X break;
X
X case CASE_SCS2_STATE:
X /* enter scs state 2 */
X scstype = 2;
X parsestate = scstable;
X break;
X
X case CASE_SCS3_STATE:
X /* enter scs state 3 */
X scstype = 3;
X parsestate = scstable;
X break;
X
X case CASE_ESC_IGNORE:
X /* unknown escape sequence */
X parsestate = eigtable;
X break;
X
X case CASE_ESC_DIGIT:
X /* digit in csi or dec mode */
X if((row = param[nparam - 1]) == DEFAULT)
X row = 0;
X param[nparam - 1] = 10 * row + (c - '0');
X break;
X
X case CASE_ESC_SEMI:
X /* semicolon in csi or dec mode */
X param[nparam++] = DEFAULT;
X break;
X
X case CASE_DEC_STATE:
X /* enter dec mode */
X parsestate = dectable;
X break;
X
X case CASE_ICH:
X /* ICH */
X if((row = param[0]) < 1)
X row = 1;
X InsertChar(screen, row);
X parsestate = groundtable;
X break;
X
X case CASE_CUU:
X /* CUU */
X if((row = param[0]) < 1)
X row = 1;
X CursorUp(screen, row);
X parsestate = groundtable;
X break;
X
X case CASE_CUD:
X /* CUD */
X if((row = param[0]) < 1)
X row = 1;
X CursorDown(screen, row);
X parsestate = groundtable;
X break;
X
X case CASE_CUF:
X /* CUF */
X if((row = param[0]) < 1)
X row = 1;
X CursorForward(screen, row);
X parsestate = groundtable;
X break;
X
X case CASE_CUB:
X /* CUB */
X if((row = param[0]) < 1)
X row = 1;
X CursorBack(screen, row);
X parsestate = groundtable;
X break;
X
X case CASE_CUP:
X /* CUP | HVP */
X if((row = param[0]) < 1)
X row = 1;
X if(nparam < 2 || (col = param[1]) < 1)
X col = 1;
X CursorSet(screen, row-1, col-1, term->flags);
X parsestate = groundtable;
X break;
X
X case CASE_ED:
X /* ED */
X switch (param[0]) {
X case DEFAULT:
X case 0:
X ClearBelow(screen);
X break;
X
X case 1:
X ClearAbove(screen);
X break;
X
X case 2:
X ClearScreen(screen);
X break;
X }
X parsestate = groundtable;
X break;
X
X case CASE_EL:
X /* EL */
X switch (param[0]) {
X case DEFAULT:
X case 0:
X ClearRight(screen);
X break;
X case 1:
X ClearLeft(screen);
X break;
X case 2:
X ClearLine(screen);
X break;
X }
X parsestate = groundtable;
X break;
X
X case CASE_IL:
X /* IL */
X if((row = param[0]) < 1)
X row = 1;
X InsertLine(screen, row);
X parsestate = groundtable;
X break;
X
X case CASE_DL:
X /* DL */
X if((row = param[0]) < 1)
X row = 1;
X DeleteLine(screen, row);
X parsestate = groundtable;
X break;
X
X case CASE_DCH:
X /* DCH */
X if((row = param[0]) < 1)
X row = 1;
X DeleteChar(screen, row);
X parsestate = groundtable;
X break;
X
X case CASE_TRACK_MOUSE:
X /* Track mouse as long as in window and between
X specified rows */
X TrackMouse(param[0], param[2]-1, param[1]-1,
X param[3]-1, param[4]-2);
X break;
X
X case CASE_DECID:
X param[0] = -1; /* Default ID parameter */
X /* Fall through into ... */
X case CASE_DA1:
X /* DA1 */
X if (param[0] <= 0) { /* less than means DEFAULT */
X reply.a_type = CSI;
X reply.a_pintro = '?';
X reply.a_nparam = 2;
X reply.a_param[0] = 1; /* VT102 */
X reply.a_param[1] = 2; /* VT102 */
X reply.a_inters = 0;
X reply.a_final = 'c';
X unparseseq(&reply, screen->respond);
X }
X parsestate = groundtable;
X break;
X
X case CASE_TBC:
X /* TBC */
X if ((row = param[0]) <= 0) /* less than means default */
X TabClear(term->tabs, screen->cur_col);
X else if (row == 3)
X TabZonk(term->tabs);
X parsestate = groundtable;
X break;
X
X case CASE_SET:
X /* SET */
X modes(term, bitset);
X parsestate = groundtable;
X break;
X
X case CASE_RST:
X /* RST */
X modes(term, bitclr);
X parsestate = groundtable;
X break;
X
X case CASE_SGR:
X /* SGR */
X for (row=0; row<nparam; ++row) {
X switch (param[row]) {
X case DEFAULT:
X case 0:
X term->flags &=
X ~(INVERSE|BOLD|UNDERLINE|FG_COLOR|
X BG_COLOR|DIM);
X break;
X case 1:
X case 5: /* Blink, really. */
X term->flags |= BOLD;
X break;
X case 2:
X term->flags |= DIM;
X break;
X case 4: /* Underscore */
X term->flags |= UNDERLINE;
X break;
X case 7:
X term->flags |= INVERSE;
X break;
X case 30:
X case 31:
X case 32:
X case 33:
X case 34:
X case 35:
X case 36:
X case 37:
X term->flags |= FG_COLOR;
X term->cur_foreground = param[row] - 30;
X break;
X case 40:
X case 41:
X case 42:
X case 43:
X case 44:
X case 45:
X case 46:
X case 47:
X term->flags |= BG_COLOR;
X term->cur_background = param[row] - 40;
X break;
X }
X }
X parsestate = groundtable;
X break;
X
X case CASE_CPR:
X /* CPR */
X if ((row = param[0]) == 5) {
X reply.a_type = CSI;
X reply.a_pintro = 0;
X reply.a_nparam = 1;
X reply.a_param[0] = 0;
X reply.a_inters = 0;
X reply.a_final = 'n';
X unparseseq(&reply, screen->respond);
X } else if (row == 6) {
X reply.a_type = CSI;
X reply.a_pintro = 0;
X reply.a_nparam = 2;
X reply.a_param[0] = screen->cur_row+1;
X reply.a_param[1] = screen->cur_col+1;
X reply.a_inters = 0;
X reply.a_final = 'R';
X unparseseq(&reply, screen->respond);
X }
X parsestate = groundtable;
X break;
X
X case CASE_DECSTBM:
X /* DECSTBM */
X if((top = param[0]) < 1)
X top = 1;
X if(nparam < 2 || (bot = param[1]) == DEFAULT
X || bot > screen->max_row + 1
X || bot == 0)
X bot = screen->max_row+1;
X if (bot > top) {
X if(screen->scroll_amt)
X FlushScroll(screen);
X screen->top_marg = top-1;
X screen->bot_marg = bot-1;
X CursorSet(screen, 0, 0, term->flags);
X }
X parsestate = groundtable;
X break;
X
X case CASE_DECREQTPARM:
X /* DECREQTPARM */
X if ((row = param[0]) == DEFAULT)
X row = 0;
X if (row == 0 || row == 1) {
X reply.a_type = CSI;
X reply.a_pintro = 0;
X reply.a_nparam = 7;
X reply.a_param[0] = row + 2;
X reply.a_param[1] = 1; /* no parity */
X reply.a_param[2] = 1; /* eight bits */
X reply.a_param[3] = 112; /* transmit 9600 baud */
X reply.a_param[4] = 112; /* receive 9600 baud */
X reply.a_param[5] = 1; /* clock multiplier ? */
X reply.a_param[6] = 0; /* STP flags ? */
X reply.a_inters = 0;
X reply.a_final = 'x';
X unparseseq(&reply, screen->respond);
X }
X parsestate = groundtable;
X break;
X
X case CASE_DECSET:
X /* DECSET */
X dpmodes(term, bitset);
X parsestate = groundtable;
X if(screen->TekEmu)
X return;
X break;
X
X case CASE_DECRST:
X /* DECRST */
X dpmodes(term, bitclr);
X parsestate = groundtable;
X break;
X
X case CASE_DECALN:
X /* DECALN */
X if(screen->cursor_state)
X HideCursor();
X for(row = screen->max_row ; row >= 0 ; row--) {
X bzero(screen->buf[4 * row + 1],
X col = screen->max_col + 1);
X for(cp = (unsigned char *)screen->buf[4 * row] ; col > 0 ; col--)
X *cp++ = (unsigned char) 'E';
X }
X ScrnRefresh(screen, 0, 0, screen->max_row + 1,
X screen->max_col + 1, False);
X parsestate = groundtable;
X break;
X
X case CASE_GSETS:
X screen->gsets[scstype] = c;
X parsestate = groundtable;
X break;
X
X case CASE_DECSC:
X /* DECSC */
X CursorSave(term, &screen->sc);
X parsestate = groundtable;
X break;
X
X case CASE_DECRC:
X /* DECRC */
X CursorRestore(term, &screen->sc);
X parsestate = groundtable;
X break;
X
X case CASE_DECKPAM:
X /* DECKPAM */
X term->keyboard.flags |= KYPD_APL;
X update_appkeypad();
END_OF_FILE
if test 29680 -ne `wc -c <'xterm/charproc.c.aa'`; then
echo shar: \"'xterm/charproc.c.aa'\" unpacked with wrong size!
fi
# end of 'xterm/charproc.c.aa'
fi
echo shar: End of archive 5 \(of 14\).
cp /dev/null ark5isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ; do
if test ! -f ark${I}isdone ; then
MISSING="${MISSING} ${I}"
fi
done
if test "${MISSING}" = "" ; then
echo You have unpacked all 14 archives.
rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
echo You still need to unpack the following archives:
echo " " ${MISSING}
fi
## End of shell archive.
exit 0
dan
----------------------------------------------------
O'Reilly && Associates argv at sun.com / argv at ora.com
Opinions expressed reflect those of the author only.
More information about the Comp.sources.x
mailing list