diff options
author | Sam Bingner <sam@bingner.com> | 2018-08-03 15:06:38 -1000 |
---|---|---|
committer | Sam Bingner <sam@bingner.com> | 2018-08-03 15:06:38 -1000 |
commit | 135b410607f008d3709a7b1374f3f37924eb9fe4 (patch) | |
tree | f4756ef3a354f6001360db894db010df85177f76 /data/vim/patches/8.1.0061 | |
parent | bd1eb51da0d3f250793e1868d73babdf495c921f (diff) |
Update vim
Diffstat (limited to 'data/vim/patches/8.1.0061')
-rw-r--r-- | data/vim/patches/8.1.0061 | 420 |
1 files changed, 420 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.0061 b/data/vim/patches/8.1.0061 new file mode 100644 index 000000000..e9c537e67 --- /dev/null +++ b/data/vim/patches/8.1.0061 @@ -0,0 +1,420 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.0061 +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.0061 +Problem: Window title is wrong after resetting and setting 'title'. +Solution: Move resetting the title into maketitle(). (Jason Franklin) +Files: src/option.c, src/buffer.c + + +*** ../vim-8.1.0060/src/option.c 2018-06-12 16:49:26.366028607 +0200 +--- src/option.c 2018-06-16 22:36:07.814142229 +0200 +*************** +*** 3256,3264 **** + #ifdef FEAT_CMDWIN + static char_u *check_cedit(void); + #endif +- #ifdef FEAT_TITLE +- static void did_set_title(int icon); +- #endif + static char_u *option_expand(int opt_idx, char_u *val); + static void didset_options(void); + static void didset_options2(void); +--- 3256,3261 ---- +*************** +*** 5374,5400 **** + * the old value back. + */ + static void +! did_set_title( +! int icon) /* Did set icon instead of title */ + { + if (starting != NO_SCREEN + #ifdef FEAT_GUI + && !gui.starting + #endif + ) +- { + maketitle(); +- if (icon) +- { +- if (!p_icon) +- mch_restore_title(2); +- } +- else +- { +- if (!p_title) +- mch_restore_title(1); +- } +- } + } + #endif + +--- 5371,5384 ---- + * the old value back. + */ + static void +! did_set_title(void) + { + if (starting != NO_SCREEN + #ifdef FEAT_GUI + && !gui.starting + #endif + ) + maketitle(); + } + #endif + +*************** +*** 6949,6956 **** + else + stl_syntax &= ~flagval; + # endif +! did_set_title(varp == &p_iconstring); +! + } + #endif + +--- 6933,6939 ---- + else + stl_syntax &= ~flagval; + # endif +! did_set_title(); + } + #endif + +*************** +*** 8401,8414 **** + + #ifdef FEAT_TITLE + /* when 'title' changed, may need to change the title; same for 'icon' */ +! else if ((int *)varp == &p_title) +! { +! did_set_title(FALSE); +! } +! +! else if ((int *)varp == &p_icon) + { +! did_set_title(TRUE); + } + #endif + +--- 8384,8392 ---- + + #ifdef FEAT_TITLE + /* when 'title' changed, may need to change the title; same for 'icon' */ +! else if ((int *)varp == &p_title || (int *)varp == &p_icon) + { +! did_set_title(); + } + #endif + +*** ../vim-8.1.0060/src/buffer.c 2018-06-06 18:02:31.402773772 +0200 +--- src/buffer.c 2018-06-16 22:57:08.067368623 +0200 +*************** +*** 38,44 **** + static int otherfile_buf(buf_T *buf, char_u *ffname); + #endif + #ifdef FEAT_TITLE +! static int ti_change(char_u *str, char_u **last); + #endif + static int append_arg_number(win_T *wp, char_u *buf, int buflen, int add_file); + static void free_buffer(buf_T *); +--- 38,44 ---- + static int otherfile_buf(buf_T *buf, char_u *ffname); + #endif + #ifdef FEAT_TITLE +! static int value_changed(char_u *str, char_u **last); + #endif + static int append_arg_number(win_T *wp, char_u *buf, int buflen, int add_file); + static void free_buffer(buf_T *); +*************** +*** 3545,3564 **** + } + + #if defined(FEAT_TITLE) || defined(PROTO) +- /* +- * put file name in title bar of window and in icon title +- */ +- + static char_u *lasttitle = NULL; + static char_u *lasticon = NULL; + + void + maketitle(void) + { + char_u *p; +! char_u *t_str = NULL; +! char_u *i_name; +! char_u *i_str = NULL; + int maxlen = 0; + int len; + int mustset; +--- 3545,3562 ---- + } + + #if defined(FEAT_TITLE) || defined(PROTO) + static char_u *lasttitle = NULL; + static char_u *lasticon = NULL; + ++ /* ++ * Put the file name in the title bar and icon of the window. ++ */ + void + maketitle(void) + { + char_u *p; +! char_u *title_str = NULL; +! char_u *icon_str = NULL; + int maxlen = 0; + int len; + int mustset; +*************** +*** 3574,3580 **** + + need_maketitle = FALSE; + if (!p_title && !p_icon && lasttitle == NULL && lasticon == NULL) +! return; + + if (p_title) + { +--- 3572,3578 ---- + + need_maketitle = FALSE; + if (!p_title && !p_icon && lasttitle == NULL && lasticon == NULL) +! return; // nothing to do + + if (p_title) + { +*************** +*** 3585,3591 **** + maxlen = 10; + } + +! t_str = buf; + if (*p_titlestring != NUL) + { + #ifdef FEAT_STL_OPT +--- 3583,3589 ---- + maxlen = 10; + } + +! title_str = buf; + if (*p_titlestring != NUL) + { + #ifdef FEAT_STL_OPT +*************** +*** 3598,3604 **** + use_sandbox = was_set_insecurely((char_u *)"titlestring", 0); + # endif + called_emsg = FALSE; +! build_stl_str_hl(curwin, t_str, sizeof(buf), + p_titlestring, use_sandbox, + 0, maxlen, NULL, NULL); + if (called_emsg) +--- 3596,3602 ---- + use_sandbox = was_set_insecurely((char_u *)"titlestring", 0); + # endif + called_emsg = FALSE; +! build_stl_str_hl(curwin, title_str, sizeof(buf), + p_titlestring, use_sandbox, + 0, maxlen, NULL, NULL); + if (called_emsg) +*************** +*** 3608,3614 **** + } + else + #endif +! t_str = p_titlestring; + } + else + { +--- 3606,3612 ---- + } + else + #endif +! title_str = p_titlestring; + } + else + { +*************** +*** 3714,3724 **** + } + } + } +! mustset = ti_change(t_str, &lasttitle); + + if (p_icon) + { +! i_str = buf; + if (*p_iconstring != NUL) + { + #ifdef FEAT_STL_OPT +--- 3712,3722 ---- + } + } + } +! mustset = value_changed(title_str, &lasttitle); + + if (p_icon) + { +! icon_str = buf; + if (*p_iconstring != NUL) + { + #ifdef FEAT_STL_OPT +*************** +*** 3731,3737 **** + use_sandbox = was_set_insecurely((char_u *)"iconstring", 0); + # endif + called_emsg = FALSE; +! build_stl_str_hl(curwin, i_str, sizeof(buf), + p_iconstring, use_sandbox, + 0, 0, NULL, NULL); + if (called_emsg) +--- 3729,3735 ---- + use_sandbox = was_set_insecurely((char_u *)"iconstring", 0); + # endif + called_emsg = FALSE; +! build_stl_str_hl(curwin, icon_str, sizeof(buf), + p_iconstring, use_sandbox, + 0, 0, NULL, NULL); + if (called_emsg) +*************** +*** 3741,3772 **** + } + else + #endif +! i_str = p_iconstring; + } + else + { + if (buf_spname(curbuf) != NULL) +! i_name = buf_spname(curbuf); + else /* use file name only in icon */ +! i_name = gettail(curbuf->b_ffname); +! *i_str = NUL; + /* Truncate name at 100 bytes. */ +! len = (int)STRLEN(i_name); + if (len > 100) + { + len -= 100; + #ifdef FEAT_MBYTE + if (has_mbyte) +! len += (*mb_tail_off)(i_name, i_name + len) + 1; + #endif +! i_name += len; + } +! STRCPY(i_str, i_name); +! trans_characters(i_str, IOSIZE); + } + } + +! mustset |= ti_change(i_str, &lasticon); + + if (mustset) + resettitle(); +--- 3739,3770 ---- + } + else + #endif +! icon_str = p_iconstring; + } + else + { + if (buf_spname(curbuf) != NULL) +! p = buf_spname(curbuf); + else /* use file name only in icon */ +! p = gettail(curbuf->b_ffname); +! *icon_str = NUL; + /* Truncate name at 100 bytes. */ +! len = (int)STRLEN(p); + if (len > 100) + { + len -= 100; + #ifdef FEAT_MBYTE + if (has_mbyte) +! len += (*mb_tail_off)(p, p + len) + 1; + #endif +! p += len; + } +! STRCPY(icon_str, p); +! trans_characters(icon_str, IOSIZE); + } + } + +! mustset |= value_changed(icon_str, &lasticon); + + if (mustset) + resettitle(); +*************** +*** 3775,3794 **** + /* + * Used for title and icon: Check if "str" differs from "*last". Set "*last" + * from "str" if it does. +! * Return TRUE when "*last" changed. + */ + static int +! ti_change(char_u *str, char_u **last) + { + if ((str == NULL) != (*last == NULL) + || (str != NULL && *last != NULL && STRCMP(str, *last) != 0)) + { + vim_free(*last); + if (str == NULL) + *last = NULL; + else + *last = vim_strsave(str); +! return TRUE; + } + return FALSE; + } +--- 3773,3797 ---- + /* + * Used for title and icon: Check if "str" differs from "*last". Set "*last" + * from "str" if it does. +! * Return TRUE if resettitle() is to be called. + */ + static int +! value_changed(char_u *str, char_u **last) + { + if ((str == NULL) != (*last == NULL) + || (str != NULL && *last != NULL && STRCMP(str, *last) != 0)) + { + vim_free(*last); + if (str == NULL) ++ { + *last = NULL; ++ mch_restore_title(last == &lasttitle ? 1 : 2); ++ } + else ++ { + *last = vim_strsave(str); +! return TRUE; +! } + } + return FALSE; + } +*** ../vim-8.1.0060/src/version.c 2018-06-16 22:16:43.232576946 +0200 +--- src/version.c 2018-06-16 22:48:20.082215622 +0200 +*************** +*** 763,764 **** +--- 763,766 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 61, + /**/ + +-- +"I don’t know how to make a screenshot" - Richard Stallman, July 2002 +(when asked to send a screenshot of his desktop for unix.se) + + /// 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 /// |