Mercurial > vim
view src/term.h @ 18481:26256dcadd77 v8.1.2235
patch 8.1.2235: "C" with 'virtualedit' set does not include multi-byte char
Commit: https://github.com/vim/vim/commit/77ccc00340ed2598f7aa09716217e878665964fa
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Oct 31 03:21:25 2019 +0100
patch 8.1.2235: "C" with 'virtualedit' set does not include multi-byte char
Problem: "C" with 'virtualedit' set does not include multi-byte char.
Solution: Include the whole multi-byte char. (Nobuhiro Takasaki,
closes #5152)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 31 Oct 2019 03:30:03 +0100 |
parents | a9cf41bcb5d6 |
children | 6e3dc2d630c2 |
line wrap: on
line source
/* 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_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_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_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_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 */ #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 */