diff options
author | Sam Bingner <sam@bingner.com> | 2018-12-13 15:11:52 -1000 |
---|---|---|
committer | Sam Bingner <sam@bingner.com> | 2018-12-13 15:11:52 -1000 |
commit | 957aa75d05c00731d7112bed7b68ce4568667d0c (patch) | |
tree | 0445216818495a7864eaa3acde1a1570d34b958d /data/vim/patches/8.1.0253 | |
parent | c54a909c8b5a8519130803cf55f68603c0ad3682 (diff) |
Update vim
Diffstat (limited to 'data/vim/patches/8.1.0253')
-rw-r--r-- | data/vim/patches/8.1.0253 | 475 |
1 files changed, 475 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.0253 b/data/vim/patches/8.1.0253 new file mode 100644 index 000000000..a77bf4f89 --- /dev/null +++ b/data/vim/patches/8.1.0253 @@ -0,0 +1,475 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.0253 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 8.1.0253 +Problem: Saving and restoring window title does not always work. +Solution: Use the stack push and pop commands. (Kouichi Iwamoto, + closes #3059) +Files: runtime/doc/term.txt, src/main.c, src/option.c, src/os_unix.c, + src/proto/term.pro, src/term.c, src/term.h, src/vim.h, + src/buffer.c, src/ex_docmd.c, src/os_amiga.c, + src/os_mswin.c, src/os_win32.c + +*** ../vim-8.1.0252/runtime/doc/term.txt 2018-05-17 13:42:03.000000000 +0200 +--- runtime/doc/term.txt 2018-08-07 22:02:48.947042241 +0200 +*************** +*** 342,347 **** +--- 352,361 ---- + t_SH set cursor shape *t_SH* *'t_SH'* + t_RC request terminal cursor blinking *t_RC* *'t_RC'* + t_RS request terminal cursor style *t_RS* *'t_RS'* ++ t_ST save window title to stack *t_ST* *'t_ST'* ++ t_RT restore window title from stack *t_RT* *'t_RT'* ++ t_Si save icon text to stack *t_Si* *'t_Si'* ++ t_Ri restore icon text from stack *t_Ri* *'t_Ri'* + + Some codes have a start, middle and end part. The start and end are defined + by the termcap option, the middle part is text. +*** ../vim-8.1.0252/src/main.c 2018-07-29 17:35:19.497750288 +0200 +--- src/main.c 2018-08-07 22:11:50.444370658 +0200 +*************** +*** 706,711 **** +--- 706,715 ---- + scroll_region_reset(); /* In case Rows changed */ + scroll_start(); /* may scroll the screen to the right position */ + ++ #ifdef FEAT_TITLE ++ term_push_title(SAVE_RESTORE_BOTH); ++ #endif ++ + /* + * Don't clear the screen when starting in Ex mode, unless using the GUI. + */ +*** ../vim-8.1.0252/src/option.c 2018-07-23 04:11:37.652969757 +0200 +--- src/option.c 2018-08-07 22:26:59.391401674 +0200 +*************** +*** 3192,3198 **** +--- 3192,3200 ---- + p_term("t_RB", T_RBG) + p_term("t_RC", T_CRC) + p_term("t_RI", T_CRI) ++ p_term("t_Ri", T_SRI) + p_term("t_RS", T_CRS) ++ p_term("t_RT", T_CRT) + p_term("t_RV", T_CRV) + p_term("t_Sb", T_CSB) + p_term("t_SC", T_CSC) +*************** +*** 3200,3208 **** +--- 3202,3212 ---- + p_term("t_Sf", T_CSF) + p_term("t_SH", T_CSH) + p_term("t_SI", T_CSI) ++ p_term("t_Si", T_SSI) + p_term("t_so", T_SO) + p_term("t_SR", T_CSR) + p_term("t_sr", T_SR) ++ p_term("t_ST", T_CST) + p_term("t_Te", T_STE) + p_term("t_te", T_TE) + p_term("t_ti", T_TI) +*************** +*** 10414,10420 **** + mch_setmouse(FALSE); /* switch mouse off */ + #endif + #ifdef FEAT_TITLE +! mch_restore_title(3); /* restore window titles */ + #endif + #if defined(FEAT_XCLIPBOARD) && defined(FEAT_GUI) + /* When starting the GUI close the display opened for the clipboard. +--- 10418,10424 ---- + mch_setmouse(FALSE); /* switch mouse off */ + #endif + #ifdef FEAT_TITLE +! mch_restore_title(SAVE_RESTORE_BOTH); /* restore window titles */ + #endif + #if defined(FEAT_XCLIPBOARD) && defined(FEAT_GUI) + /* When starting the GUI close the display opened for the clipboard. +*************** +*** 11219,11226 **** + buf->b_p_isk = NULL; + } + /* +! * Always free the allocated strings. +! * If not already initialized, set 'readonly' and copy 'fileformat'. + */ + if (!buf->b_p_initialized) + { +--- 11223,11230 ---- + buf->b_p_isk = NULL; + } + /* +! * Always free the allocated strings. If not already initialized, +! * reset 'readonly' and copy 'fileformat'. + */ + if (!buf->b_p_initialized) + { +*** ../vim-8.1.0252/src/os_unix.c 2018-08-07 17:38:36.991674646 +0200 +--- src/os_unix.c 2018-08-07 22:15:19.147259744 +0200 +*************** +*** 2336,2352 **** + /* + * Restore the window/icon title. + * "which" is one of: +! * 1 only restore title +! * 2 only restore icon +! * 3 restore title and icon + */ + void + mch_restore_title(int which) + { + /* only restore the title or icon when it has been set */ +! mch_settitle(((which & 1) && did_set_title) ? + (oldtitle ? oldtitle : p_titleold) : NULL, +! ((which & 2) && did_set_icon) ? oldicon : NULL); + } + + #endif /* FEAT_TITLE */ +--- 2336,2356 ---- + /* + * Restore the window/icon title. + * "which" is one of: +! * SAVE_RESTORE_TITLE only restore title +! * SAVE_RESTORE_ICON only restore icon +! * SAVE_RESTORE_BOTH restore title and icon + */ + void + mch_restore_title(int which) + { + /* only restore the title or icon when it has been set */ +! mch_settitle(((which & SAVE_RESTORE_TITLE) && did_set_title) ? + (oldtitle ? oldtitle : p_titleold) : NULL, +! ((which & SAVE_RESTORE_ICON) && did_set_icon) ? oldicon : NULL); +! +! // pop and push from/to the stack +! term_pop_title(which); +! term_push_title(which); + } + + #endif /* FEAT_TITLE */ +*************** +*** 3412,3418 **** + { + settmode(TMODE_COOK); + #ifdef FEAT_TITLE +! mch_restore_title(3); /* restore xterm title and icon name */ + #endif + /* + * When t_ti is not empty but it doesn't cause swapping terminal +--- 3416,3424 ---- + { + settmode(TMODE_COOK); + #ifdef FEAT_TITLE +! // restore xterm title and icon name +! mch_restore_title(SAVE_RESTORE_BOTH); +! term_pop_title(SAVE_RESTORE_BOTH); + #endif + /* + * When t_ti is not empty but it doesn't cause swapping terminal +*** ../vim-8.1.0252/src/proto/term.pro 2018-08-07 17:38:36.995674625 +0200 +--- src/proto/term.pro 2018-08-07 22:14:11.971620330 +0200 +*************** +*** 31,36 **** +--- 31,38 ---- + void term_fg_rgb_color(guicolor_T rgb); + void term_bg_rgb_color(guicolor_T rgb); + void term_settitle(char_u *title); ++ void term_push_title(int which); ++ void term_pop_title(int which); + void ttest(int pairs); + void add_long_to_buf(long_u val, char_u *dst); + void check_shellsize(void); +*** ../vim-8.1.0252/src/term.c 2018-08-07 17:38:36.995674625 +0200 +--- src/term.c 2018-08-07 22:13:41.603782475 +0200 +*************** +*** 922,927 **** +--- 922,931 ---- + # endif + {(int)KS_CBE, IF_EB("\033[?2004h", ESC_STR "[?2004h")}, + {(int)KS_CBD, IF_EB("\033[?2004l", ESC_STR "[?2004l")}, ++ {(int)KS_CST, IF_EB("\033[22;2t", ESC_STR "[22;2t")}, ++ {(int)KS_CRT, IF_EB("\033[23;2t", ESC_STR "[23;2t")}, ++ {(int)KS_SSI, IF_EB("\033[22;1t", ESC_STR "[22;1t")}, ++ {(int)KS_SRI, IF_EB("\033[23;1t", ESC_STR "[23;1t")}, + + {K_UP, IF_EB("\033O*A", ESC_STR "O*A")}, + {K_DOWN, IF_EB("\033O*B", ESC_STR "O*B")}, +*************** +*** 1600,1605 **** +--- 1604,1611 ---- + {KS_8F, "8f"}, {KS_8B, "8b"}, + {KS_CBE, "BE"}, {KS_CBD, "BD"}, + {KS_CPS, "PS"}, {KS_CPE, "PE"}, ++ {KS_CST, "ST"}, {KS_CRT, "RT"}, ++ {KS_SSI, "Si"}, {KS_SRI, "Ri"}, + {(enum SpecialKey)0, NULL} + }; + int i; +*************** +*** 2974,2979 **** +--- 2980,3024 ---- + out_str(T_FS); /* set title end */ + out_flush(); + } ++ ++ /* ++ * Tell the terminal to push (save) the title and/or icon, so that it can be ++ * popped (restored) later. ++ */ ++ void ++ term_push_title(int which) ++ { ++ if ((which & SAVE_RESTORE_TITLE) && *T_CST != NUL) ++ { ++ OUT_STR(T_CST); ++ out_flush(); ++ } ++ ++ if ((which & SAVE_RESTORE_ICON) && *T_SSI != NUL) ++ { ++ OUT_STR(T_SSI); ++ out_flush(); ++ } ++ } ++ ++ /* ++ * Tell the terminal to pop the title and/or icon. ++ */ ++ void ++ term_pop_title(int which) ++ { ++ if ((which & SAVE_RESTORE_TITLE) && *T_CRT != NUL) ++ { ++ OUT_STR(T_CRT); ++ out_flush(); ++ } ++ ++ if ((which & SAVE_RESTORE_ICON) && *T_SRI != NUL) ++ { ++ OUT_STR(T_SRI); ++ out_flush(); ++ } ++ } + #endif + + /* +*** ../vim-8.1.0252/src/term.h 2017-10-14 22:14:45.000000000 +0200 +--- src/term.h 2018-08-07 22:02:48.951042224 +0200 +*************** +*** 101,110 **** + KS_CBE, /* enable bracketed paste mode */ + KS_CBD, /* disable bracketed paste mode */ + KS_CPS, /* start of bracketed paste */ +! KS_CPE /* end of bracketed paste */ + }; + +! #define KS_LAST KS_CPE + + /* + * the terminal capabilities are stored in this array +--- 101,114 ---- + 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 +*************** +*** 196,201 **** +--- 200,209 ---- + #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) */ +*** ../vim-8.1.0252/src/vim.h 2018-07-29 16:09:14.644945560 +0200 +--- src/vim.h 2018-08-07 22:14:06.727648372 +0200 +*************** +*** 2548,2551 **** +--- 2548,2563 ---- + #define TERM_START_FORCEIT 2 + #define TERM_START_SYSTEM 4 + ++ #if defined(HAVE_DROP_FILE) \ ++ || (defined(FEAT_GUI_GTK) && defined(FEAT_DND)) \ ++ || defined(FEAT_GUI_MSWIN) \ ++ || defined(FEAT_GUI_MAC) ++ # define HAVE_HANDLE_DROP ++ #endif ++ ++ // Used for icon/title save and restore. ++ #define SAVE_RESTORE_TITLE 1 ++ #define SAVE_RESTORE_ICON 2 ++ #define SAVE_RESTORE_BOTH (SAVE_RESTORE_TITLE | SAVE_RESTORE_ICON) ++ + #endif /* VIM__H */ +*** ../vim-8.1.0252/src/buffer.c 2018-08-05 13:22:22.474562651 +0200 +--- src/buffer.c 2018-08-07 22:15:46.499112220 +0200 +*************** +*** 3798,3804 **** + if (str == NULL) + { + *last = NULL; +! mch_restore_title(last == &lasttitle ? 1 : 2); + } + else + { +--- 3798,3805 ---- + if (str == NULL) + { + *last = NULL; +! mch_restore_title( +! last == &lasttitle ? SAVE_RESTORE_TITLE : SAVE_RESTORE_ICON); + } + else + { +*** ../vim-8.1.0252/src/ex_docmd.c 2018-08-01 17:53:04.689381294 +0200 +--- src/ex_docmd.c 2018-08-07 22:16:05.727008287 +0200 +*************** +*** 7750,7756 **** + stoptermcap(); + out_flush(); /* needed for SUN to restore xterm buffer */ + #ifdef FEAT_TITLE +! mch_restore_title(3); /* restore window titles */ + #endif + ui_suspend(); /* call machine specific function */ + #ifdef FEAT_TITLE +--- 7750,7756 ---- + stoptermcap(); + out_flush(); /* needed for SUN to restore xterm buffer */ + #ifdef FEAT_TITLE +! mch_restore_title(SAVE_RESTORE_BOTH); /* restore window titles */ + #endif + ui_suspend(); /* call machine specific function */ + #ifdef FEAT_TITLE +*** ../vim-8.1.0252/src/os_amiga.c 2018-03-04 16:16:34.000000000 +0100 +--- src/os_amiga.c 2018-08-07 22:17:36.474515466 +0200 +*************** +*** 617,630 **** + /* + * Restore the window/icon title. + * which is one of: +! * 1 Just restore title +! * 2 Just restore icon (which we don't have) +! * 3 Restore title and icon (which we don't have) + */ + void + mch_restore_title(int which) + { +! if (which & 1) + mch_settitle(oldwindowtitle, NULL); + } + +--- 617,630 ---- + /* + * Restore the window/icon title. + * which is one of: +! * SAVE_RESTORE_TITLE Just restore title +! * SAVE_RESTORE_ICON Just restore icon (which we don't have) +! * SAVE_RESTORE_BOTH Restore title and icon (which we don't have) + */ + void + mch_restore_title(int which) + { +! if (which & SAVE_RESTORE_TITLE) + mch_settitle(oldwindowtitle, NULL); + } + +*************** +*** 907,913 **** + } + + #ifdef FEAT_TITLE +! mch_restore_title(3); /* restore window title */ + #endif + + ml_close_all(TRUE); /* remove all memfiles */ +--- 907,913 ---- + } + + #ifdef FEAT_TITLE +! mch_restore_title(SAVE_RESTORE_BOTH); /* restore window title */ + #endif + + ml_close_all(TRUE); /* remove all memfiles */ +*** ../vim-8.1.0252/src/os_mswin.c 2018-05-13 17:28:51.000000000 +0200 +--- src/os_mswin.c 2018-08-07 22:18:09.022337873 +0200 +*************** +*** 304,312 **** + /* + * Restore the window/icon title. + * which is one of: +! * 1: Just restore title +! * 2: Just restore icon (which we don't have) +! * 3: Restore title and icon (which we don't have) + */ + void + mch_restore_title(int which UNUSED) +--- 304,312 ---- + /* + * Restore the window/icon title. + * which is one of: +! * SAVE_RESTORE_TITLE: Just restore title +! * SAVE_RESTORE_ICON: Just restore icon (which we don't have) +! * SAVE_RESTORE_BOTH: Restore title and icon (which we don't have) + */ + void + mch_restore_title(int which UNUSED) +*** ../vim-8.1.0252/src/os_win32.c 2018-08-07 20:47:02.756848221 +0200 +--- src/os_win32.c 2018-08-07 22:18:29.258227246 +0200 +*************** +*** 2695,2701 **** + if (g_fWindInitCalled) + { + #ifdef FEAT_TITLE +! mch_restore_title(3); + /* + * Restore both the small and big icons of the console window to + * what they were at startup. Don't do this when the window is +--- 2695,2701 ---- + if (g_fWindInitCalled) + { + #ifdef FEAT_TITLE +! mch_restore_title(SAVE_RESTORE_BOTH); + /* + * Restore both the small and big icons of the console window to + * what they were at startup. Don't do this when the window is +*** ../vim-8.1.0252/src/version.c 2018-08-07 21:54:27.725813349 +0200 +--- src/version.c 2018-08-07 22:04:25.166600764 +0200 +*************** +*** 796,797 **** +--- 796,799 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 253, + /**/ + +-- + [Autumn changed into Winter ... Winter changed into Spring ... Spring + changed back into Autumn and Autumn gave Winter and Spring a miss and + went straight on into Summer ... Until one day ...] + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// |