Patch 8.1.1655
Problem:    Popup window border drawn wrong with multi-byte char. (Marcin
            Szamotulski)
Solution:   Correct check in mb_fix_col(). (closes #4635)
Files:      src/mbyte.c, src/testdir/test_popupwin.vim,
            testdir/dumps/Test_popupwin_24.dump


*** ../vim-8.1.1654/src/mbyte.c 2019-07-07 19:16:54.286128604 +0200
--- src/mbyte.c 2019-07-08 23:25:07.455923144 +0200
***************
*** 4266,4279 ****
      int
  mb_fix_col(int col, int row)
  {
      col = check_col(col);
      row = check_row(row);
      if (has_mbyte && ScreenLines != NULL && col > 0
            && ((enc_dbcs
!                   && ScreenLines[LineOffset[row] + col] != NUL
                    && dbcs_screen_head_off(ScreenLines + LineOffset[row],
!                                        ScreenLines + LineOffset[row] + col))
!               || (enc_utf8 && ScreenLines[LineOffset[row] + col] == 0)))
        return col - 1;
      return col;
  }
--- 4266,4283 ----
      int
  mb_fix_col(int col, int row)
  {
+     int off;
+ 
      col = check_col(col);
      row = check_row(row);
+     off = LineOffset[row] + col;
      if (has_mbyte && ScreenLines != NULL && col > 0
            && ((enc_dbcs
!                   && ScreenLines[off] != NUL
                    && dbcs_screen_head_off(ScreenLines + LineOffset[row],
!                                        ScreenLines + off))
!               || (enc_utf8 && ScreenLines[off] == 0
!                                                 && ScreenLinesUC[off] == 0)))
        return col - 1;
      return col;
  }
*** ../vim-8.1.1654/src/testdir/test_popupwin.vim       2019-07-07 
18:27:52.365277132 +0200
--- src/testdir/test_popupwin.vim       2019-07-08 23:22:58.424531721 +0200
***************
*** 113,118 ****
--- 113,121 ----
        call popup_create(['hello border', 'with corners'], {'line': 2, 'col': 
60, 'border': [], 'borderhighlight': ['BlueColor'], 'borderchars': ['x', '#']})
        let winid = popup_create(['hello border', 'with numbers'], {'line': 6, 
'col': 3, 'border': [], 'borderhighlight': ['BlueColor'], 'borderchars': ['0', 
'1', '2', '3', '4', '5', '6', '7']})
        call popup_create(['hello border', 'just blanks'], {'line': 7, 'col': 
23, 'border': [], 'borderhighlight': ['BlueColor'], 'borderchars': [' ']})
+       func MultiByte()
+         call popup_create(['hello'], {'line': 8, 'col': 43, 'border': [], 
'borderchars': ['─', '│', '─', '│', '┌', '┐', '┘', '└']})
+       endfunc
    END
    call writefile(lines, 'XtestPopupBorder')
    let buf = RunVimInTerminal('-S XtestPopupBorder', {'rows': 12})
***************
*** 122,127 ****
--- 125,136 ----
    call term_sendkeys(buf, ":call popup_setoptions(winid, {'borderchars': 
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']})\<CR>")
    call VerifyScreenDump(buf, 'Test_popupwin_23', {})
  
+   " check multi-byte border only with 'ambiwidth' single
+   if &ambiwidth == 'single'
+     call term_sendkeys(buf, ":call MultiByte()\<CR>")
+     call VerifyScreenDump(buf, 'Test_popupwin_24', {})
+   endif
+ 
    call StopVimInTerminal(buf)
    call delete('XtestPopupBorder')
  
*** ../vim-8.1.1654/src/testdir/dumps/Test_popupwin_24.dump     2019-07-08 
23:29:46.870662886 +0200
--- src/testdir/dumps/Test_popupwin_24.dump     2019-07-08 23:23:10.648473967 
+0200
***************
*** 0 ****
--- 1,12 ----
+ >1+0&#ffffff0| @73
+ |2| |╔+0&#5fd7ff255|═@11|╗| +0&#ffffff0@5|╔+0&#dadada255|═@11|╗+0&#8a8a8a255| 
+0&#ffffff0@5|x+0&#5fd7ff255@13| +0&#ffffff0@2|#+0&#5fd7ff255|x@11|#| 
+0&#ffffff0@1
+ |3| |║+0&#5fd7ff255|h+0#0000001#ffd7ff255|e|l@1|o| 
|b|o|r|d|e|r|║+0#0000000#5fd7ff255| 
+0&#ffffff0@5|║+0&#a8a8a8255|h+0#0000001#ffd7ff255|e|l@1|o| 
|b|o|r|d|e|r|║+0#0000000#8a8a8a255| 
+0&#ffffff0@5|x+0&#5fd7ff255|h+0#0000001#ffd7ff255|e|l@1|o| 
|b|o|r|d|e|r|x+0#0000000#5fd7ff255| 
+0&#ffffff0@2|x+0&#5fd7ff255|h+0#0000001#ffd7ff255|e|l@1|o| 
|b|o|r|d|e|r|x+0#0000000#5fd7ff255| +0&#ffffff0@1
+ |4| |╚+0&#5fd7ff255|═@11|╝| 
+0&#ffffff0@5|║+0&#a8a8a8255|a+0#0000001#ffd7ff255|n|d| |m|o|r|e| 
@3|║+0#0000000#8a8a8a255| 
+0&#ffffff0@5|x+0&#5fd7ff255|l+0#0000001#ffd7ff255|i|n|e|s| |o|n|l|y| 
@1|x+0#0000000#5fd7ff255| 
+0&#ffffff0@2|x+0&#5fd7ff255|w+0#0000001#ffd7ff255|i|t|h| 
|c|o|r|n|e|r|s|x+0#0000000#5fd7ff255| +0&#ffffff0@1
+ |5| @20|╚+0&#585858255|═@11|╝| +0&#ffffff0@5|x+0&#5fd7ff255@13| 
+0&#ffffff0@2|#+0&#5fd7ff255|x@11|#| +0&#ffffff0@1
+ |6| |e+0&#5fd7ff255|a@11|f| +0&#ffffff0@58
+ |7| |d+0&#5fd7ff255|h+0#0000001#ffd7ff255|e|l@1|o| 
|b|o|r|d|e|r|b+0#0000000#5fd7ff255| +0&#ffffff0@5| +0&#5fd7ff255@13| 
+0&#ffffff0@38
+ |8| |d+0&#5fd7ff255|w+0#0000001#ffd7ff255|i|t|h| 
|n|u|m|b|e|r|s|b+0#0000000#5fd7ff255| +0&#ffffff0@5| 
+0&#5fd7ff255|h+0#0000001#ffd7ff255|e|l@1|o| |b|o|r|d|e|r| 
+0#0000000#5fd7ff255| +0&#ffffff0@5|┌+0#0000001#ffd7ff255|─@4|┐| 
+0#0000000#ffffff0@25
+ |9| |h+0&#5fd7ff255|c@11|g| +0&#ffffff0@5| 
+0&#5fd7ff255|j+0#0000001#ffd7ff255|u|s|t| |b|l|a|n|k|s| | 
+0#0000000#5fd7ff255| +0&#ffffff0@5|│+0#0000001#ffd7ff255|h|e|l@1|o|│| 
+0#0000000#ffffff0@25
+ |1|0| @19| +0&#5fd7ff255@13| +0&#ffffff0@5|└+0#0000001#ffd7ff255|─@4|┘| 
+0#0000000#ffffff0@25
+ |1@1| @72
+ |:|c|a|l@1| |M|u|l|t|i|B|y|t|e|(|)| @39|1|,|1| @10|T|o|p| 
*** ../vim-8.1.1654/src/version.c       2019-07-08 22:23:30.574768870 +0200
--- src/version.c       2019-07-08 23:28:52.974863706 +0200
***************
*** 779,780 ****
--- 779,782 ----
  {   /* Add new patch number below this line */
+ /**/
+     1655,
  /**/

-- 
Windows
M!uqoms

 /// Bram Moolenaar -- [email protected] -- 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    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/201907082130.x68LUcvO003007%40masaka.moolenaar.net.
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui