Subversion Repositories planix.SVN

Rev

Blame | Last modification | View Log | RSS feed

/* vi:set ts=8 sts=4 sw=4:
 *
 * 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 */
    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_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_TE,      /* out of termcap 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_MB,      /* blink mode */
    KS_CAF,     /* set foreground color (ANSI) */
    KS_CAB,     /* set background 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_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_CWS,     /* set window size in characters */
    KS_CRV,     /* request version string */
    KS_CSI,     /* start insert mode (bar cursor) */
    KS_CEI,     /* end insert mode (block cursor) */
#ifdef FEAT_VERTSPLIT
    KS_CSV,     /* scroll region vertical */
#endif
    KS_OP       /* original color pair */
};

#define KS_LAST     KS_OP

/*
 * 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 */
#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_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_TE    (term_str(KS_TE))       /* out of termcap 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_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_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_CWP   (term_str(KS_CWP))      /* 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_CRV   (term_str(KS_CRV))      /* request version string */
#define T_OP    (term_str(KS_OP))       /* original color pair */

#define TMODE_COOK  0   /* terminal mode for external cmds and Ex mode */
#define TMODE_SLEEP 1   /* terminal mode for sleeping (cooked but no echo) */
#define TMODE_RAW   2   /* terminal mode for Normal and Insert mode */