summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.1428
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.1428')
-rw-r--r--data/vim/patches/8.1.1428442
1 files changed, 0 insertions, 442 deletions
diff --git a/data/vim/patches/8.1.1428 b/data/vim/patches/8.1.1428
deleted file mode 100644
index 9de3b1d8b..000000000
--- a/data/vim/patches/8.1.1428
+++ /dev/null
@@ -1,442 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 8.1.1428
-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.1428
-Problem: Popup_atcursor() not implemented yet.
-Solution: Implement it. (Yasuhiro Matsumoto, closes #4456)
-Files: runtime/doc/popup.txt, src/evalfunc.c, src/popupwin.c,
- src/proto/popupwin.pro, src/testdir/test_popupwin.vim
-
-
-*** ../vim-8.1.1427/runtime/doc/popup.txt 2019-05-30 14:29:42.597507636 +0200
---- runtime/doc/popup.txt 2019-05-30 19:22:30.828010454 +0200
-***************
-*** 85,95 ****
-
- IMPLEMENTATION:
- - Code is in popupwin.c
-! - when creating the window set options to Vim default? (verify with 'number')
- - Implement filter.
- Check that popup_close() works in the filter.
-- - Implement the "pos" option.
- - Handle screen resize in screenalloc().
- - Make redrawing more efficient and avoid flicker.
- Store popup info in a mask, use the mask in screen_line()
- Fix redrawing problem with completion.
---- 85,95 ----
-
- IMPLEMENTATION:
- - Code is in popupwin.c
-! - Implement the "pos" option.
- - Implement filter.
- Check that popup_close() works in the filter.
- - Handle screen resize in screenalloc().
-+ - show [Popup] instead of [Scratch] in ":ls!"
- - Make redrawing more efficient and avoid flicker.
- Store popup info in a mask, use the mask in screen_line()
- Fix redrawing problem with completion.
-***************
-*** 97,103 ****
- Fix redrawing the statusline on top of a popup
- - Figure out the size and position better.
- if wrapping splits a double-wide character
-! if wrapping has an indent
- - Can the buffer be re-used, to avoid using up lots of buffer numbers?
- - Implement all the unimplemented options and features.
-
---- 97,103 ----
- Fix redrawing the statusline on top of a popup
- - Figure out the size and position better.
- if wrapping splits a double-wide character
-! if wrapping inserts indent
- - Can the buffer be re-used, to avoid using up lots of buffer numbers?
- - Implement all the unimplemented options and features.
-
-***************
-*** 160,169 ****
-
-
- popup_atcursor({text}, {options}) *popup_atcursor()*
-- {not implemented yet}
- Show the {text} above the cursor, and close it when the cursor
- moves. This works like: >
- call popup_create({text}, {
- \ 'line': 'cursor-1',
- \ 'col': 'cursor',
- \ 'moved': 'WORD',
---- 160,169 ----
-
-
- popup_atcursor({text}, {options}) *popup_atcursor()*
- Show the {text} above the cursor, and close it when the cursor
- moves. This works like: >
- call popup_create({text}, {
-+ \ 'pos': 'botleft',
- \ 'line': 'cursor-1',
- \ 'col': 'cursor',
- \ 'moved': 'WORD',
-***************
-*** 270,279 ****
- - 'bufhidden' is "hide"
- - 'buflisted' is off
- - 'undolevels' is -1: no undo at all
-! TODO: more
-
-! It is possible to change these options, but anything might break then, so
-! better leave them alone.
-
- The window does have a cursor position, but the cursor is not displayed.
-
---- 270,280 ----
- - 'bufhidden' is "hide"
- - 'buflisted' is off
- - 'undolevels' is -1: no undo at all
-! - all other buffer-local and window_local options are set to their Vim default
-! value.
-
-! It is possible to change the specifically mentioned options, but anything
-! might break then, so better leave them alone.
-
- The window does have a cursor position, but the cursor is not displayed.
-
-***************
-*** 306,317 ****
- "cursor", "cursor+1" or "cursor-1" to use the line of
- the cursor and add or subtract a number of lines;
- default is "cursor-1".
-- {only number is implemented}
- col screen column where to position the popup; can use
- "cursor" to use the column of the cursor, "cursor+99"
- and "cursor-99" to add or subtract a number of
- columns; default is "cursor"
-- {only number is implemented}
- pos "topleft", "topright", "botleft" or "botright":
- defines what corner of the popup "line" and "col" are
- used for. When not set "topleft" is used.
---- 307,316 ----
-***************
-*** 342,350 ****
- {not implemented yet}
- highlight highlight group name to use for the text, stored in
- the 'wincolor' option
- border list with numbers, defining the border thickness
-! above/right/below/left of the popup; an empty list
-! uses a border of 1 all around
- {not implemented yet}
- borderhighlight highlight group name to use for the border
- {not implemented yet}
---- 341,357 ----
- {not implemented yet}
- highlight highlight group name to use for the text, stored in
- the 'wincolor' option
-+ padding list with numbers, defining the padding
-+ above/right/below/left of the popup (similar to CSS);
-+ an empty list uses a padding of 1 all around; the
-+ padding goes around the text, inside any border;
-+ padding uses the 'wincolor' highlight; Example: [1, 2,
-+ 1, 3] has 1 line of padding above, 2 columns on the
-+ right, 1 line below and 3 columns on the left
-+ {not implemented yet}
- border list with numbers, defining the border thickness
-! above/right/below/left of the popup (similar to CSS);
-! an empty list uses a border of 1 all around
- {not implemented yet}
- borderhighlight highlight group name to use for the border
- {not implemented yet}
-*** ../vim-8.1.1427/src/evalfunc.c 2019-05-30 17:29:34.767666654 +0200
---- src/evalfunc.c 2019-05-30 19:05:00.148910615 +0200
-***************
-*** 809,814 ****
---- 809,815 ----
- {"perleval", 1, 1, f_perleval},
- #endif
- #ifdef FEAT_TEXT_PROP
-+ {"popup_atcursor", 2, 2, f_popup_atcursor},
- {"popup_close", 1, 1, f_popup_close},
- {"popup_create", 2, 2, f_popup_create},
- {"popup_getoptions", 1, 1, f_popup_getoptions},
-*** ../vim-8.1.1427/src/popupwin.c 2019-05-30 19:03:19.653294536 +0200
---- src/popupwin.c 2019-05-30 19:20:36.144585240 +0200
-***************
-*** 16,26 ****
- #ifdef FEAT_TEXT_PROP
-
- /*
- * Go through the options in "dict" and apply them to buffer "buf" displayed in
- * popup window "wp".
- */
- static void
-! apply_options(win_T *wp, buf_T *buf UNUSED, dict_T *dict)
- {
- int nr;
- char_u *str;
---- 16,70 ----
- #ifdef FEAT_TEXT_PROP
-
- /*
-+ * Get option value for"key", which is "line" or "col".
-+ * Handles "cursor+N" and "cursor-N".
-+ */
-+ static int
-+ popup_options_pos(dict_T *dict, char_u *key)
-+ {
-+ dictitem_T *di;
-+ char_u *val;
-+ char_u *s;
-+ char_u *endp;
-+ int n = 0;
-+
-+ di = dict_find(dict, key, -1);
-+ if (di == NULL)
-+ return 0;
-+
-+ val = tv_get_string(&di->di_tv);
-+ if (STRNCMP(val, "cursor", 6) != 0)
-+ return dict_get_number(dict, key);
-+
-+ setcursor_mayforce(TRUE);
-+ s = val + 6;
-+ if (*s != NUL)
-+ {
-+ n = strtol((char *)s, (char **)&endp, 10);
-+ if (endp != NULL && *skipwhite(endp) != NUL)
-+ {
-+ semsg(_(e_invexpr2), val);
-+ return 0;
-+ }
-+ }
-+
-+ if (STRCMP(key, "line") == 0)
-+ n = screen_screenrow() + 1 + n;
-+ else // "col"
-+ n = screen_screencol() + 1 + n;
-+
-+ if (n < 1)
-+ n = 1;
-+ return n;
-+ }
-+
-+ /*
- * Go through the options in "dict" and apply them to buffer "buf" displayed in
- * popup window "wp".
-+ * When called from f_popup_atcursor() "atcursor" is TRUE.
- */
- static void
-! apply_options(win_T *wp, buf_T *buf UNUSED, dict_T *dict, int atcursor)
- {
- int nr;
- char_u *str;
-***************
-*** 30,37 ****
- wp->w_maxwidth = dict_get_number(dict, (char_u *)"maxwidth");
- wp->w_maxheight = dict_get_number(dict, (char_u *)"maxheight");
-
-! wp->w_wantline = dict_get_number(dict, (char_u *)"line");
-! wp->w_wantcol = dict_get_number(dict, (char_u *)"col");
-
- wp->w_zindex = dict_get_number(dict, (char_u *)"zindex");
-
---- 74,92 ----
- wp->w_maxwidth = dict_get_number(dict, (char_u *)"maxwidth");
- wp->w_maxheight = dict_get_number(dict, (char_u *)"maxheight");
-
-! if (atcursor)
-! {
-! setcursor_mayforce(TRUE);
-! wp->w_wantline = screen_screenrow();
-! wp->w_wantcol = screen_screencol() + 1;
-! }
-!
-! nr = popup_options_pos(dict, (char_u *)"line");
-! if (nr > 0)
-! wp->w_wantline = nr;
-! nr = popup_options_pos(dict, (char_u *)"col");
-! if (nr > 0)
-! wp->w_wantcol = nr;
-
- wp->w_zindex = dict_get_number(dict, (char_u *)"zindex");
-
-***************
-*** 215,223 ****
-
- /*
- * popup_create({text}, {options})
- */
-! void
-! f_popup_create(typval_T *argvars, typval_T *rettv)
- {
- win_T *wp;
- buf_T *buf;
---- 270,280 ----
-
- /*
- * popup_create({text}, {options})
-+ * popup_atcursor({text}, {options})
-+ * When called from f_popup_atcursor() "atcursor" is TRUE.
- */
-! static void
-! popup_create(typval_T *argvars, typval_T *rettv, int atcursor)
- {
- win_T *wp;
- buf_T *buf;
-***************
-*** 309,315 ****
- curbuf = curwin->w_buffer;
-
- // Deal with options.
-! apply_options(wp, buf, argvars[1].vval.v_dict);
-
- // set default values
- if (wp->w_zindex == 0)
---- 366,372 ----
- curbuf = curwin->w_buffer;
-
- // Deal with options.
-! apply_options(wp, buf, argvars[1].vval.v_dict, atcursor);
-
- // set default values
- if (wp->w_zindex == 0)
-***************
-*** 323,328 ****
---- 380,403 ----
- }
-
- /*
-+ * popup_create({text}, {options})
-+ */
-+ void
-+ f_popup_create(typval_T *argvars, typval_T *rettv)
-+ {
-+ popup_create(argvars, rettv, FALSE);
-+ }
-+
-+ /*
-+ * popup_atcursor({text}, {options})
-+ */
-+ void
-+ f_popup_atcursor(typval_T *argvars, typval_T *rettv)
-+ {
-+ popup_create(argvars, rettv, TRUE);
-+ }
-+
-+ /*
- * Find the popup window with window-ID "id".
- * If the popup window does not exist NULL is returned.
- * If the window is not a popup window, and error message is given.
-*** ../vim-8.1.1427/src/proto/popupwin.pro 2019-05-30 14:29:42.597507636 +0200
---- src/proto/popupwin.pro 2019-05-30 19:05:00.148910615 +0200
-***************
-*** 1,15 ****
- /* popupwin.c */
-- void popup_adjust_position(win_T *wp);
-- void f_popup_create(typval_T *argvars, typval_T *rettv);
- int popup_any_visible(void);
- void f_popup_close(typval_T *argvars, typval_T *rettv);
- void f_popup_hide(typval_T *argvars, typval_T *rettv);
- void f_popup_show(typval_T *argvars, typval_T *rettv);
- void popup_close(int id);
- void popup_close_tabpage(tabpage_T *tp, int id);
-- void close_all_popups(void);
-- void ex_popupclear(exarg_T *eap);
-- void f_popup_move(typval_T *argvars, typval_T *rettv);
-- void f_popup_getoptions(typval_T *argvars, typval_T *rettv);
-- void f_popup_getposition(typval_T *argvars, typval_T *rettv);
- /* vim: set ft=c : */
---- 1,16 ----
- /* popupwin.c */
- int popup_any_visible(void);
-+ void close_all_popups(void);
-+ void ex_popupclear(exarg_T *eap);
-+ void f_popup_atcursor(typval_T *argvars, typval_T *rettv);
- void f_popup_close(typval_T *argvars, typval_T *rettv);
-+ void f_popup_create(typval_T *argvars, typval_T *rettv);
-+ void f_popup_getoptions(typval_T *argvars, typval_T *rettv);
-+ void f_popup_getposition(typval_T *argvars, typval_T *rettv);
- void f_popup_hide(typval_T *argvars, typval_T *rettv);
-+ void f_popup_move(typval_T *argvars, typval_T *rettv);
- void f_popup_show(typval_T *argvars, typval_T *rettv);
-+ void popup_adjust_position(win_T *wp);
- void popup_close(int id);
- void popup_close_tabpage(tabpage_T *tp, int id);
- /* vim: set ft=c : */
-*** ../vim-8.1.1427/src/testdir/test_popupwin.vim 2019-05-30 18:40:20.120405138 +0200
---- src/testdir/test_popupwin.vim 2019-05-30 19:21:59.304168903 +0200
-***************
-*** 335,337 ****
---- 335,386 ----
- call popup_close(winid)
- bwipe
- endfunc
-+
-+ func Test_popup_atcursor()
-+ topleft vnew
-+ call setline(1, [
-+ \ 'xxxxxxxxxxxxxxxxx',
-+ \ 'xxxxxxxxxxxxxxxxx',
-+ \ 'xxxxxxxxxxxxxxxxx',
-+ \])
-+
-+ call cursor(2, 2)
-+ redraw
-+ let winid = popup_atcursor('vim', {})
-+ redraw
-+ let line = join(map(range(1, 17), 'screenstring(1, v:val)'), '')
-+ call assert_equal('xvimxxxxxxxxxxxxx', line)
-+ call popup_close(winid)
-+
-+ call cursor(3, 4)
-+ redraw
-+ let winid = popup_atcursor('vim', {})
-+ redraw
-+ let line = join(map(range(1, 17), 'screenstring(2, v:val)'), '')
-+ call assert_equal('xxxvimxxxxxxxxxxx', line)
-+ call popup_close(winid)
-+
-+ call cursor(1, 1)
-+ redraw
-+ let winid = popup_create('vim', {
-+ \ 'line': 'cursor+2',
-+ \ 'col': 'cursor+1',
-+ \})
-+ redraw
-+ let line = join(map(range(1, 17), 'screenstring(3, v:val)'), '')
-+ call assert_equal('xvimxxxxxxxxxxxxx', line)
-+ call popup_close(winid)
-+
-+ call cursor(3, 3)
-+ redraw
-+ let winid = popup_create('vim', {
-+ \ 'line': 'cursor-2',
-+ \ 'col': 'cursor-1',
-+ \})
-+ redraw
-+ let line = join(map(range(1, 17), 'screenstring(1, v:val)'), '')
-+ call assert_equal('xvimxxxxxxxxxxxxx', line)
-+ call popup_close(winid)
-+
-+ bwipe!
-+ endfunc
-*** ../vim-8.1.1427/src/version.c 2019-05-30 19:03:19.653294536 +0200
---- src/version.c 2019-05-30 19:23:28.679718885 +0200
-***************
-*** 769,770 ****
---- 769,772 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 1428,
- /**/
-
---
-"I simultaneously try to keep my head in the clouds and my feet on the
-ground. Sometimes it's a stretch, though." -- Larry Wall
-
- /// 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 ///