Patch 8.1.1617

10 views
Skip to first unread message

Bram Moolenaar

unread,
Jul 2, 2019, 5:14:16 PM7/2/19
to vim...@googlegroups.com

Patch 8.1.1617
Problem: No test for popup window with mask and position fixed.
Solution: Add a couple of screenshots. Fix deteced problems.
Files: src/popupwin.c, src/structs.h, src/testdir/test_popupwin.vim,
src/testdir/dumps/Test_popupwin_mask_1.dump,
src/testdir/dumps/Test_popupwin_mask_2.dump,
src/testdir/dumps/Test_popupwin_mask_3.dump,
src/testdir/dumps/Test_popupwin_mask_4.dump


*** ../vim-8.1.1616/src/popupwin.c 2019-07-01 22:20:57.200052881 +0200
--- src/popupwin.c 2019-07-02 23:12:45.060607518 +0200
***************
*** 700,738 ****
}

/*
* Return the height of popup window "wp", including border and padding.
*/
int
popup_height(win_T *wp)
{
return wp->w_height
! + wp->w_popup_padding[0] + wp->w_popup_border[0]
+ wp->w_popup_padding[2] + wp->w_popup_border[2];
}

/*
! * Return the width of popup window "wp", including border and padding.
*/
int
popup_width(win_T *wp)
{
! return wp->w_width
+ wp->w_popup_padding[3] + wp->w_popup_border[3]
+ wp->w_popup_padding[1] + wp->w_popup_border[1]
! + wp->w_has_scrollbar;
! }
!
! /*
! * Get the padding plus border at the top, adjusted to 1 if there is a title.
! */
! static int
! popup_top_extra(win_T *wp)
! {
! int extra = wp->w_popup_border[0] + wp->w_popup_padding[0];
!
! if (extra == 0 && wp->w_popup_title != NULL && *wp->w_popup_title != NUL)
! return 1;
! return extra;
}

/*
--- 700,740 ----
}

/*
+ * Get the padding plus border at the top, adjusted to 1 if there is a title.
+ */
+ static int
+ popup_top_extra(win_T *wp)
+ {
+ int extra = wp->w_popup_border[0] + wp->w_popup_padding[0];
+
+ if (extra == 0 && wp->w_popup_title != NULL && *wp->w_popup_title != NUL)
+ return 1;
+ return extra;
+ }
+
+ /*
* Return the height of popup window "wp", including border and padding.
*/
int
popup_height(win_T *wp)
{
return wp->w_height
! + popup_top_extra(wp)
+ wp->w_popup_padding[2] + wp->w_popup_border[2];
}

/*
! * Return the width of popup window "wp", including border, padding and
! * scrollbar.
*/
int
popup_width(win_T *wp)
{
! return wp->w_width + wp->w_leftcol
+ wp->w_popup_padding[3] + wp->w_popup_border[3]
+ wp->w_popup_padding[1] + wp->w_popup_border[1]
! + wp->w_has_scrollbar
! + wp->w_popup_rightoff;
}

/*
***************
*** 744,749 ****
--- 746,752 ----
linenr_T lnum;
int wrapped = 0;
int maxwidth;
+ int maxspace;
int center_vert = FALSE;
int center_hor = FALSE;
int allow_adjust_left = !wp->w_popup_fixed;
***************
*** 758,768 ****
--- 761,774 ----
int org_width = wp->w_width;
int org_height = wp->w_height;
int org_leftcol = wp->w_leftcol;
+ int org_leftoff = wp->w_popup_leftoff;
int minwidth;

wp->w_winrow = 0;
wp->w_wincol = 0;
wp->w_leftcol = 0;
+ wp->w_popup_leftoff = 0;
+ wp->w_popup_rightoff = 0;
if (wp->w_popup_pos == POPPOS_CENTER)
{
// center after computing the size
***************
*** 795,801 ****
// When centering or right aligned, use maximum width.
// When left aligned use the space available, but shift to the left when we
// hit the right of the screen.
! maxwidth = Columns - wp->w_wincol - left_extra;
if (wp->w_maxwidth > 0 && maxwidth > wp->w_maxwidth)
{
allow_adjust_left = FALSE;
--- 801,808 ----
// When centering or right aligned, use maximum width.
// When left aligned use the space available, but shift to the left when we
// hit the right of the screen.
! maxspace = Columns - wp->w_wincol - left_extra;
! maxwidth = maxspace;
if (wp->w_maxwidth > 0 && maxwidth > wp->w_maxwidth)
{
allow_adjust_left = FALSE;
***************
*** 868,874 ****
--- 875,886 ----
if (minwidth > 0 && wp->w_width < minwidth)
wp->w_width = minwidth;
if (wp->w_width > maxwidth)
+ {
+ if (wp->w_width > maxspace)
+ // some columns cut off on the right
+ wp->w_popup_rightoff = wp->w_width - maxspace;
wp->w_width = maxwidth;
+ }
if (center_hor)
{
wp->w_wincol = (Columns - wp->w_width - extra_width) / 2;
***************
*** 887,895 ****
else if (wp->w_popup_fixed)
{
// "col" specifies the right edge, but popup doesn't fit, skip some
! // columns when displaying the window.
! wp->w_leftcol = -leftoff;
! wp->w_width += leftoff;
if (wp->w_width < 0)
wp->w_width = 0;
}
--- 899,910 ----
else if (wp->w_popup_fixed)
{
// "col" specifies the right edge, but popup doesn't fit, skip some
! // columns when displaying the window, minus left border and
! // padding.
! if (-leftoff > left_extra)
! wp->w_leftcol = -leftoff - left_extra;
! wp->w_width -= wp->w_leftcol;
! wp->w_popup_leftoff = -leftoff;
if (wp->w_width < 0)
wp->w_width = 0;
}
***************
*** 928,933 ****
--- 943,949 ----
if (org_winrow != wp->w_winrow
|| org_wincol != wp->w_wincol
|| org_leftcol != wp->w_leftcol
+ || org_leftoff != wp->w_popup_leftoff
|| org_width != wp->w_width
|| org_height != wp->w_height)
{
***************
*** 2066,2072 ****
static int
popup_masked(win_T *wp, int screencol, int screenline)
{
! int col = screencol - wp->w_wincol + 1 + wp->w_leftcol;
int line = screenline - wp->w_winrow + 1;
listitem_T *lio, *li;
int width, height;
--- 2082,2088 ----
static int
popup_masked(win_T *wp, int screencol, int screenline)
{
! int col = screencol - wp->w_wincol + 1 + wp->w_popup_leftoff;
int line = screenline - wp->w_winrow + 1;
listitem_T *lio, *li;
int width, height;
***************
*** 2145,2154 ****
linee = height + linee + 1;

--cols;
! cols -= wp->w_leftcol;
if (cols < 0)
cols = 0;
! cole -= wp->w_leftcol;
--lines;
if (lines < 0)
lines = 0;
--- 2161,2170 ----
linee = height + linee + 1;

--cols;
! cols -= wp->w_popup_leftoff;
if (cols < 0)
cols = 0;
! cole -= wp->w_popup_leftoff;
--lines;
if (lines < 0)
lines = 0;
***************
*** 2215,2222 ****
popup_reset_handled();
while ((wp = find_next_popup(TRUE)) != NULL)
{
! int height = popup_height(wp);
! int width = popup_width(wp);

popup_visible = TRUE;

--- 2231,2238 ----
popup_reset_handled();
while ((wp = find_next_popup(TRUE)) != NULL)
{
! int height;
! int width;

popup_visible = TRUE;

***************
*** 2225,2230 ****
--- 2241,2248 ----
|| wp->w_popup_last_changedtick != CHANGEDTICK(wp->w_buffer))
popup_adjust_position(wp);

+ height = popup_height(wp);
+ width = popup_width(wp) - wp->w_popup_leftoff;
for (line = wp->w_winrow;
line < wp->w_winrow + height && line < screen_Rows; ++line)
for (col = wp->w_wincol;
***************
*** 2310,2316 ****
{
win_T *wp;
int top_off;
! int left_off;
int total_width;
int total_height;
int top_padding;
--- 2328,2334 ----
{
win_T *wp;
int top_off;
! int left_extra;
int total_width;
int total_height;
int top_padding;
***************
*** 2319,2324 ****
--- 2337,2344 ----
int border_char[8];
char_u buf[MB_MAXBYTES];
int row;
+ int padcol = 0;
+ int padwidth = 0;
int i;
int sb_thumb_top = 0;
int sb_thumb_height = 0;
***************
*** 2342,2363 ****
// adjust w_winrow and w_wincol for border and padding, since
// win_update() doesn't handle them.
top_off = popup_top_extra(wp);
! left_off = wp->w_popup_padding[3] + wp->w_popup_border[3];
wp->w_winrow += top_off;
! wp->w_wincol += left_off;

// Draw the popup text, unless it's off screen.
if (wp->w_winrow < screen_Rows && wp->w_wincol < screen_Columns)
win_update(wp);

wp->w_winrow -= top_off;
! wp->w_wincol -= left_off;

! total_width = wp->w_popup_border[3] + wp->w_popup_padding[3]
! + wp->w_width + wp->w_popup_padding[1] + wp->w_popup_border[1]
! + wp->w_has_scrollbar;
! total_height = popup_top_extra(wp)
! + wp->w_height + wp->w_popup_padding[2] + wp->w_popup_border[2];
popup_attr = get_wcr_attr(wp);

// We can only use these line drawing characters when 'encoding' is
--- 2362,2383 ----
// adjust w_winrow and w_wincol for border and padding, since
// win_update() doesn't handle them.
top_off = popup_top_extra(wp);
! left_extra = wp->w_popup_padding[3] + wp->w_popup_border[3]
! - wp->w_popup_leftoff;
! if (wp->w_wincol + left_extra < 0)
! left_extra = -wp->w_wincol;
wp->w_winrow += top_off;
! wp->w_wincol += left_extra;

// Draw the popup text, unless it's off screen.
if (wp->w_winrow < screen_Rows && wp->w_wincol < screen_Columns)
win_update(wp);

wp->w_winrow -= top_off;
! wp->w_wincol -= left_extra;

! total_width = popup_width(wp);
! total_height = popup_height(wp);
popup_attr = get_wcr_attr(wp);

// We can only use these line drawing characters when 'encoding' is
***************
*** 2409,2422 ****
else if (wp->w_popup_padding[0] == 0 && popup_top_extra(wp) > 0)
top_padding = 1;

if (top_padding > 0)
{
// top padding
row = wp->w_winrow + wp->w_popup_border[0];
! screen_fill(row, row + top_padding,
! wp->w_wincol + wp->w_popup_border[3],
! wp->w_wincol + total_width - wp->w_popup_border[1]
! - wp->w_has_scrollbar,
' ', ' ', popup_attr);
}

--- 2429,2450 ----
else if (wp->w_popup_padding[0] == 0 && popup_top_extra(wp) > 0)
top_padding = 1;

+ if (top_padding > 0 || wp->w_popup_padding[2] > 0)
+ {
+ padcol = wp->w_wincol - wp->w_popup_leftoff + wp->w_popup_border[3];
+ padwidth = wp->w_wincol + total_width - wp->w_popup_border[1]
+ - wp->w_has_scrollbar;
+ if (padcol < 0)
+ {
+ padwidth += padcol;
+ padcol = 0;
+ }
+ }
if (top_padding > 0)
{
// top padding
row = wp->w_winrow + wp->w_popup_border[0];
! screen_fill(row, row + top_padding, padcol, padwidth,
' ', ' ', popup_attr);
}

***************
*** 2450,2467 ****
for (i = wp->w_popup_border[0];
i < total_height - wp->w_popup_border[2]; ++i)
{
row = wp->w_winrow + i;

// left border
! if (wp->w_popup_border[3] > 0)
{
buf[mb_char2bytes(border_char[3], buf)] = NUL;
! screen_puts(buf, row, wp->w_wincol, border_attr[3]);
}
- // left padding
- if (wp->w_popup_padding[3] > 0)
- screen_puts(get_spaces(wp->w_popup_padding[3]), row,
- wp->w_wincol + wp->w_popup_border[3], popup_attr);
// scrollbar
if (wp->w_has_scrollbar)
{
--- 2478,2512 ----
for (i = wp->w_popup_border[0];
i < total_height - wp->w_popup_border[2]; ++i)
{
+ int pad_left;
+ int col = wp->w_wincol - wp->w_popup_leftoff;
+ // left and right padding only needed next to the body
+ int do_padding =
+ i >= wp->w_popup_border[0] + wp->w_popup_padding[0]
+ && i < total_height - wp->w_popup_border[2]
+ - wp->w_popup_padding[2];
+
row = wp->w_winrow + i;

// left border
! if (wp->w_popup_border[3] > 0 && col >= 0)
{
buf[mb_char2bytes(border_char[3], buf)] = NUL;
! screen_puts(buf, row, col, border_attr[3]);
! }
! if (do_padding && wp->w_popup_padding[3] > 0)
! {
! // left padding
! col += wp->w_popup_border[3];
! pad_left = wp->w_popup_padding[3];
! if (col < 0)
! {
! pad_left += col;
! col = 0;
! }
! if (pad_left > 0)
! screen_puts(get_spaces(pad_left), row, col, popup_attr);
}
// scrollbar
if (wp->w_has_scrollbar)
{
***************
*** 2485,2494 ****
wp->w_wincol + total_width - 1, border_attr[1]);
}
// right padding
! if (wp->w_popup_padding[1] > 0)
screen_puts(get_spaces(wp->w_popup_padding[1]), row,
! wp->w_wincol + wp->w_popup_border[3]
! + wp->w_popup_padding[3] + wp->w_width, popup_attr);
}

if (wp->w_popup_padding[2] > 0)
--- 2530,2541 ----
wp->w_wincol + total_width - 1, border_attr[1]);
}
// right padding
! if (do_padding && wp->w_popup_padding[1] > 0)
screen_puts(get_spaces(wp->w_popup_padding[1]), row,
! wp->w_wincol - wp->w_popup_leftoff
! + wp->w_popup_border[3]
! + wp->w_popup_padding[3] + wp->w_width + wp->w_leftcol,
! popup_attr);
}

if (wp->w_popup_padding[2] > 0)
***************
*** 2497,2505 ****
row = wp->w_winrow + wp->w_popup_border[0]
+ wp->w_popup_padding[0] + wp->w_height;
screen_fill(row, row + wp->w_popup_padding[2],
! wp->w_wincol + wp->w_popup_border[3],
! wp->w_wincol + total_width - wp->w_popup_border[1],
! ' ', ' ', popup_attr);
}

if (wp->w_popup_border[2] > 0)
--- 2544,2550 ----
row = wp->w_winrow + wp->w_popup_border[0]
+ wp->w_popup_padding[0] + wp->w_height;
screen_fill(row, row + wp->w_popup_padding[2],
! padcol, padwidth, ' ', ' ', popup_attr);
}

if (wp->w_popup_border[2] > 0)
*** ../vim-8.1.1616/src/structs.h 2019-06-30 18:04:53.793559360 +0200
--- src/structs.h 2019-07-02 22:48:26.996682488 +0200
***************
*** 2916,2921 ****
--- 2916,2924 ----
int w_popup_border[4]; // popup border top/right/bot/left
char_u *w_border_highlight[4]; // popup border highlight
int w_border_char[8]; // popup border characters
+
+ int w_popup_leftoff; // columns left of the screen
+ int w_popup_rightoff; // columns right of the screen
varnumber_T w_popup_last_changedtick; // b:changedtick when position was
// computed
callback_T w_close_cb; // popup close callback
***************
*** 2927,2934 ****
colnr_T w_popup_maxcol; // close popup if cursor after this col
int w_popup_drag; // allow moving the popup with the mouse
popclose_T w_popup_close; // allow closing the popup with the mouse
- list_T *w_popup_mask; // list of lists for "mask"

# if defined(FEAT_TIMERS)
timer_T *w_popup_timer; // timer for closing popup window
# endif
--- 2930,2937 ----
colnr_T w_popup_maxcol; // close popup if cursor after this col
int w_popup_drag; // allow moving the popup with the mouse
popclose_T w_popup_close; // allow closing the popup with the mouse

+ list_T *w_popup_mask; // list of lists for "mask"
# if defined(FEAT_TIMERS)
timer_T *w_popup_timer; // timer for closing popup window
# endif
*** ../vim-8.1.1616/src/testdir/test_popupwin.vim 2019-07-01 22:20:57.200052881 +0200
--- src/testdir/test_popupwin.vim 2019-07-01 23:35:55.914053399 +0200
***************
*** 427,433 ****
throw 'Skipped: cannot make screendumps'
endif
let lines =<< trim END
! call setline(1, repeat([join(range(1, 40), '')], 10))
hi PopupColor ctermbg=lightgrey
let winid = popup_create([
\ 'some text',
--- 427,433 ----
throw 'Skipped: cannot make screendumps'
endif
let lines =<< trim END
! call setline(1, repeat([join(range(1, 42), '')], 10))
hi PopupColor ctermbg=lightgrey
let winid = popup_create([
\ 'some text',
***************
*** 435,440 ****
--- 435,442 ----
\], {
\ 'line': 2,
\ 'col': 10,
+ \ 'wrap': 0,
+ \ 'fixed': 1,
\ 'zindex': 90,
\ 'padding': [],
\ 'highlight': 'PopupColor',
***************
*** 454,459 ****
--- 456,467 ----
call term_sendkeys(buf, ":call popup_move(winid, {'col': 11, 'line': 3})\<CR>")
call VerifyScreenDump(buf, 'Test_popupwin_mask_2', {})

+ call term_sendkeys(buf, ":call popup_move(winid, {'col': 65, 'line': 3})\<CR>")
+ call VerifyScreenDump(buf, 'Test_popupwin_mask_3', {})
+
+ call term_sendkeys(buf, ":call popup_move(winid, {'pos': 'topright', 'col': 12, 'line': 3})\<CR>")
+ call VerifyScreenDump(buf, 'Test_popupwin_mask_4', {})
+
" clean up
call StopVimInTerminal(buf)
call delete('XtestPopupMask')
*** ../vim-8.1.1616/src/testdir/dumps/Test_popupwin_mask_1.dump 2019-06-23 00:15:02.581534910 +0200
--- src/testdir/dumps/Test_popupwin_mask_1.dump 2019-07-01 23:36:11.125955248 +0200
***************
*** 1,10 ****
! >1+0&#ffffff0|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0| @3
! |1|2|3|4|5|6|7|8|9|1| +0&#e0e0e08@12|1+0&#ffffff0|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0| @3
! |1|2|3|4|5|6|7|8|9| +0&#e0e0e08|s|o|m|e| |1+0&#ffffff0|3|x+0#0000001#ffd7ff255|t+0#0000000#e0e0e08| @3|x+0#0000001#ffd7ff255@2|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0| @3
! |1|2|3|4|5|6|7|8|9| +0&#e0e0e08|0+0&#ffffff0|1@1|t+0&#e0e0e08|h|1+0&#ffffff0|3|y+0#0000001#ffd7ff255|l+0#0000000#e0e0e08|i|n|e| |y+0#0000001#ffd7ff255@2|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0| @3
! |1|2|3|4|5|6|7|8|9| +0&#e0e0e08@8|4+0&#ffffff0|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0| @3
! |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0| @3
! |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0| @3
! |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0| @3
! |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0| @3
! @57|1|,|1| @10|T|o|p|
--- 1,10 ----
! >1+0&#ffffff0|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
! |1|2|3|4|5|6|7|8|9|1| +0&#e0e0e08@12|1+0&#ffffff0|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
! |1|2|3|4|5|6|7|8|9| +0&#e0e0e08|s|o|m|e| |1+0&#ffffff0|3|x+0#0000001#ffd7ff255|t+0#0000000#e0e0e08| @3|x+0#0000001#ffd7ff255@2|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
! |1|2|3|4|5|6|7|8|9| +0&#e0e0e08|0+0&#ffffff0|1@1|t+0&#e0e0e08|h|1+0&#ffffff0|3|y+0#0000001#ffd7ff255|l+0#0000000#e0e0e08|i|n|e| |y+0#0000001#ffd7ff255@2|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
! |1|2|3|4|5|6|7|8|9| +0&#e0e0e08@8|4+0&#ffffff0|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
! |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
! |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
! |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
! |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
! | @56|1|,|1| @10|T|o|p|
*** ../vim-8.1.1616/src/testdir/dumps/Test_popupwin_mask_2.dump 2019-06-23 00:15:02.581534910 +0200
--- src/testdir/dumps/Test_popupwin_mask_2.dump 2019-07-01 23:36:12.181948435 +0200
***************
*** 1,10 ****
! >1+0&#ffffff0|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0| @3
! |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0| @3
! |1|2|3|4|5|6|7|8|9|1|0| +0&#e0e0e08@12|x+0#0000001#ffd7ff255@1|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0| @3
! |1|2|3|4|5|6|7|8|9|1| +0&#e0e0e08|s|o|m|e| |3+0&#ffffff0|y+0#0000001#ffd7ff255@1|t+0#0000000#e0e0e08| @3|y+0#0000001#ffd7ff255@1|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0| @3
! |1|2|3|4|5|6|7|8|9|1| +0&#e0e0e08|1+0&#ffffff0@2|t+0&#e0e0e08|h|3+0&#ffffff0|1|4|l+0&#e0e0e08|i|n|e| |7+0&#ffffff0|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0| @3
! |1|2|3|4|5|6|7|8|9|1| +0&#e0e0e08@8|1+0&#ffffff0|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0| @3
! |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0| @3
! |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0| @3
! |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0| @3
|:|c|a|l@1| |p|o|p|u|p|_|m|o|v|e|(|w|i|n|i|d|,| |{|'|c|o|l|'|:| |1@1|,| |'|l|i|n|e|'|:| |3|}|)| @9|1|,|1| @10|T|o|p|
--- 1,10 ----
! >1+0&#ffffff0|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
! |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
! |1|2|3|4|5|6|7|8|9|1|0| +0&#e0e0e08@12|x+0#0000001#ffd7ff255@1|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
! |1|2|3|4|5|6|7|8|9|1| +0&#e0e0e08|s|o|m|e| |3+0&#ffffff0|y+0#0000001#ffd7ff255@1|t+0#0000000#e0e0e08| @3|y+0#0000001#ffd7ff255@1|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
! |1|2|3|4|5|6|7|8|9|1| +0&#e0e0e08|1+0&#ffffff0@2|t+0&#e0e0e08|h|3+0&#ffffff0|1|4|l+0&#e0e0e08|i|n|e| |7+0&#ffffff0|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
! |1|2|3|4|5|6|7|8|9|1| +0&#e0e0e08@8|1+0&#ffffff0|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
! |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
! |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
! |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
|:|c|a|l@1| |p|o|p|u|p|_|m|o|v|e|(|w|i|n|i|d|,| |{|'|c|o|l|'|:| |1@1|,| |'|l|i|n|e|'|:| |3|}|)| @9|1|,|1| @10|T|o|p|
*** ../vim-8.1.1616/src/testdir/dumps/Test_popupwin_mask_3.dump 2019-07-02 23:10:21.677353470 +0200
--- src/testdir/dumps/Test_popupwin_mask_3.dump 2019-07-02 22:57:46.357898542 +0200
***************
*** 0 ****
--- 1,10 ----
+ >1+0&#ffffff0|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
+ |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
+ |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|x+0#0000001#ffd7ff255@8|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7| +0&#e0e0e08@9
+ |1+0&#ffffff0|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|y+0#0000001#ffd7ff255@8|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3| +0&#e0e0e08|s|o|m|e| |0+0&#ffffff0|4|1|t+0&#e0e0e08|
+ |1+0&#ffffff0|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3| +0&#e0e0e08|3+0&#ffffff0|8|3|t+0&#e0e0e08|h|0+0&#ffffff0|4|1|l+0&#e0e0e08|i
+ |1+0&#ffffff0|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3| +0&#e0e0e08@8|4+0&#ffffff0|2
+ |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
+ |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
+ |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
+ |:|c|a|l@1| |p|o|p|u|p|_|m|o|v|e|(|w|i|n|i|d|,| |{|'|c|o|l|'|:| |6|5|,| |'|l|i|n|e|'|:| |3|}|)| @9|1|,|1| @10|T|o|p|
*** ../vim-8.1.1616/src/testdir/dumps/Test_popupwin_mask_4.dump 2019-07-02 23:10:21.681353449 +0200
--- src/testdir/dumps/Test_popupwin_mask_4.dump 2019-07-02 22:35:29.872773312 +0200
***************
*** 0 ****
--- 1,10 ----
+ >1+0&#ffffff0|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
+ |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
+ | +0&#e0e0e08@11|1+0&#ffffff0@1|2|1|3|x+0#0000001#ffd7ff255@8|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
+ |o+0&#e0e0e08|m|e| |5+0&#ffffff0|6|7|t+0&#e0e0e08| @3|1+0&#ffffff0@1|2|1|3|y+0#0000001#ffd7ff255@8|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
+ |1|2|t+0&#e0e0e08|h|5+0&#ffffff0|6|7|l+0&#e0e0e08|i|n|e| |1+0&#ffffff0@1|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
+ | +0&#e0e0e08@6|8+0&#ffffff0|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
+ |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
+ |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
+ |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2
+ |:|c|a|l@1| |p|o|p|u|p|_|m|o|v|e|(|w|i|n|i|d|,| |{|'|p|o|s|'|:| |'|t|o|p|r|i|g|h|t|'|,| |'|c|o|l|'|:| |1|2|,| |'|l|1|,|1| @10|T|o|p|
*** ../vim-8.1.1616/src/version.c 2019-07-01 22:28:17.025168434 +0200
--- src/version.c 2019-07-02 23:09:54.281498460 +0200
***************
*** 779,780 ****
--- 779,782 ----
{ /* Add new patch number below this line */
+ /**/
+ 1617,
/**/

--
"Never be afraid to tell the world who you are."
-- Anonymous

/// Bram Moolenaar -- Br...@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 ///
Reply all
Reply to author
Forward
0 new messages