To: vim_dev@googlegroups.com Subject: Patch 8.2.0778 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.0778 Problem: Libvterm code lags behind the upstream version. Solution: Include revisions 720 - 723. Files: src/libvterm/t/10state_putglyph.test, src/libvterm/Makefile, src/libvterm/t/run-test.pl, src/libvterm/src/state.c, src/libvterm/t/92lp1805050.test *** ../vim-8.2.0777/src/libvterm/t/10state_putglyph.test 2018-03-25 14:54:41.000000000 +0200 --- src/libvterm/t/10state_putglyph.test 2020-05-17 15:50:36.583242095 +0200 *************** *** 30,35 **** --- 30,42 ---- putglyph 0xff10 2 0,0 putglyph 0x20 1 0,2 + !UTF-8 emoji wide char + # U+1F600 = 0xF0 0x9F 0x98 0x80 name: GRINNING FACE + RESET + PUSH "\xF0\x9F\x98\x80 " + putglyph 0x1f600 2 0,0 + putglyph 0x20 1 0,2 + !UTF-8 combining chars # U+0301 = 0xCC 0x81 name: COMBINING ACUTE RESET *** ../vim-8.2.0777/src/libvterm/Makefile 2020-05-17 14:59:24.063410405 +0200 --- src/libvterm/Makefile 2020-05-17 15:52:35.958886721 +0200 *************** *** 118,124 **** mkdir __distdir cp LICENSE __distdir mkdir __distdir/src ! cp src/*.c src/*.h __distdir/src mkdir __distdir/src/encoding cp src/encoding/*.inc __distdir/src/encoding mkdir __distdir/include --- 118,124 ---- mkdir __distdir cp LICENSE __distdir mkdir __distdir/src ! cp src/*.c src/*.h src/*.inc __distdir/src mkdir __distdir/src/encoding cp src/encoding/*.inc __distdir/src/encoding mkdir __distdir/include *** ../vim-8.2.0777/src/libvterm/t/run-test.pl 2019-08-18 20:58:44.000000000 +0200 --- src/libvterm/t/run-test.pl 2020-05-17 15:54:04.146624080 +0200 *************** *** 8,21 **** use POSIX qw( WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG ); my $VALGRIND = 0; GetOptions( 'valgrind|v+' => \$VALGRIND, ) or exit 1; my ( $hin, $hout, $hpid ); { local $ENV{LD_LIBRARY_PATH} = ".libs"; ! my @command = "t/.libs/harness"; unshift @command, "valgrind", "--tool=memcheck", "--leak-check=yes", "--num-callers=25", "--log-file=valgrind.out", "--error-exitcode=126" if $VALGRIND; $hpid = open2 $hout, $hin, @command or die "Cannot open2 harness - $!"; --- 8,23 ---- use POSIX qw( WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG ); my $VALGRIND = 0; + my $EXECUTABLE = "t/.libs/harness"; GetOptions( 'valgrind|v+' => \$VALGRIND, + 'executable|e=s' => \$EXECUTABLE ) or exit 1; my ( $hin, $hout, $hpid ); { local $ENV{LD_LIBRARY_PATH} = ".libs"; ! my @command = $EXECUTABLE; unshift @command, "valgrind", "--tool=memcheck", "--leak-check=yes", "--num-callers=25", "--log-file=valgrind.out", "--error-exitcode=126" if $VALGRIND; $hpid = open2 $hout, $hin, @command or die "Cannot open2 harness - $!"; *** ../vim-8.2.0777/src/libvterm/src/state.c 2019-10-10 20:13:41.000000000 +0200 --- src/libvterm/src/state.c 2020-05-17 15:57:57.969932943 +0200 *************** *** 922,927 **** --- 922,928 ---- VTermState *state = user; int leader_byte = 0; int intermed_byte = 0; + int cancel_phantom = 1; VTermPos oldpos = state->pos; int handled = 1; *************** *** 1237,1242 **** --- 1238,1261 ---- state->at_phantom = 0; break; + case 0x62: { // REP - ECMA-48 8.3.103 + const int row_width = THISROWWIDTH(state); + count = CSI_ARG_COUNT(args[0]); + col = state->pos.col + count; + UBOUND(col, row_width); + while (state->pos.col < col) { + putglyph(state, state->combine_chars, state->combine_width, state->pos); + state->pos.col += state->combine_width; + } + if (state->pos.col + state->combine_width >= row_width) { + if (state->mode.autowrap) { + state->at_phantom = 1; + cancel_phantom = 0; + } + } + break; + } + case 0x63: // DA - ECMA-48 8.3.24 val = CSI_ARG_OR(args[0], 0); if(val == 0) *************** *** 1523,1529 **** UBOUND(state->pos.col, THISROWWIDTH(state)-1); } ! updatecursor(state, &oldpos, 1); #ifdef DEBUG if(state->pos.row < 0 || state->pos.row >= state->rows || --- 1542,1548 ---- UBOUND(state->pos.col, THISROWWIDTH(state)-1); } ! updatecursor(state, &oldpos, cancel_phantom); #ifdef DEBUG if(state->pos.row < 0 || state->pos.row >= state->rows || *** ../vim-8.2.0777/src/libvterm/t/92lp1805050.test 2020-05-17 16:02:59.973046864 +0200 --- src/libvterm/t/92lp1805050.test 2020-05-17 15:55:34.414356523 +0200 *************** *** 0 **** --- 1,128 ---- + INIT + UTF8 1 + WANTSTATE g + + !REP no argument + RESET + PUSH "a\e[b" + putglyph 0x61 1 0,0 + putglyph 0x61 1 0,1 + + !REP zero (zero should be interpreted as one) + RESET + PUSH "a\e[0b" + putglyph 0x61 1 0,0 + putglyph 0x61 1 0,1 + + !REP lowercase a times two + RESET + PUSH "a\e[2b" + putglyph 0x61 1 0,0 + putglyph 0x61 1 0,1 + putglyph 0x61 1 0,2 + + !REP with UTF-8 1 char + # U+00E9 = 0xC3 0xA9 name: LATIN SMALL LETTER E WITH ACUTE + RESET + PUSH "\xC3\xA9\e[b" + putglyph 0xe9 1 0,0 + putglyph 0xe9 1 0,1 + + !REP with UTF-8 wide char + # U+00E9 = 0xC3 0xA9 name: LATIN SMALL LETTER E WITH ACUTE + RESET + PUSH "\xEF\xBC\x90\e[b" + putglyph 0xff10 2 0,0 + putglyph 0xff10 2 0,2 + + !REP with UTF-8 combining character + RESET + PUSH "e\xCC\x81\e[b" + putglyph 0x65,0x301 1 0,0 + putglyph 0x65,0x301 1 0,1 + + !REP till end of line + RESET + PUSH "a\e[1000bb" + putglyph 0x61 1 0,0 + putglyph 0x61 1 0,1 + putglyph 0x61 1 0,2 + putglyph 0x61 1 0,3 + putglyph 0x61 1 0,4 + putglyph 0x61 1 0,5 + putglyph 0x61 1 0,6 + putglyph 0x61 1 0,7 + putglyph 0x61 1 0,8 + putglyph 0x61 1 0,9 + putglyph 0x61 1 0,10 + putglyph 0x61 1 0,11 + putglyph 0x61 1 0,12 + putglyph 0x61 1 0,13 + putglyph 0x61 1 0,14 + putglyph 0x61 1 0,15 + putglyph 0x61 1 0,16 + putglyph 0x61 1 0,17 + putglyph 0x61 1 0,18 + putglyph 0x61 1 0,19 + putglyph 0x61 1 0,20 + putglyph 0x61 1 0,21 + putglyph 0x61 1 0,22 + putglyph 0x61 1 0,23 + putglyph 0x61 1 0,24 + putglyph 0x61 1 0,25 + putglyph 0x61 1 0,26 + putglyph 0x61 1 0,27 + putglyph 0x61 1 0,28 + putglyph 0x61 1 0,29 + putglyph 0x61 1 0,30 + putglyph 0x61 1 0,31 + putglyph 0x61 1 0,32 + putglyph 0x61 1 0,33 + putglyph 0x61 1 0,34 + putglyph 0x61 1 0,35 + putglyph 0x61 1 0,36 + putglyph 0x61 1 0,37 + putglyph 0x61 1 0,38 + putglyph 0x61 1 0,39 + putglyph 0x61 1 0,40 + putglyph 0x61 1 0,41 + putglyph 0x61 1 0,42 + putglyph 0x61 1 0,43 + putglyph 0x61 1 0,44 + putglyph 0x61 1 0,45 + putglyph 0x61 1 0,46 + putglyph 0x61 1 0,47 + putglyph 0x61 1 0,48 + putglyph 0x61 1 0,49 + putglyph 0x61 1 0,50 + putglyph 0x61 1 0,51 + putglyph 0x61 1 0,52 + putglyph 0x61 1 0,53 + putglyph 0x61 1 0,54 + putglyph 0x61 1 0,55 + putglyph 0x61 1 0,56 + putglyph 0x61 1 0,57 + putglyph 0x61 1 0,58 + putglyph 0x61 1 0,59 + putglyph 0x61 1 0,60 + putglyph 0x61 1 0,61 + putglyph 0x61 1 0,62 + putglyph 0x61 1 0,63 + putglyph 0x61 1 0,64 + putglyph 0x61 1 0,65 + putglyph 0x61 1 0,66 + putglyph 0x61 1 0,67 + putglyph 0x61 1 0,68 + putglyph 0x61 1 0,69 + putglyph 0x61 1 0,70 + putglyph 0x61 1 0,71 + putglyph 0x61 1 0,72 + putglyph 0x61 1 0,73 + putglyph 0x61 1 0,74 + putglyph 0x61 1 0,75 + putglyph 0x61 1 0,76 + putglyph 0x61 1 0,77 + putglyph 0x61 1 0,78 + putglyph 0x61 1 0,79 + putglyph 0x62 1 1,0 + *** ../vim-8.2.0777/src/version.c 2020-05-17 15:09:23.233533264 +0200 --- src/version.c 2020-05-17 15:51:15.367127949 +0200 *************** *** 748,749 **** --- 748,751 ---- { /* Add new patch number below this line */ + /**/ + 778, /**/ -- hundred-and-one symptoms of being an internet addict: 117. You are more comfortable typing in html. /// 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 ///