/* vi:set ts=8 sts=4 sw=4 noet:
 *
 * VIM - Vi IMproved	by Bram Moolenaar
 *
 * Do ":help uganda"  in Vim to read copying and usage conditions.
 * Do ":help credits" in Vim to see a list of people who contributed.
 */

/*
 * This file contains the defines for the machine dependent escape sequences
 * that the editor needs to perform various operations. All of the sequences
 * here are optional, except "cm" (cursor motion).
 */

#if defined(SASC) && SASC < 658
/*
 * The SAS C compiler has a bug that makes typedefs being forgot in include
 * files.  Has been fixed in version 6.58.
 */
typedef unsigned char char_u;
#endif

/*
 * Index of the termcap codes in the term_strings array.
 */
enum SpecialKey
{
    KS_NAME = 0,// name of this terminal entry
    KS_CE,	// clear to end of line
    KS_AL,	// add new blank line
    KS_CAL,	// add number of blank lines
    KS_DL,	// delete line
    KS_CDL,	// delete number of lines
    KS_CS,	// scroll region
    KS_CL,	// clear screen
    KS_CD,	// clear to end of display
    KS_UT,	// clearing uses current background color
    KS_DA,	// text may be scrolled down from up
    KS_DB,	// text may be scrolled up from down
    KS_VI,	// cursor invisible
    KS_VE,	// cursor visible
    KS_VS,	// cursor very visible (blink)
    KS_CVS,	// cursor normally visible (no blink)
    KS_CSH,	// cursor shape
    KS_CRC,	// request cursor blinking
    KS_CRS,	// request cursor style
    KS_ME,	// normal mode
    KS_MR,	// reverse mode
    KS_MD,	// bold mode
    KS_SE,	// normal mode
    KS_SO,	// standout mode
    KS_CZH,	// italic mode start
    KS_CZR,	// italic mode end
    KS_UE,	// exit underscore (underline) mode
    KS_US,	// underscore (underline) mode
    KS_UCE,	// exit undercurl mode
    KS_UCS,	// undercurl mode
    KS_STE,	// exit strikethrough mode
    KS_STS,	// strikethrough mode
    KS_MS,	// save to move cur in reverse mode
    KS_CM,	// cursor motion
    KS_SR,	// scroll reverse (backward)
    KS_CRI,	// cursor number of chars right
    KS_VB,	// visual bell
    KS_KS,	// put term in "keypad transmit" mode
    KS_KE,	// out of "keypad transmit" mode
    KS_TI,	// put terminal in termcap mode
    KS_CTI,	// put terminal in "raw" mode
    KS_TE,	// end of termcap mode
    KS_CTE,	// end of "raw" mode
    KS_BC,	// backspace character (cursor left)
    KS_CCS,	// cur is relative to scroll region
    KS_CCO,	// number of colors
    KS_CSF,	// set foreground color
    KS_CSB,	// set background color
    KS_XS,	// standout not erased by overwriting (hpterm)
    KS_XN,	// newline glitch
    KS_MB,	// blink mode
    KS_CAF,	// set foreground color (ANSI)
    KS_CAB,	// set background color (ANSI)
    KS_CAU,	// set underline color (ANSI)
    KS_LE,	// cursor left (mostly backspace)
    KS_ND,	// cursor right
    KS_CIS,	// set icon text start
    KS_CIE,	// set icon text end
    KS_CSC,	// set cursor color start
    KS_CEC,	// set cursor color end
    KS_TS,	// set window title start (to status line)
    KS_FS,	// set window title end (from status line)
    KS_CWP,	// set window position in pixels
    KS_CGP,	// get window position
    KS_CWS,	// set window size in characters
    KS_CRV,	// request version string
    KS_RFG,	// request foreground color
    KS_RBG,	// request background color
    KS_CSI,	// start insert mode (bar cursor)
    KS_CEI,	// end insert mode (block cursor)
    KS_CSR,	// start replace mode (underline cursor)
    KS_CSV,	// scroll region vertical
    KS_OP,	// original color pair
    KS_U7,	// request cursor position
    KS_8F,	// set foreground color (RGB)
    KS_8B,	// set background color (RGB)
    KS_8U,	// set underline color (RGB)
    KS_CBE,	// enable bracketed paste mode
    KS_CBD,	// disable bracketed paste mode
    KS_CPS,	// start of bracketed paste
    KS_CPE,	// end of bracketed paste
    KS_CST,	// save window title
    KS_CRT,	// restore window title
    KS_SSI,	// save icon text
    KS_SRI	// restore icon text
};

#define KS_LAST	    KS_SRI

/*
 * the terminal capabilities are stored in this array
 * IMPORTANT: When making changes, note the following:
 * - there should be an entry for each code in the builtin termcaps
 * - there should be an option for each code in option.c
 * - there should be code in term.c to obtain the value from the termcap
 */

extern char_u *(term_strings[]);    // current terminal strings

/*
 * strings used for terminal
 */
#define T_NAME	(TERM_STR(KS_NAME))	// terminal name
#define T_CE	(TERM_STR(KS_CE))	// clear to end of line
#define T_AL	(TERM_STR(KS_AL))	// add new blank line
#define T_CAL	(TERM_STR(KS_CAL))	// add number of blank lines
#define T_DL	(TERM_STR(KS_DL))	// delete line
#define T_CDL	(TERM_STR(KS_CDL))	// delete number of lines
#define T_CS	(TERM_STR(KS_CS))	// scroll region
#define T_CSV	(TERM_STR(KS_CSV))	// scroll region vertical
#define T_CL	(TERM_STR(KS_CL))	// clear screen
#define T_CD	(TERM_STR(KS_CD))	// clear to end of display
#define T_UT	(TERM_STR(KS_UT))	// clearing uses background color
#define T_DA	(TERM_STR(KS_DA))	// text may be scrolled down from up
#define T_DB	(TERM_STR(KS_DB))	// text may be scrolled up from down
#define T_VI	(TERM_STR(KS_VI))	// cursor invisible
#define T_VE	(TERM_STR(KS_VE))	// cursor visible
#define T_VS	(TERM_STR(KS_VS))	// cursor very visible (blink)
#define T_CVS	(TERM_STR(KS_CVS))	// cursor normally visible (no blink)
#define T_CSH	(TERM_STR(KS_CSH))	// cursor shape
#define T_CRC	(TERM_STR(KS_CRC))	// request cursor blinking
#define T_CRS	(TERM_STR(KS_CRS))	// request cursor style
#define T_ME	(TERM_STR(KS_ME))	// normal mode
#define T_MR	(TERM_STR(KS_MR))	// reverse mode
#define T_MD	(TERM_STR(KS_MD))	// bold mode
#define T_SE	(TERM_STR(KS_SE))	// normal mode
#define T_SO	(TERM_STR(KS_SO))	// standout mode
#define T_CZH	(TERM_STR(KS_CZH))	// italic mode start
#define T_CZR	(TERM_STR(KS_CZR))	// italic mode end
#define T_UE	(TERM_STR(KS_UE))	// exit underscore (underline) mode
#define T_US	(TERM_STR(KS_US))	// underscore (underline) mode
#define T_UCE	(TERM_STR(KS_UCE))	// exit undercurl mode
#define T_UCS	(TERM_STR(KS_UCS))	// undercurl mode
#define T_STE	(TERM_STR(KS_STE))	// exit strikethrough mode
#define T_STS	(TERM_STR(KS_STS))	// strikethrough mode
#define T_MS	(TERM_STR(KS_MS))	// save to move cur in reverse mode
#define T_CM	(TERM_STR(KS_CM))	// cursor motion
#define T_SR	(TERM_STR(KS_SR))	// scroll reverse (backward)
#define T_CRI	(TERM_STR(KS_CRI))	// cursor number of chars right
#define T_VB	(TERM_STR(KS_VB))	// visual bell
#define T_KS	(TERM_STR(KS_KS))	// put term in "keypad transmit" mode
#define T_KE	(TERM_STR(KS_KE))	// out of "keypad transmit" mode
#define T_TI	(TERM_STR(KS_TI))	// put terminal in termcap mode
#define T_CTI	(TERM_STR(KS_CTI))	// put terminal in "raw" mode
#define T_TE	(TERM_STR(KS_TE))	// end of termcap mode
#define T_CTE	(TERM_STR(KS_CTE))	// end of "raw" mode
#define T_BC	(TERM_STR(KS_BC))	// backspace character
#define T_CCS	(TERM_STR(KS_CCS))	// cur is relative to scroll region
#define T_CCO	(TERM_STR(KS_CCO))	// number of colors
#define T_CSF	(TERM_STR(KS_CSF))	// set foreground color
#define T_CSB	(TERM_STR(KS_CSB))	// set background color
#define T_XS	(TERM_STR(KS_XS))	// standout not erased by overwriting
#define T_XN	(TERM_STR(KS_XN))	// newline glitch
#define T_MB	(TERM_STR(KS_MB))	// blink mode
#define T_CAF	(TERM_STR(KS_CAF))	// set foreground color (ANSI)
#define T_CAB	(TERM_STR(KS_CAB))	// set background color (ANSI)
#define T_CAU	(TERM_STR(KS_CAU))	// set underline color (ANSI)
#define T_LE	(TERM_STR(KS_LE))	// cursor left
#define T_ND	(TERM_STR(KS_ND))	// cursor right
#define T_CIS	(TERM_STR(KS_CIS))	// set icon text start
#define T_CIE	(TERM_STR(KS_CIE))	// set icon text end
#define T_TS	(TERM_STR(KS_TS))	// set window title start
#define T_FS	(TERM_STR(KS_FS))	// set window title end
#define T_CSC	(TERM_STR(KS_CSC))	// set cursor color start
#define T_CEC	(TERM_STR(KS_CEC))	// set cursor color end
#define T_CWP	(TERM_STR(KS_CWP))	// set window position
#define T_CGP	(TERM_STR(KS_CGP))	// get window position
#define T_CWS	(TERM_STR(KS_CWS))	// window size
#define T_CSI	(TERM_STR(KS_CSI))	// start insert mode
#define T_CEI	(TERM_STR(KS_CEI))	// end insert mode
#define T_CSR	(TERM_STR(KS_CSR))	// start replace mode
#define T_CRV	(TERM_STR(KS_CRV))	// request version string
#define T_RFG	(TERM_STR(KS_RFG))	// request foreground RGB
#define T_RBG	(TERM_STR(KS_RBG))	// request background RGB
#define T_OP	(TERM_STR(KS_OP))	// original color pair
#define T_U7	(TERM_STR(KS_U7))	// request cursor position
#define T_8F	(TERM_STR(KS_8F))	// set foreground color (RGB)
#define T_8B	(TERM_STR(KS_8B))	// set background color (RGB)
#define T_8U	(TERM_STR(KS_8U))	// set underline color (RGB)
#define T_BE	(TERM_STR(KS_CBE))	// enable bracketed paste mode
#define T_BD	(TERM_STR(KS_CBD))	// disable bracketed paste mode
#define T_PS	(TERM_STR(KS_CPS))	// start of bracketed paste
#define T_PE	(TERM_STR(KS_CPE))	// end of bracketed paste
#define T_CST	(TERM_STR(KS_CST))	// save window title
#define T_CRT	(TERM_STR(KS_CRT))	// restore window title
#define T_SSI	(TERM_STR(KS_SSI))	// save icon text
#define T_SRI	(TERM_STR(KS_SRI))	// restore icon text

typedef enum {
    TMODE_COOK,	    // terminal mode for external cmds and Ex mode
    TMODE_SLEEP,    // terminal mode for sleeping (cooked but no echo)
    TMODE_RAW,	    // terminal mode for Normal and Insert mode
    TMODE_UNKNOWN   // after executing a shell
} tmode_T;
