diff options
Diffstat (limited to 'data/vim/patches/8.1.1423')
-rw-r--r-- | data/vim/patches/8.1.1423 | 242 |
1 files changed, 0 insertions, 242 deletions
diff --git a/data/vim/patches/8.1.1423 b/data/vim/patches/8.1.1423 deleted file mode 100644 index db04c4d5f..000000000 --- a/data/vim/patches/8.1.1423 +++ /dev/null @@ -1,242 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 8.1.1423 -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.1423 -Problem: Popup windows use options from current window and buffer. -Solution: Clear all local options when creating a popup window. -Files: src/popupwin.c, src/option.c, src/proto/option.pro, - src/testdir/test_popupwin.vim - - -*** ../vim-8.1.1422/src/popupwin.c 2019-05-30 14:29:42.597507636 +0200 ---- src/popupwin.c 2019-05-30 15:00:03.807391833 +0200 -*************** -*** 253,258 **** ---- 253,262 ---- - if (buf == NULL) - return; - ml_open(buf); -+ -+ win_init_popup_win(wp, buf); -+ -+ set_local_options_default(wp); - set_string_option_direct_in_buf(buf, (char_u *)"buftype", -1, - (char_u *)"popup", OPT_FREE|OPT_LOCAL, 0); - set_string_option_direct_in_buf(buf, (char_u *)"bufhidden", -1, -*************** -*** 262,269 **** - buf->b_p_bl = FALSE; // unlisted buffer - buf->b_locked = TRUE; - -- win_init_popup_win(wp, buf); -- - nr = (int)dict_get_number(d, (char_u *)"tab"); - if (nr == 0) - { ---- 266,271 ---- -*** ../vim-8.1.1422/src/option.c 2019-05-28 23:08:12.072648675 +0200 ---- src/option.c 2019-05-30 15:17:11.233968834 +0200 -*************** -*** 3269,3275 **** - static int findoption(char_u *); - static int find_key_option(char_u *arg_arg, int has_lt); - static void showoptions(int all, int opt_flags); -! static int optval_default(struct vimoption *, char_u *varp); - static void showoneopt(struct vimoption *, int opt_flags); - static int put_setstring(FILE *fd, char *cmd, char *name, char_u **valuep, long_u flags); - static int put_setnum(FILE *fd, char *cmd, char *name, long *valuep); ---- 3269,3275 ---- - static int findoption(char_u *); - static int find_key_option(char_u *arg_arg, int has_lt); - static void showoptions(int all, int opt_flags); -! static int optval_default(struct vimoption *, char_u *varp, int compatible); - static void showoneopt(struct vimoption *, int opt_flags); - static int put_setstring(FILE *fd, char *cmd, char *name, char_u **valuep, long_u flags); - static int put_setnum(FILE *fd, char *cmd, char *name, long *valuep); -*************** -*** 3893,3898 **** ---- 3893,3928 ---- - options[opt_idx].def_val[VI_DEFAULT] = (char_u *)(long_i)val; - } - -+ /* -+ * Set all window-local and buffer-local options to the Vim default. -+ * local-global options will use the global value. -+ */ -+ void -+ set_local_options_default(win_T *wp) -+ { -+ win_T *save_curwin = curwin; -+ int i; -+ -+ curwin = wp; -+ curbuf = curwin->w_buffer; -+ block_autocmds(); -+ -+ for (i = 0; !istermoption(&options[i]); i++) -+ { -+ struct vimoption *p = &(options[i]); -+ char_u *varp = get_varp_scope(p, OPT_LOCAL); -+ -+ if (p->indir != PV_NONE -+ && !(options[i].flags & P_NODEFAULT) -+ && !optval_default(p, varp, FALSE)) -+ set_option_default(i, OPT_LOCAL, FALSE); -+ } -+ -+ unblock_autocmds(); -+ curwin = save_curwin; -+ curbuf = curwin->w_buffer; -+ } -+ - #if defined(EXITFREE) || defined(PROTO) - /* - * Free all options. -*************** -*** 10149,10155 **** - if (varp != NULL - && ((all == 2 && isterm) - || (all == 1 && !isterm) -! || (all == 0 && !optval_default(p, varp)))) - { - if (p->flags & P_BOOL) - len = 1; /* a toggle option fits always */ ---- 10179,10185 ---- - if (varp != NULL - && ((all == 2 && isterm) - || (all == 1 && !isterm) -! || (all == 0 && !optval_default(p, varp, p_cp)))) - { - if (p->flags & P_BOOL) - len = 1; /* a toggle option fits always */ -*************** -*** 10199,10211 **** - * Return TRUE if option "p" has its default value. - */ - static int -! optval_default(struct vimoption *p, char_u *varp) - { - int dvi; - - if (varp == NULL) - return TRUE; /* hidden option is always at default */ -! dvi = ((p->flags & P_VI_DEF) || p_cp) ? VI_DEFAULT : VIM_DEFAULT; - if (p->flags & P_NUM) - return (*(long *)varp == (long)(long_i)p->def_val[dvi]); - if (p->flags & P_BOOL) ---- 10229,10241 ---- - * Return TRUE if option "p" has its default value. - */ - static int -! optval_default(struct vimoption *p, char_u *varp, int compatible) - { - int dvi; - - if (varp == NULL) - return TRUE; /* hidden option is always at default */ -! dvi = ((p->flags & P_VI_DEF) || compatible) ? VI_DEFAULT : VIM_DEFAULT; - if (p->flags & P_NUM) - return (*(long *)varp == (long)(long_i)p->def_val[dvi]); - if (p->flags & P_BOOL) -*************** -*** 10311,10317 **** - - /* Global values are only written when not at the default value. */ - varp = get_varp_scope(p, opt_flags); -! if ((opt_flags & OPT_GLOBAL) && optval_default(p, varp)) - continue; - - round = 2; ---- 10341,10347 ---- - - /* Global values are only written when not at the default value. */ - varp = get_varp_scope(p, opt_flags); -! if ((opt_flags & OPT_GLOBAL) && optval_default(p, varp, p_cp)) - continue; - - round = 2; -*************** -*** 10327,10333 **** - if (!(opt_flags & OPT_GLOBAL) && !local_only) - { - varp_fresh = get_varp_scope(p, OPT_GLOBAL); -! if (!optval_default(p, varp_fresh)) - { - round = 1; - varp_local = varp; ---- 10357,10363 ---- - if (!(opt_flags & OPT_GLOBAL) && !local_only) - { - varp_fresh = get_varp_scope(p, OPT_GLOBAL); -! if (!optval_default(p, varp_fresh, p_cp)) - { - round = 1; - varp_local = varp; -*** ../vim-8.1.1422/src/proto/option.pro 2019-05-26 21:03:19.940073927 +0200 ---- src/proto/option.pro 2019-05-30 14:42:45.737186164 +0200 -*************** -*** 2,7 **** ---- 2,8 ---- - void set_init_1(int clean_arg); - void set_string_default(char *name, char_u *val); - void set_number_default(char *name, long val); -+ void set_local_options_default(win_T *wp); - void free_all_options(void); - void set_init_2(void); - void set_init_3(void); -*** ../vim-8.1.1422/src/testdir/test_popupwin.vim 2019-05-30 14:29:42.597507636 +0200 ---- src/testdir/test_popupwin.vim 2019-05-30 15:18:36.037507243 +0200 -*************** -*** 264,266 **** ---- 264,289 ---- - call popup_close(winid) - call assert_equal({}, popup_getoptions(winid)) - endfunc -+ -+ func Test_popup_option_values() -+ new -+ " window-local -+ setlocal number -+ setlocal nowrap -+ " buffer-local -+ setlocal omnifunc=Something -+ " global/buffer-local -+ setlocal path=/there -+ " global/window-local -+ setlocal scrolloff=9 -+ -+ let winid = popup_create('hello', {}) -+ call assert_equal(0, getwinvar(winid, '&number')) -+ call assert_equal(1, getwinvar(winid, '&wrap')) -+ call assert_equal('', getwinvar(winid, '&omnifunc')) -+ call assert_equal(&g:path, getwinvar(winid, '&path')) -+ call assert_equal(&g:scrolloff, getwinvar(winid, '&scrolloff')) -+ -+ call popup_close(winid) -+ bwipe -+ endfunc -*** ../vim-8.1.1422/src/version.c 2019-05-30 14:29:42.597507636 +0200 ---- src/version.c 2019-05-30 14:42:37.873229921 +0200 -*************** -*** 769,770 **** ---- 769,772 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 1423, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -51. You put a pillow case over your laptop so your lover doesn't see it while - you are pretending to catch your breath. - - /// 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 /// |