From cbd0984fa5ecbb48c7247b3429474a09678237b5 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Apr 01 2015 16:00:04 +0000 Subject: - patchlevel 687 --- diff --git a/7.4.687 b/7.4.687 new file mode 100644 index 0000000..74aa40a --- /dev/null +++ b/7.4.687 @@ -0,0 +1,274 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.687 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.687 +Problem: There is no way to use a different in Replace mode for a terminal. +Solution: Add t_SR. (Omar Sandoval) +Files: runtime/doc/options.txt, runtime/doc/term.txt, + src/option.c, src/term.c, src/term.h + + +*** ../vim-7.4.686/runtime/doc/options.txt 2015-01-27 15:58:37.202395482 +0100 +--- runtime/doc/options.txt 2015-03-31 18:01:58.465823918 +0200 +*************** +*** 3419,3425 **** + the height of the cursor can be changed. This can be done by + specifying a block cursor, or a percentage for a vertical or + horizontal cursor. +! For a console the 't_SI' and 't_EI' escape sequences are used. + + The option is a comma separated list of parts. Each part consist of a + mode-list and an argument-list: +--- 3420,3427 ---- + the height of the cursor can be changed. This can be done by + specifying a block cursor, or a percentage for a vertical or + horizontal cursor. +! For a console the 't_SI', 't_SR', and 't_EI' escape sequences are +! used. + + The option is a comma separated list of parts. Each part consist of a + mode-list and an argument-list: +*** ../vim-7.4.686/runtime/doc/term.txt 2015-02-10 19:20:33.727792128 +0100 +--- runtime/doc/term.txt 2015-03-31 18:01:58.465823918 +0200 +*************** +*** 283,290 **** + *t_xs* *'t_xs'* + t_xs if non-empty, standout not erased by overwriting (hpterm) + *t_xn* *'t_xn'* +! t_xn if non-empty, character writing at the last cell of screen +! didn't causes scrolling + t_ZH italics mode *t_ZH* *'t_ZH'* + t_ZR italics end *t_ZR* *'t_ZR'* + +--- 283,290 ---- + *t_xs* *'t_xs'* + t_xs if non-empty, standout not erased by overwriting (hpterm) + *t_xn* *'t_xn'* +! t_xn if non-empty, writing a character at the last screen cell +! does not cause scrolling + t_ZH italics mode *t_ZH* *'t_ZH'* + t_ZR italics end *t_ZR* *'t_ZR'* + +*************** +*** 294,300 **** + t_WP set window position (Y, X) in pixels *t_WP* *'t_WP'* + t_WS set window size (height, width) in characters *t_WS* *'t_WS'* + t_SI start insert mode (bar cursor shape) *t_SI* *'t_SI'* +! t_EI end insert mode (block cursor shape) *t_EI* *'t_EI'* + |termcap-cursor-shape| + t_RV request terminal version string (for xterm) *t_RV* *'t_RV'* + |xterm-8bit| |v:termresponse| |'ttymouse'| |xterm-codes| +--- 294,301 ---- + t_WP set window position (Y, X) in pixels *t_WP* *'t_WP'* + t_WS set window size (height, width) in characters *t_WS* *'t_WS'* + t_SI start insert mode (bar cursor shape) *t_SI* *'t_SI'* +! t_SR start replace mode (underline cursor shape) *t_SR* *'t_SR'* +! t_EI end insert or replace mode (block cursor shape) *t_EI* *'t_EI'* + |termcap-cursor-shape| + t_RV request terminal version string (for xterm) *t_RV* *'t_RV'* + |xterm-8bit| |v:termresponse| |'ttymouse'| |xterm-codes| +*************** +*** 438,450 **** + to reset to the default colors. + + *termcap-cursor-shape* *termcap-cursor-color* +! When Vim enters Insert mode the 't_SI' escape sequence is sent. When leaving +! Insert mode 't_EI' is used. But only if both are defined. This can be used +! to change the shape or color of the cursor in Insert mode. These are not +! standard termcap/terminfo entries, you need to set them yourself. + Example for an xterm, this changes the color of the cursor: > + if &term =~ "xterm" + let &t_SI = "\]12;purple\x7" + let &t_EI = "\]12;blue\x7" + endif + NOTE: When Vim exits the shape for Normal mode will remain. The shape from +--- 439,454 ---- + to reset to the default colors. + + *termcap-cursor-shape* *termcap-cursor-color* +! When Vim enters Insert mode the 't_SI' escape sequence is sent. When Vim +! enters Replace mode the 't_SR' escape sequence is sent if it is set, otherwise +! 't_SI' is sent. When leaving Insert mode or Replace mode 't_EI' is used. This +! can be used to change the shape or color of the cursor in Insert or Replace +! mode. These are not standard termcap/terminfo entries, you need to set them +! yourself. + Example for an xterm, this changes the color of the cursor: > + if &term =~ "xterm" + let &t_SI = "\]12;purple\x7" ++ let &t_SR = "\]12;red\x7" + let &t_EI = "\]12;blue\x7" + endif + NOTE: When Vim exits the shape for Normal mode will remain. The shape from +*************** +*** 670,677 **** + + *xterm-copy-paste* + NOTE: In some (older) xterms, it's not possible to move the cursor past column +! 95. This is an xterm problem, not Vim's. Get a newer xterm |color-xterm|. +! Now the limit is 223 columns. + + Copy/paste in xterm with (current mode NOT included in 'mouse'): + 1. Press left mouse button on first letter of text, move mouse pointer to last +--- 674,681 ---- + + *xterm-copy-paste* + NOTE: In some (older) xterms, it's not possible to move the cursor past column +! 95 or 223. This is an xterm problem, not Vim's. Get a newer xterm +! |color-xterm|. Also see |'ttymouse'|. + + Copy/paste in xterm with (current mode NOT included in 'mouse'): + 1. Press left mouse button on first letter of text, move mouse pointer to last +*** ../vim-7.4.686/src/option.c 2015-03-13 11:23:46.446245826 +0100 +--- src/option.c 2015-03-31 18:02:34.637429081 +0200 +*************** +*** 2978,2983 **** +--- 2978,2984 ---- + p_term("t_WS", T_CWS) + p_term("t_SI", T_CSI) + p_term("t_EI", T_CEI) ++ p_term("t_SR", T_CSR) + p_term("t_xn", T_XN) + p_term("t_xs", T_XS) + p_term("t_ZH", T_CZH) +*************** +*** 8560,8566 **** + errmsg = e_invarg; + curwin->w_p_nuw = 10; + } +! curwin->w_nrwidth_line_count = 0; + } + #endif + +--- 8561,8567 ---- + errmsg = e_invarg; + curwin->w_p_nuw = 10; + } +! curwin->w_nrwidth_line_count = 0; /* trigger a redraw */ + } + #endif + +*** ../vim-7.4.686/src/term.c 2015-02-10 19:20:33.735792024 +0100 +--- src/term.c 2015-03-31 18:17:22.223741055 +0200 +*************** +*** 3567,3593 **** + + #if defined(CURSOR_SHAPE) || defined(PROTO) + /* +! * Set cursor shape to match Insert mode. + */ + void + term_cursor_shape() + { +! static int showing_insert_mode = MAYBE; + +! if (!full_screen || *T_CSI == NUL || *T_CEI == NUL) + return; + +! if (State & INSERT) + { +! if (showing_insert_mode != TRUE) + out_str(T_CSI); /* Insert mode cursor */ +! showing_insert_mode = TRUE; + } +! else + { +! if (showing_insert_mode != FALSE) +! out_str(T_CEI); /* non-Insert mode cursor */ +! showing_insert_mode = FALSE; + } + } + #endif +--- 3567,3612 ---- + + #if defined(CURSOR_SHAPE) || defined(PROTO) + /* +! * Set cursor shape to match Insert or Replace mode. + */ + void + term_cursor_shape() + { +! static int showing_mode = NORMAL; +! char_u *p; + +! /* Only do something when redrawing the screen and we can restore the +! * mode. */ +! if (!full_screen || *T_CEI == NUL) + return; + +! if ((State & REPLACE) == REPLACE) + { +! if (showing_mode != REPLACE) +! { +! if (*T_CSR != NUL) +! p = T_CSR; /* Replace mode cursor */ +! else +! p = T_CSI; /* fall back to Insert mode cursor */ +! if (*p != NUL) +! { +! out_str(p); +! showing_mode = REPLACE; +! } +! } +! } +! else if (State & INSERT) +! { +! if (showing_mode != INSERT && *T_CSI != NUL) +! { + out_str(T_CSI); /* Insert mode cursor */ +! showing_mode = INSERT; +! } + } +! else if (showing_mode != NORMAL) + { +! out_str(T_CEI); /* non-Insert mode cursor */ +! showing_mode = NORMAL; + } + } + #endif +*** ../vim-7.4.686/src/term.h 2015-02-10 19:20:33.739791972 +0100 +--- src/term.h 2015-03-31 18:01:58.469823874 +0200 +*************** +*** 81,86 **** +--- 81,87 ---- + KS_CRV, /* request version string */ + KS_CSI, /* start insert mode (bar cursor) */ + KS_CEI, /* end insert mode (block cursor) */ ++ KS_CSR, /* start replace mode (underline cursor) */ + #ifdef FEAT_VERTSPLIT + KS_CSV, /* scroll region vertical */ + #endif +*************** +*** 159,164 **** +--- 160,166 ---- + #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_OP (term_str(KS_OP)) /* original color pair */ + #define T_U7 (term_str(KS_U7)) /* request cursor position */ +*** ../vim-7.4.686/src/version.c 2015-03-31 17:46:16.844128018 +0200 +--- src/version.c 2015-03-31 18:03:18.352951899 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 687, + /**/ + +-- +It is illegal to rob a bank and then shoot at the bank teller with a water +pistol. + [real standing law in Louisana, United States of America] + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org ///