summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.0760
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.0760')
-rw-r--r--data/vim/patches/8.1.0760295
1 files changed, 295 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.0760 b/data/vim/patches/8.1.0760
new file mode 100644
index 000000000..bce621bd2
--- /dev/null
+++ b/data/vim/patches/8.1.0760
@@ -0,0 +1,295 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.0760
+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.0760
+Problem: No proper test for using 'termencoding'.
+Solution: Add a screendump test. Fix using double width characters in a
+ screendump.
+Files: src/terminal.c, src/testdir/test_termencoding.vim,
+ src/testdir/Make_all.mak,
+ src/testdir/dumps/Test_tenc_euc_jp_01.dump
+
+
+*** ../vim-8.1.0759/src/terminal.c 2019-01-13 23:38:33.415773131 +0100
+--- src/terminal.c 2019-01-17 12:40:16.242975080 +0100
+***************
+*** 4031,4037 ****
+ if (cell.width == 2)
+ {
+ fputs("*", fd);
+- ++pos.col;
+ }
+ else
+ fputs("+", fd);
+--- 4031,4036 ----
+***************
+*** 4062,4067 ****
+--- 4061,4069 ----
+
+ prev_cell = cell;
+ }
++
++ if (cell.width == 2)
++ ++pos.col;
+ }
+ if (repeat > 0)
+ fprintf(fd, "@%d", repeat);
+***************
+*** 4103,4108 ****
+--- 4105,4111 ----
+ char_u *prev_char = NULL;
+ int attr = 0;
+ cellattr_T cell;
++ cellattr_T empty_cell;
+ term_T *term = curbuf->b_term;
+ int max_cells = 0;
+ int start_row = term->tl_scrollback.ga_len;
+***************
+*** 4110,4115 ****
+--- 4113,4119 ----
+ ga_init2(&ga_text, 1, 90);
+ ga_init2(&ga_cell, sizeof(cellattr_T), 90);
+ vim_memset(&cell, 0, sizeof(cell));
++ vim_memset(&empty_cell, 0, sizeof(empty_cell));
+ cursor_pos->row = -1;
+ cursor_pos->col = -1;
+
+***************
+*** 4208,4273 ****
+ c = fgetc(fd);
+ }
+ hl2vtermAttr(attr, &cell);
+- }
+- else
+- dump_is_corrupt(&ga_text);
+
+! /* is_bg == 0: fg, is_bg == 1: bg */
+! for (is_bg = 0; is_bg <= 1; ++is_bg)
+! {
+! if (c == '&')
+! {
+! /* use same color as previous cell */
+! c = fgetc(fd);
+! }
+! else if (c == '#')
+ {
+! int red, green, blue, index = 0;
+!
+! c = fgetc(fd);
+! red = hex2nr(c);
+! c = fgetc(fd);
+! red = (red << 4) + hex2nr(c);
+! c = fgetc(fd);
+! green = hex2nr(c);
+! c = fgetc(fd);
+! green = (green << 4) + hex2nr(c);
+! c = fgetc(fd);
+! blue = hex2nr(c);
+! c = fgetc(fd);
+! blue = (blue << 4) + hex2nr(c);
+! c = fgetc(fd);
+! if (!isdigit(c))
+! dump_is_corrupt(&ga_text);
+! while (isdigit(c))
+ {
+! index = index * 10 + (c - '0');
+ c = fgetc(fd);
+ }
+!
+! if (is_bg)
+ {
+! cell.bg.red = red;
+! cell.bg.green = green;
+! cell.bg.blue = blue;
+! cell.bg.ansi_index = index;
+ }
+ else
+! {
+! cell.fg.red = red;
+! cell.fg.green = green;
+! cell.fg.blue = blue;
+! cell.fg.ansi_index = index;
+! }
+ }
+- else
+- dump_is_corrupt(&ga_text);
+ }
+ }
+ else
+ dump_is_corrupt(&ga_text);
+
+ append_cell(&ga_cell, &cell);
+ }
+ else if (c == '@')
+ {
+--- 4212,4279 ----
+ c = fgetc(fd);
+ }
+ hl2vtermAttr(attr, &cell);
+
+! /* is_bg == 0: fg, is_bg == 1: bg */
+! for (is_bg = 0; is_bg <= 1; ++is_bg)
+ {
+! if (c == '&')
+ {
+! /* use same color as previous cell */
+ c = fgetc(fd);
+ }
+! else if (c == '#')
+ {
+! int red, green, blue, index = 0;
+!
+! c = fgetc(fd);
+! red = hex2nr(c);
+! c = fgetc(fd);
+! red = (red << 4) + hex2nr(c);
+! c = fgetc(fd);
+! green = hex2nr(c);
+! c = fgetc(fd);
+! green = (green << 4) + hex2nr(c);
+! c = fgetc(fd);
+! blue = hex2nr(c);
+! c = fgetc(fd);
+! blue = (blue << 4) + hex2nr(c);
+! c = fgetc(fd);
+! if (!isdigit(c))
+! dump_is_corrupt(&ga_text);
+! while (isdigit(c))
+! {
+! index = index * 10 + (c - '0');
+! c = fgetc(fd);
+! }
+!
+! if (is_bg)
+! {
+! cell.bg.red = red;
+! cell.bg.green = green;
+! cell.bg.blue = blue;
+! cell.bg.ansi_index = index;
+! }
+! else
+! {
+! cell.fg.red = red;
+! cell.fg.green = green;
+! cell.fg.blue = blue;
+! cell.fg.ansi_index = index;
+! }
+ }
+ else
+! dump_is_corrupt(&ga_text);
+ }
+ }
++ else
++ dump_is_corrupt(&ga_text);
+ }
+ else
+ dump_is_corrupt(&ga_text);
+
+ append_cell(&ga_cell, &cell);
++ if (cell.width == 2)
++ append_cell(&ga_cell, &empty_cell);
+ }
+ else if (c == '@')
+ {
+*** ../vim-8.1.0759/src/testdir/test_termencoding.vim 2019-01-17 13:01:52.930244770 +0100
+--- src/testdir/test_termencoding.vim 2019-01-17 12:51:57.314381030 +0100
+***************
+*** 0 ****
+--- 1,37 ----
++ " Test for setting 'encoding' to something else than the terminal uses, then
++ " setting 'termencoding' to make it work.
++
++ " This only works with "iconv".
++ if !has('multi_byte') || !has('iconv')
++ finish
++ endif
++
++ source screendump.vim
++ if !CanRunVimInTerminal()
++ finish
++ endif
++
++ " This Vim is running with 'encoding' "utf-8", the Vim in the terminal is
++ " running with 'encoding' "euc-jp". We need to make sure the text is in the
++ " right encoding, this is a bit tricky.
++ func Test_termencoding_euc_jp()
++ new
++ call setline(1, 'E89: バッファ %ld の変更は保存されていません (! で変更を破棄)')
++ write ++enc=euc-jp Xeuc_jp.txt
++ quit
++
++ call writefile([
++ \ 'set encoding=euc-jp',
++ \ 'set termencoding=utf-8',
++ \ 'scriptencoding utf-8',
++ \ 'exe "normal aE83: バッファを作成できないので、他のを使用します...\<Esc>"',
++ \ 'split Xeuc_jp.txt',
++ \ ], 'XTest_tenc_euc_jp')
++ let buf = RunVimInTerminal('-S XTest_tenc_euc_jp', {'rows': 10})
++ call VerifyScreenDump(buf, 'Test_tenc_euc_jp_01', {})
++
++ " clean up
++ call StopVimInTerminal(buf)
++ call delete('Xeuc_jp.txt')
++ call delete('XTest_tenc_euc_jp')
++ endfunc
+*** ../vim-8.1.0759/src/testdir/Make_all.mak 2019-01-12 22:47:01.264088074 +0100
+--- src/testdir/Make_all.mak 2019-01-17 11:26:20.836888223 +0100
+***************
+*** 243,248 ****
+--- 243,249 ----
+ test_tagjump \
+ test_taglist \
+ test_tcl \
++ test_termencoding \
+ test_terminal \
+ test_terminal_fail \
+ test_textformat \
+***************
+*** 389,394 ****
+--- 390,396 ----
+ test_system.res \
+ test_tab.res \
+ test_tcl.res \
++ test_termencoding.res \
+ test_terminal.res \
+ test_terminal_fail.res \
+ test_textformat.res \
+*** ../vim-8.1.0759/src/testdir/dumps/Test_tenc_euc_jp_01.dump 2019-01-17 13:01:52.934244738 +0100
+--- src/testdir/dumps/Test_tenc_euc_jp_01.dump 2019-01-17 12:52:08.898303149 +0100
+***************
+*** 0 ****
+--- 1,10 ----
++ >E+0&#ffffff0|8|9|:| |バ*&|ッ|フ|ァ| +&|%|l|d| |の*&|変|更|は|保|存|さ|れ|て|い|ま|せ|ん| +&|(|!| |で*&|変|更|を|破|棄|)+&| @13
++ |~+0#4040ff13&| @73
++ |~| @73
++ |~| @73
++ |X+3#0000000&|e|u|c|_|j|p|.|t|x|t| @45|1|,|1| @11|A|l@1
++ |E+0&&|8|3|:| |バ*&|ッ|フ|ァ|を|作|成|で|き|な|い|の|で|、|他|の|を|使|用|し|ま|す|.+&@2| @22
++ |~+0#4040ff13&| @73
++ |~| @73
++ |[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @43|1|,|5|2| @10|A|l@1
++ | +0&&@74
+*** ../vim-8.1.0759/src/version.c 2019-01-16 22:41:50.095917784 +0100
+--- src/version.c 2019-01-17 13:02:00.746184292 +0100
+***************
+*** 797,798 ****
+--- 797,800 ----
+ { /* Add new patch number below this line */
++ /**/
++ 760,
+ /**/
+
+--
+A computer without Windows is like a fish without a bicycle.
+
+ /// 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 ///