To: vim_dev@googlegroups.com Subject: Patch 8.2.0780 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.0780 Problem: Libvterm code lags behind the upstream version. Solution: Include revisions 724 - 726. Files: Filelist, src/libvterm/t/40screen_ascii.test, src/libvterm/t/60screen_ascii.test, src/libvterm/t/41screen_unicode.test, src/libvterm/t/61screen_unicode.test, src/libvterm/t/42screen_damage.test, src/libvterm/t/62screen_damage.test, src/libvterm/t/43screen_resize.test, src/libvterm/t/63screen_resize.test, src/libvterm/t/44screen_pen.test, src/libvterm/t/64screen_pen.test, src/libvterm/t/45screen_protect.test, src/libvterm/t/65screen_protect.test, src/libvterm/t/46screen_extent.test, src/libvterm/t/66screen_extent.test, src/libvterm/t/47screen_dbl_wh.test, src/libvterm/t/67screen_dbl_wh.test, src/libvterm/t/48screen_termprops.test, src/libvterm/t/68screen_termprops.test, src/libvterm/t/30pen.test, src/libvterm/t/30state_pen.test, src/libvterm/t/92lp1805050.test, src/libvterm/t/31state_rep.test, src/libvterm/doc/seqs.txt *** ../vim-8.2.0779/Filelist 2020-05-17 14:59:24.063410405 +0200 --- Filelist 2020-05-17 16:28:04.824101968 +0200 *************** *** 344,359 **** src/libvterm/t/27state_reset.test \ src/libvterm/t/28state_dbl_wh.test \ src/libvterm/t/29state_fallback.test \ ! src/libvterm/t/30pen.test \ ! src/libvterm/t/40screen_ascii.test \ ! src/libvterm/t/41screen_unicode.test \ ! src/libvterm/t/42screen_damage.test \ ! src/libvterm/t/43screen_resize.test \ ! src/libvterm/t/44screen_pen.test \ ! src/libvterm/t/45screen_protect.test \ ! src/libvterm/t/46screen_extent.test \ ! src/libvterm/t/47screen_dbl_wh.test \ ! src/libvterm/t/48screen_termprops.test \ src/libvterm/t/90vttest_01-movement-1.test \ src/libvterm/t/90vttest_01-movement-2.test \ src/libvterm/t/90vttest_01-movement-3.test \ --- 344,360 ---- src/libvterm/t/27state_reset.test \ src/libvterm/t/28state_dbl_wh.test \ src/libvterm/t/29state_fallback.test \ ! src/libvterm/t/30state_pen.test \ ! src/libvterm/t/31state_rep.test \ ! src/libvterm/t/60screen_ascii.test \ ! src/libvterm/t/61screen_unicode.test \ ! src/libvterm/t/62screen_damage.test \ ! src/libvterm/t/63screen_resize.test \ ! src/libvterm/t/64screen_pen.test \ ! src/libvterm/t/65screen_protect.test \ ! src/libvterm/t/66screen_extent.test \ ! src/libvterm/t/67screen_dbl_wh.test \ ! src/libvterm/t/68screen_termprops.test \ src/libvterm/t/90vttest_01-movement-1.test \ src/libvterm/t/90vttest_01-movement-2.test \ src/libvterm/t/90vttest_01-movement-3.test \ *** ../vim-8.2.0779/src/libvterm/t/40screen_ascii.test 2017-06-30 22:14:57.000000000 +0200 --- src/libvterm/t/40screen_ascii.test 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,69 **** - INIT - WANTSCREEN c - - !Get - RESET - PUSH "ABC" - movecursor 0,3 - ?screen_chars 0,0,1,3 = 0x41,0x42,0x43 - ?screen_chars 0,0,1,80 = 0x41,0x42,0x43 - ?screen_text 0,0,1,3 = 0x41,0x42,0x43 - ?screen_text 0,0,1,80 = 0x41,0x42,0x43 - ?screen_cell 0,0 = {0x41} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) - ?screen_cell 0,1 = {0x42} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) - ?screen_cell 0,2 = {0x43} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) - ?screen_row 0 = "ABC" - ?screen_eol 0,0 = 0 - ?screen_eol 0,2 = 0 - ?screen_eol 0,3 = 1 - PUSH "\e[H" - movecursor 0,0 - ?screen_chars 0,0,1,80 = 0x41,0x42,0x43 - ?screen_text 0,0,1,80 = 0x41,0x42,0x43 - PUSH "E" - movecursor 0,1 - ?screen_chars 0,0,1,80 = 0x45,0x42,0x43 - ?screen_text 0,0,1,80 = 0x45,0x42,0x43 - - WANTSCREEN -c - - !Erase - RESET - PUSH "ABCDE\e[H\e[K" - ?screen_chars 0,0,1,80 = - ?screen_text 0,0,1,80 = - - !Copycell - RESET - PUSH "ABC\e[H\e[@" - PUSH "1" - ?screen_chars 0,0,1,80 = 0x31,0x41,0x42,0x43 - - RESET - PUSH "ABC\e[H\e[P" - ?screen_chars 0,0,1,1 = 0x42 - ?screen_chars 0,1,1,2 = 0x43 - ?screen_chars 0,0,1,80 = 0x42,0x43 - - !Space padding - RESET - PUSH "Hello\e[CWorld" - ?screen_chars 0,0,1,80 = 0x48,0x65,0x6c,0x6c,0x6f,0x20,0x57,0x6f,0x72,0x6c,0x64 - ?screen_text 0,0,1,80 = 0x48,0x65,0x6c,0x6c,0x6f,0x20,0x57,0x6f,0x72,0x6c,0x64 - - !Linefeed padding - RESET - PUSH "Hello\r\nWorld" - ?screen_chars 0,0,2,80 = 0x48,0x65,0x6c,0x6c,0x6f,0x0a,0x57,0x6f,0x72,0x6c,0x64 - ?screen_text 0,0,2,80 = 0x48,0x65,0x6c,0x6c,0x6f,0x0a,0x57,0x6f,0x72,0x6c,0x64 - - !Altscreen - RESET - PUSH "P" - ?screen_chars 0,0,1,80 = 0x50 - PUSH "\e[?1049h" - ?screen_chars 0,0,1,80 = - PUSH "\e[2K\e[HA" - ?screen_chars 0,0,1,80 = 0x41 - PUSH "\e[?1049l" - ?screen_chars 0,0,1,80 = 0x50 --- 0 ---- *** ../vim-8.2.0779/src/libvterm/t/60screen_ascii.test 2020-05-17 16:23:18.149505926 +0200 --- src/libvterm/t/60screen_ascii.test 2017-06-30 22:14:57.000000000 +0200 *************** *** 0 **** --- 1,69 ---- + INIT + WANTSCREEN c + + !Get + RESET + PUSH "ABC" + movecursor 0,3 + ?screen_chars 0,0,1,3 = 0x41,0x42,0x43 + ?screen_chars 0,0,1,80 = 0x41,0x42,0x43 + ?screen_text 0,0,1,3 = 0x41,0x42,0x43 + ?screen_text 0,0,1,80 = 0x41,0x42,0x43 + ?screen_cell 0,0 = {0x41} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) + ?screen_cell 0,1 = {0x42} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) + ?screen_cell 0,2 = {0x43} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) + ?screen_row 0 = "ABC" + ?screen_eol 0,0 = 0 + ?screen_eol 0,2 = 0 + ?screen_eol 0,3 = 1 + PUSH "\e[H" + movecursor 0,0 + ?screen_chars 0,0,1,80 = 0x41,0x42,0x43 + ?screen_text 0,0,1,80 = 0x41,0x42,0x43 + PUSH "E" + movecursor 0,1 + ?screen_chars 0,0,1,80 = 0x45,0x42,0x43 + ?screen_text 0,0,1,80 = 0x45,0x42,0x43 + + WANTSCREEN -c + + !Erase + RESET + PUSH "ABCDE\e[H\e[K" + ?screen_chars 0,0,1,80 = + ?screen_text 0,0,1,80 = + + !Copycell + RESET + PUSH "ABC\e[H\e[@" + PUSH "1" + ?screen_chars 0,0,1,80 = 0x31,0x41,0x42,0x43 + + RESET + PUSH "ABC\e[H\e[P" + ?screen_chars 0,0,1,1 = 0x42 + ?screen_chars 0,1,1,2 = 0x43 + ?screen_chars 0,0,1,80 = 0x42,0x43 + + !Space padding + RESET + PUSH "Hello\e[CWorld" + ?screen_chars 0,0,1,80 = 0x48,0x65,0x6c,0x6c,0x6f,0x20,0x57,0x6f,0x72,0x6c,0x64 + ?screen_text 0,0,1,80 = 0x48,0x65,0x6c,0x6c,0x6f,0x20,0x57,0x6f,0x72,0x6c,0x64 + + !Linefeed padding + RESET + PUSH "Hello\r\nWorld" + ?screen_chars 0,0,2,80 = 0x48,0x65,0x6c,0x6c,0x6f,0x0a,0x57,0x6f,0x72,0x6c,0x64 + ?screen_text 0,0,2,80 = 0x48,0x65,0x6c,0x6c,0x6f,0x0a,0x57,0x6f,0x72,0x6c,0x64 + + !Altscreen + RESET + PUSH "P" + ?screen_chars 0,0,1,80 = 0x50 + PUSH "\e[?1049h" + ?screen_chars 0,0,1,80 = + PUSH "\e[2K\e[HA" + ?screen_chars 0,0,1,80 = 0x41 + PUSH "\e[?1049l" + ?screen_chars 0,0,1,80 = 0x50 *** ../vim-8.2.0779/src/libvterm/t/41screen_unicode.test 2020-01-26 21:59:25.624718145 +0100 --- src/libvterm/t/41screen_unicode.test 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,47 **** - INIT - UTF8 1 - WANTSCREEN - - !Single width UTF-8 - # U+00C1 = 0xC3 0x81 name: LATIN CAPITAL LETTER A WITH ACUTE - # U+00E9 = 0xC3 0xA9 name: LATIN SMALL LETTER E WITH ACUTE - RESET - PUSH "\xC3\x81\xC3\xA9" - ?screen_chars 0,0,1,80 = 0xc1,0xe9 - ?screen_text 0,0,1,80 = 0xc3,0x81,0xc3,0xa9 - ?screen_cell 0,0 = {0xc1} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) - - !Wide char - # U+FF10 = 0xEF 0xBC 0x90 name: FULLWIDTH DIGIT ZERO - RESET - PUSH "0123\e[H" - PUSH "\xEF\xBC\x90" - ?screen_chars 0,0,1,80 = 0xff10,0x32,0x33 - ?screen_text 0,0,1,80 = 0xef,0xbc,0x90,0x32,0x33 - ?screen_cell 0,0 = {0xff10} width=2 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) - - !Combining char - # U+0301 = 0xCC 0x81 name: COMBINING ACUTE - RESET - PUSH "0123\e[H" - PUSH "e\xCC\x81" - ?screen_chars 0,0,1,80 = 0x65,0x301,0x31,0x32,0x33 - ?screen_text 0,0,1,80 = 0x65,0xcc,0x81,0x31,0x32,0x33 - ?screen_cell 0,0 = {0x65,0x301} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) - - !10 combining accents should not crash - RESET - PUSH "e\xCC\x81\xCC\x82\xCC\x83\xCC\x84\xCC\x85\xCC\x86\xCC\x87\xCC\x88\xCC\x89\xCC\x8A" - ?screen_cell 0,0 = {0x65,0x301,0x302,0x303,0x304,0x305} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) - - !40 combining accents in two split writes of 20 should not crash - RESET - PUSH "e\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81" - PUSH "\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81" - ?screen_cell 0,0 = {0x65,0x301,0x301,0x301,0x301,0x301} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) - - !Outputting CJK doublewidth in 80th column should wraparound to next line and not crash" - RESET - PUSH "\e[80G\xEF\xBC\x90" - ?screen_cell 0,79 = {} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) - ?screen_cell 1,0 = {0xff10} width=2 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) --- 0 ---- *** ../vim-8.2.0779/src/libvterm/t/61screen_unicode.test 2020-05-17 16:23:18.157505903 +0200 --- src/libvterm/t/61screen_unicode.test 2020-01-26 21:53:39.258270923 +0100 *************** *** 0 **** --- 1,47 ---- + INIT + UTF8 1 + WANTSCREEN + + !Single width UTF-8 + # U+00C1 = 0xC3 0x81 name: LATIN CAPITAL LETTER A WITH ACUTE + # U+00E9 = 0xC3 0xA9 name: LATIN SMALL LETTER E WITH ACUTE + RESET + PUSH "\xC3\x81\xC3\xA9" + ?screen_chars 0,0,1,80 = 0xc1,0xe9 + ?screen_text 0,0,1,80 = 0xc3,0x81,0xc3,0xa9 + ?screen_cell 0,0 = {0xc1} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) + + !Wide char + # U+FF10 = 0xEF 0xBC 0x90 name: FULLWIDTH DIGIT ZERO + RESET + PUSH "0123\e[H" + PUSH "\xEF\xBC\x90" + ?screen_chars 0,0,1,80 = 0xff10,0x32,0x33 + ?screen_text 0,0,1,80 = 0xef,0xbc,0x90,0x32,0x33 + ?screen_cell 0,0 = {0xff10} width=2 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) + + !Combining char + # U+0301 = 0xCC 0x81 name: COMBINING ACUTE + RESET + PUSH "0123\e[H" + PUSH "e\xCC\x81" + ?screen_chars 0,0,1,80 = 0x65,0x301,0x31,0x32,0x33 + ?screen_text 0,0,1,80 = 0x65,0xcc,0x81,0x31,0x32,0x33 + ?screen_cell 0,0 = {0x65,0x301} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) + + !10 combining accents should not crash + RESET + PUSH "e\xCC\x81\xCC\x82\xCC\x83\xCC\x84\xCC\x85\xCC\x86\xCC\x87\xCC\x88\xCC\x89\xCC\x8A" + ?screen_cell 0,0 = {0x65,0x301,0x302,0x303,0x304,0x305} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) + + !40 combining accents in two split writes of 20 should not crash + RESET + PUSH "e\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81" + PUSH "\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81" + ?screen_cell 0,0 = {0x65,0x301,0x301,0x301,0x301,0x301} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) + + !Outputting CJK doublewidth in 80th column should wraparound to next line and not crash" + RESET + PUSH "\e[80G\xEF\xBC\x90" + ?screen_cell 0,79 = {} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) + ?screen_cell 1,0 = {0xff10} width=2 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) *** ../vim-8.2.0779/src/libvterm/t/42screen_damage.test 2017-06-24 16:44:02.000000000 +0200 --- src/libvterm/t/42screen_damage.test 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,155 **** - INIT - WANTSCREEN Db - - !Putglyph - RESET - damage 0..25,0..80 - PUSH "123" - damage 0..1,0..1 = 0<31> - damage 0..1,1..2 = 0<32> - damage 0..1,2..3 = 0<33> - - !Erase - PUSH "\e[H" - PUSH "\e[3X" - damage 0..1,0..3 - - !Scroll damages entire line in two chunks - PUSH "\e[H\e[5@" - damage 0..1,5..80 - damage 0..1,0..5 - - !Scroll down damages entire screen in two chunks - PUSH "\e[T" - damage 1..25,0..80 - damage 0..1,0..80 - - !Altscreen damages entire area - PUSH "\e[?1049h" - damage 0..25,0..80 - PUSH "\e[?1049l" - damage 0..25,0..80 - - WANTSCREEN m - - !Scroll invokes moverect but not damage - PUSH "\e[5@" - moverect 0..1,0..75 -> 0..1,5..80 - damage 0..1,0..5 - - WANTSCREEN -m - - !Merge to cells - RESET - damage 0..25,0..80 - DAMAGEMERGE CELL - - PUSH "A" - damage 0..1,0..1 = 0<41> - PUSH "B" - damage 0..1,1..2 = 0<42> - PUSH "C" - damage 0..1,2..3 = 0<43> - - !Merge entire rows - RESET - damage 0..25,0..80 - DAMAGEMERGE ROW - - PUSH "ABCDE\r\nEFGH" - damage 0..1,0..5 = 0<41 42 43 44 45> - DAMAGEFLUSH - damage 1..2,0..4 = 1<45 46 47 48> - PUSH "\e[3;6r\e[6H\eD" - damage 2..5,0..80 - DAMAGEFLUSH - damage 5..6,0..80 - - !Merge entire screen - RESET - damage 0..25,0..80 - DAMAGEMERGE SCREEN - - PUSH "ABCDE\r\nEFGH" - DAMAGEFLUSH - damage 0..2,0..5 = 0<41 42 43 44 45> 1<45 46 47 48> - PUSH "\e[3;6r\e[6H\eD" - DAMAGEFLUSH - damage 2..6,0..80 - - !Merge entire screen with moverect - WANTSCREEN m - - RESET - damage 0..25,0..80 - DAMAGEMERGE SCREEN - - PUSH "ABCDE\r\nEFGH" - PUSH "\e[3;6r\e[6H\eD" - damage 0..2,0..5 = 0<41 42 43 44 45> 1<45 46 47 48> - moverect 3..6,0..80 -> 2..5,0..80 - DAMAGEFLUSH - damage 5..6,0..80 - - !Merge scroll - RESET - damage 0..25,0..80 - DAMAGEMERGE SCROLL - - PUSH "\e[H1\r\n2\r\n3" - PUSH "\e[25H\n\n\n" - sb_pushline 80 = 31 - sb_pushline 80 = 32 - sb_pushline 80 = 33 - DAMAGEFLUSH - moverect 3..25,0..80 -> 0..22,0..80 - damage 0..25,0..80 - - !Merge scroll with damage - PUSH "\e[25H" - PUSH "ABCDE\r\nEFGH\r\n" - sb_pushline 80 = - sb_pushline 80 = - DAMAGEFLUSH - moverect 2..25,0..80 -> 0..23,0..80 - damage 22..25,0..80 = 22<41 42 43 44 45> 23<45 46 47 48> - - !Merge scroll with damage past region - PUSH "\e[3;6r\e[6H1\r\n2\r\n3\r\n4\r\n5" - DAMAGEFLUSH - damage 2..6,0..80 = 2<32> 3<33> 4<34> 5<35> - - !Damage entirely outside scroll region - PUSH "\e[HABC\e[3;6r\e[6H\r\n6" - damage 0..1,0..3 = 0<41 42 43> - DAMAGEFLUSH - moverect 3..6,0..80 -> 2..5,0..80 - damage 5..6,0..80 = 5<36> - - !Damage overlapping scroll region - PUSH "\e[H\e[2J" - DAMAGEFLUSH - damage 0..25,0..80 - - PUSH "\e[HABCD\r\nEFGH\r\nIJKL\e[2;5r\e[5H\r\nMNOP" - DAMAGEFLUSH - moverect 2..5,0..80 -> 1..4,0..80 - damage 0..5,0..80 = 0<41 42 43 44> 1<49 4A 4B 4C> - ## TODO: is this right? - - !Merge scroll*2 with damage - RESET - damage 0..25,0..80 - DAMAGEMERGE SCROLL - - PUSH "\e[25H\r\nABCDE\b\b\b\e[2P\r\n" - sb_pushline 80 = - moverect 1..25,0..80 -> 0..24,0..80 - damage 24..25,0..80 = 24<41 42 43 44 45> - moverect 24..25,4..80 -> 24..25,2..78 - damage 24..25,78..80 - sb_pushline 80 = - DAMAGEFLUSH - moverect 1..25,0..80 -> 0..24,0..80 - damage 24..25,0..80 - ?screen_chars 23,0,24,5 = 0x41,0x42,0x45 --- 0 ---- *** ../vim-8.2.0779/src/libvterm/t/62screen_damage.test 2020-05-17 16:23:18.161505894 +0200 --- src/libvterm/t/62screen_damage.test 2017-06-24 16:44:02.000000000 +0200 *************** *** 0 **** --- 1,155 ---- + INIT + WANTSCREEN Db + + !Putglyph + RESET + damage 0..25,0..80 + PUSH "123" + damage 0..1,0..1 = 0<31> + damage 0..1,1..2 = 0<32> + damage 0..1,2..3 = 0<33> + + !Erase + PUSH "\e[H" + PUSH "\e[3X" + damage 0..1,0..3 + + !Scroll damages entire line in two chunks + PUSH "\e[H\e[5@" + damage 0..1,5..80 + damage 0..1,0..5 + + !Scroll down damages entire screen in two chunks + PUSH "\e[T" + damage 1..25,0..80 + damage 0..1,0..80 + + !Altscreen damages entire area + PUSH "\e[?1049h" + damage 0..25,0..80 + PUSH "\e[?1049l" + damage 0..25,0..80 + + WANTSCREEN m + + !Scroll invokes moverect but not damage + PUSH "\e[5@" + moverect 0..1,0..75 -> 0..1,5..80 + damage 0..1,0..5 + + WANTSCREEN -m + + !Merge to cells + RESET + damage 0..25,0..80 + DAMAGEMERGE CELL + + PUSH "A" + damage 0..1,0..1 = 0<41> + PUSH "B" + damage 0..1,1..2 = 0<42> + PUSH "C" + damage 0..1,2..3 = 0<43> + + !Merge entire rows + RESET + damage 0..25,0..80 + DAMAGEMERGE ROW + + PUSH "ABCDE\r\nEFGH" + damage 0..1,0..5 = 0<41 42 43 44 45> + DAMAGEFLUSH + damage 1..2,0..4 = 1<45 46 47 48> + PUSH "\e[3;6r\e[6H\eD" + damage 2..5,0..80 + DAMAGEFLUSH + damage 5..6,0..80 + + !Merge entire screen + RESET + damage 0..25,0..80 + DAMAGEMERGE SCREEN + + PUSH "ABCDE\r\nEFGH" + DAMAGEFLUSH + damage 0..2,0..5 = 0<41 42 43 44 45> 1<45 46 47 48> + PUSH "\e[3;6r\e[6H\eD" + DAMAGEFLUSH + damage 2..6,0..80 + + !Merge entire screen with moverect + WANTSCREEN m + + RESET + damage 0..25,0..80 + DAMAGEMERGE SCREEN + + PUSH "ABCDE\r\nEFGH" + PUSH "\e[3;6r\e[6H\eD" + damage 0..2,0..5 = 0<41 42 43 44 45> 1<45 46 47 48> + moverect 3..6,0..80 -> 2..5,0..80 + DAMAGEFLUSH + damage 5..6,0..80 + + !Merge scroll + RESET + damage 0..25,0..80 + DAMAGEMERGE SCROLL + + PUSH "\e[H1\r\n2\r\n3" + PUSH "\e[25H\n\n\n" + sb_pushline 80 = 31 + sb_pushline 80 = 32 + sb_pushline 80 = 33 + DAMAGEFLUSH + moverect 3..25,0..80 -> 0..22,0..80 + damage 0..25,0..80 + + !Merge scroll with damage + PUSH "\e[25H" + PUSH "ABCDE\r\nEFGH\r\n" + sb_pushline 80 = + sb_pushline 80 = + DAMAGEFLUSH + moverect 2..25,0..80 -> 0..23,0..80 + damage 22..25,0..80 = 22<41 42 43 44 45> 23<45 46 47 48> + + !Merge scroll with damage past region + PUSH "\e[3;6r\e[6H1\r\n2\r\n3\r\n4\r\n5" + DAMAGEFLUSH + damage 2..6,0..80 = 2<32> 3<33> 4<34> 5<35> + + !Damage entirely outside scroll region + PUSH "\e[HABC\e[3;6r\e[6H\r\n6" + damage 0..1,0..3 = 0<41 42 43> + DAMAGEFLUSH + moverect 3..6,0..80 -> 2..5,0..80 + damage 5..6,0..80 = 5<36> + + !Damage overlapping scroll region + PUSH "\e[H\e[2J" + DAMAGEFLUSH + damage 0..25,0..80 + + PUSH "\e[HABCD\r\nEFGH\r\nIJKL\e[2;5r\e[5H\r\nMNOP" + DAMAGEFLUSH + moverect 2..5,0..80 -> 1..4,0..80 + damage 0..5,0..80 = 0<41 42 43 44> 1<49 4A 4B 4C> + ## TODO: is this right? + + !Merge scroll*2 with damage + RESET + damage 0..25,0..80 + DAMAGEMERGE SCROLL + + PUSH "\e[25H\r\nABCDE\b\b\b\e[2P\r\n" + sb_pushline 80 = + moverect 1..25,0..80 -> 0..24,0..80 + damage 24..25,0..80 = 24<41 42 43 44 45> + moverect 24..25,4..80 -> 24..25,2..78 + damage 24..25,78..80 + sb_pushline 80 = + DAMAGEFLUSH + moverect 1..25,0..80 -> 0..24,0..80 + damage 24..25,0..80 + ?screen_chars 23,0,24,5 = 0x41,0x42,0x45 *** ../vim-8.2.0779/src/libvterm/t/43screen_resize.test 2017-06-24 16:44:02.000000000 +0200 --- src/libvterm/t/43screen_resize.test 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,90 **** - INIT - WANTSTATE - WANTSCREEN - - !Resize wider preserves cells - RESET - RESIZE 25,80 - PUSH "AB\r\nCD" - ?screen_chars 0,0,1,80 = 0x41,0x42 - ?screen_chars 1,0,2,80 = 0x43,0x44 - RESIZE 25,100 - ?screen_chars 0,0,1,100 = 0x41,0x42 - ?screen_chars 1,0,2,100 = 0x43,0x44 - - !Resize wider allows print in new area - RESET - RESIZE 25,80 - PUSH "AB\e[79GCD" - ?screen_chars 0,0,1,2 = 0x41,0x42 - ?screen_chars 0,78,1,80 = 0x43,0x44 - RESIZE 25,100 - ?screen_chars 0,0,1,2 = 0x41,0x42 - ?screen_chars 0,78,1,80 = 0x43,0x44 - PUSH "E" - ?screen_chars 0,78,1,81 = 0x43,0x44,0x45 - - !Resize shorter with blanks just truncates - RESET - RESIZE 25,80 - PUSH "Top\e[10HLine 10" - ?screen_chars 0,0,1,80 = 0x54,0x6f,0x70 - ?screen_chars 9,0,10,80 = 0x4c,0x69,0x6e,0x65,0x20,0x31,0x30 - ?cursor = 9,7 - RESIZE 20,80 - ?screen_chars 0,0,1,80 = 0x54,0x6f,0x70 - ?screen_chars 9,0,10,80 = 0x4c,0x69,0x6e,0x65,0x20,0x31,0x30 - ?cursor = 9,7 - - !Resize shorter with content must scroll - RESET - RESIZE 25,80 - PUSH "Top\e[25HLine 25\e[15H" - ?screen_chars 0,0,1,80 = 0x54,0x6f,0x70 - ?screen_chars 24,0,25,80 = 0x4c,0x69,0x6e,0x65,0x20,0x32,0x35 - ?cursor = 14,0 - WANTSCREEN b - RESIZE 20,80 - sb_pushline 80 = 54 6F 70 - sb_pushline 80 = - sb_pushline 80 = - sb_pushline 80 = - sb_pushline 80 = - ?screen_chars 0,0,1,80 = - ?screen_chars 19,0,20,80 = 0x4c,0x69,0x6e,0x65,0x20,0x32,0x35 - ?cursor = 9,0 - - !Resize shorter does not lose line with cursor - # See also https://github.com/neovim/libvterm/commit/1b745d29d45623aa8d22a7b9288c7b0e331c7088 - RESET - WANTSCREEN -b - RESIZE 25,80 - WANTSCREEN b - PUSH "\e[24HLine 24\r\nLine 25\r\n" - sb_pushline 80 = - ?screen_chars 23,0,24,10 = 0x4c,0x69,0x6e,0x65,0x20,0x32,0x35 - ?cursor = 24,0 - RESIZE 24,80 - sb_pushline 80 = - ?screen_chars 22,0,23,10 = 0x4c,0x69,0x6e,0x65,0x20,0x32,0x35 - ?cursor = 23,0 - - !Resize taller attempts to pop scrollback - RESET - WANTSCREEN -b - RESIZE 25,80 - PUSH "Line 1\e[25HBottom\e[15H" - ?screen_chars 0,0,1,80 = 0x4c,0x69,0x6e,0x65,0x20,0x31 - ?screen_chars 24,0,25,80 = 0x42,0x6f,0x74,0x74,0x6f,0x6d - ?cursor = 14,0 - WANTSCREEN b - RESIZE 30,80 - sb_popline 80 - sb_popline 80 - sb_popline 80 - sb_popline 80 - sb_popline 80 - ?screen_chars 0,0,1,80 = 0x41,0x42,0x43,0x44,0x45 - ?screen_chars 5,0,6,80 = 0x4c,0x69,0x6e,0x65,0x20,0x31 - ?screen_chars 29,0,30,80 = 0x42,0x6f,0x74,0x74,0x6f,0x6d - ?cursor = 19,0 --- 0 ---- *** ../vim-8.2.0779/src/libvterm/t/63screen_resize.test 2020-05-17 16:23:18.169505871 +0200 --- src/libvterm/t/63screen_resize.test 2017-06-24 16:44:02.000000000 +0200 *************** *** 0 **** --- 1,90 ---- + INIT + WANTSTATE + WANTSCREEN + + !Resize wider preserves cells + RESET + RESIZE 25,80 + PUSH "AB\r\nCD" + ?screen_chars 0,0,1,80 = 0x41,0x42 + ?screen_chars 1,0,2,80 = 0x43,0x44 + RESIZE 25,100 + ?screen_chars 0,0,1,100 = 0x41,0x42 + ?screen_chars 1,0,2,100 = 0x43,0x44 + + !Resize wider allows print in new area + RESET + RESIZE 25,80 + PUSH "AB\e[79GCD" + ?screen_chars 0,0,1,2 = 0x41,0x42 + ?screen_chars 0,78,1,80 = 0x43,0x44 + RESIZE 25,100 + ?screen_chars 0,0,1,2 = 0x41,0x42 + ?screen_chars 0,78,1,80 = 0x43,0x44 + PUSH "E" + ?screen_chars 0,78,1,81 = 0x43,0x44,0x45 + + !Resize shorter with blanks just truncates + RESET + RESIZE 25,80 + PUSH "Top\e[10HLine 10" + ?screen_chars 0,0,1,80 = 0x54,0x6f,0x70 + ?screen_chars 9,0,10,80 = 0x4c,0x69,0x6e,0x65,0x20,0x31,0x30 + ?cursor = 9,7 + RESIZE 20,80 + ?screen_chars 0,0,1,80 = 0x54,0x6f,0x70 + ?screen_chars 9,0,10,80 = 0x4c,0x69,0x6e,0x65,0x20,0x31,0x30 + ?cursor = 9,7 + + !Resize shorter with content must scroll + RESET + RESIZE 25,80 + PUSH "Top\e[25HLine 25\e[15H" + ?screen_chars 0,0,1,80 = 0x54,0x6f,0x70 + ?screen_chars 24,0,25,80 = 0x4c,0x69,0x6e,0x65,0x20,0x32,0x35 + ?cursor = 14,0 + WANTSCREEN b + RESIZE 20,80 + sb_pushline 80 = 54 6F 70 + sb_pushline 80 = + sb_pushline 80 = + sb_pushline 80 = + sb_pushline 80 = + ?screen_chars 0,0,1,80 = + ?screen_chars 19,0,20,80 = 0x4c,0x69,0x6e,0x65,0x20,0x32,0x35 + ?cursor = 9,0 + + !Resize shorter does not lose line with cursor + # See also https://github.com/neovim/libvterm/commit/1b745d29d45623aa8d22a7b9288c7b0e331c7088 + RESET + WANTSCREEN -b + RESIZE 25,80 + WANTSCREEN b + PUSH "\e[24HLine 24\r\nLine 25\r\n" + sb_pushline 80 = + ?screen_chars 23,0,24,10 = 0x4c,0x69,0x6e,0x65,0x20,0x32,0x35 + ?cursor = 24,0 + RESIZE 24,80 + sb_pushline 80 = + ?screen_chars 22,0,23,10 = 0x4c,0x69,0x6e,0x65,0x20,0x32,0x35 + ?cursor = 23,0 + + !Resize taller attempts to pop scrollback + RESET + WANTSCREEN -b + RESIZE 25,80 + PUSH "Line 1\e[25HBottom\e[15H" + ?screen_chars 0,0,1,80 = 0x4c,0x69,0x6e,0x65,0x20,0x31 + ?screen_chars 24,0,25,80 = 0x42,0x6f,0x74,0x74,0x6f,0x6d + ?cursor = 14,0 + WANTSCREEN b + RESIZE 30,80 + sb_popline 80 + sb_popline 80 + sb_popline 80 + sb_popline 80 + sb_popline 80 + ?screen_chars 0,0,1,80 = 0x41,0x42,0x43,0x44,0x45 + ?screen_chars 5,0,6,80 = 0x4c,0x69,0x6e,0x65,0x20,0x31 + ?screen_chars 29,0,30,80 = 0x42,0x6f,0x74,0x74,0x6f,0x6d + ?cursor = 19,0 *** ../vim-8.2.0779/src/libvterm/t/44screen_pen.test 2017-06-24 16:44:02.000000000 +0200 --- src/libvterm/t/44screen_pen.test 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,55 **** - INIT - WANTSCREEN - - RESET - - !Plain - PUSH "A" - ?screen_cell 0,0 = {0x41} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) - - !Bold - PUSH "\e[1mB" - ?screen_cell 0,1 = {0x42} width=1 attrs={B} fg=rgb(240,240,240) bg=rgb(0,0,0) - - !Italic - PUSH "\e[3mC" - ?screen_cell 0,2 = {0x43} width=1 attrs={BI} fg=rgb(240,240,240) bg=rgb(0,0,0) - - !Underline - PUSH "\e[4mD" - ?screen_cell 0,3 = {0x44} width=1 attrs={BU1I} fg=rgb(240,240,240) bg=rgb(0,0,0) - - !Reset - PUSH "\e[mE" - ?screen_cell 0,4 = {0x45} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) - - !Font - PUSH "\e[11mF\e[m" - ?screen_cell 0,5 = {0x46} width=1 attrs={F1} fg=rgb(240,240,240) bg=rgb(0,0,0) - - !Foreground - PUSH "\e[31mG\e[m" - ?screen_cell 0,6 = {0x47} width=1 attrs={} fg=rgb(224,0,0) bg=rgb(0,0,0) - - !Background - PUSH "\e[42mH\e[m" - ?screen_cell 0,7 = {0x48} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,224,0) - - !EL sets reverse and colours to end of line - PUSH "\e[H\e[7;33;44m\e[K" - ?screen_cell 0,0 = {} width=1 attrs={R} fg=rgb(224,224,0) bg=rgb(0,0,224) - ?screen_cell 0,79 = {} width=1 attrs={R} fg=rgb(224,224,0) bg=rgb(0,0,224) - - !DECSCNM xors reverse for entire screen - PUSH "\e[?5h" - ?screen_cell 0,0 = {} width=1 attrs={} fg=rgb(224,224,0) bg=rgb(0,0,224) - ?screen_cell 0,79 = {} width=1 attrs={} fg=rgb(224,224,0) bg=rgb(0,0,224) - ?screen_cell 1,0 = {} width=1 attrs={R} fg=rgb(240,240,240) bg=rgb(0,0,0) - PUSH "\e[?5\$p" - output "\e[?5;1\$y" - PUSH "\e[?5l" - ?screen_cell 0,0 = {} width=1 attrs={R} fg=rgb(224,224,0) bg=rgb(0,0,224) - ?screen_cell 0,79 = {} width=1 attrs={R} fg=rgb(224,224,0) bg=rgb(0,0,224) - ?screen_cell 1,0 = {} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) - PUSH "\e[?5\$p" - output "\e[?5;2\$y" --- 0 ---- *** ../vim-8.2.0779/src/libvterm/t/64screen_pen.test 2020-05-17 16:23:18.177505848 +0200 --- src/libvterm/t/64screen_pen.test 2017-06-24 16:44:02.000000000 +0200 *************** *** 0 **** --- 1,55 ---- + INIT + WANTSCREEN + + RESET + + !Plain + PUSH "A" + ?screen_cell 0,0 = {0x41} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) + + !Bold + PUSH "\e[1mB" + ?screen_cell 0,1 = {0x42} width=1 attrs={B} fg=rgb(240,240,240) bg=rgb(0,0,0) + + !Italic + PUSH "\e[3mC" + ?screen_cell 0,2 = {0x43} width=1 attrs={BI} fg=rgb(240,240,240) bg=rgb(0,0,0) + + !Underline + PUSH "\e[4mD" + ?screen_cell 0,3 = {0x44} width=1 attrs={BU1I} fg=rgb(240,240,240) bg=rgb(0,0,0) + + !Reset + PUSH "\e[mE" + ?screen_cell 0,4 = {0x45} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) + + !Font + PUSH "\e[11mF\e[m" + ?screen_cell 0,5 = {0x46} width=1 attrs={F1} fg=rgb(240,240,240) bg=rgb(0,0,0) + + !Foreground + PUSH "\e[31mG\e[m" + ?screen_cell 0,6 = {0x47} width=1 attrs={} fg=rgb(224,0,0) bg=rgb(0,0,0) + + !Background + PUSH "\e[42mH\e[m" + ?screen_cell 0,7 = {0x48} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,224,0) + + !EL sets reverse and colours to end of line + PUSH "\e[H\e[7;33;44m\e[K" + ?screen_cell 0,0 = {} width=1 attrs={R} fg=rgb(224,224,0) bg=rgb(0,0,224) + ?screen_cell 0,79 = {} width=1 attrs={R} fg=rgb(224,224,0) bg=rgb(0,0,224) + + !DECSCNM xors reverse for entire screen + PUSH "\e[?5h" + ?screen_cell 0,0 = {} width=1 attrs={} fg=rgb(224,224,0) bg=rgb(0,0,224) + ?screen_cell 0,79 = {} width=1 attrs={} fg=rgb(224,224,0) bg=rgb(0,0,224) + ?screen_cell 1,0 = {} width=1 attrs={R} fg=rgb(240,240,240) bg=rgb(0,0,0) + PUSH "\e[?5\$p" + output "\e[?5;1\$y" + PUSH "\e[?5l" + ?screen_cell 0,0 = {} width=1 attrs={R} fg=rgb(224,224,0) bg=rgb(0,0,224) + ?screen_cell 0,79 = {} width=1 attrs={R} fg=rgb(224,224,0) bg=rgb(0,0,224) + ?screen_cell 1,0 = {} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) + PUSH "\e[?5\$p" + output "\e[?5;2\$y" *** ../vim-8.2.0779/src/libvterm/t/45screen_protect.test 2017-06-24 16:44:02.000000000 +0200 --- src/libvterm/t/45screen_protect.test 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,16 **** - INIT - WANTSCREEN - - !Selective erase - RESET - PUSH "A\e[1\"qB\e[\"qC" - ?screen_chars 0,0,1,3 = 0x41,0x42,0x43 - PUSH "\e[G\e[?J" - ?screen_chars 0,0,1,3 = 0x20,0x42 - - !Non-selective erase - RESET - PUSH "A\e[1\"qB\e[\"qC" - ?screen_chars 0,0,1,3 = 0x41,0x42,0x43 - PUSH "\e[G\e[J" - ?screen_chars 0,0,1,3 = --- 0 ---- *** ../vim-8.2.0779/src/libvterm/t/65screen_protect.test 2020-05-17 16:23:18.185505825 +0200 --- src/libvterm/t/65screen_protect.test 2017-06-24 16:44:02.000000000 +0200 *************** *** 0 **** --- 1,16 ---- + INIT + WANTSCREEN + + !Selective erase + RESET + PUSH "A\e[1\"qB\e[\"qC" + ?screen_chars 0,0,1,3 = 0x41,0x42,0x43 + PUSH "\e[G\e[?J" + ?screen_chars 0,0,1,3 = 0x20,0x42 + + !Non-selective erase + RESET + PUSH "A\e[1\"qB\e[\"qC" + ?screen_chars 0,0,1,3 = 0x41,0x42,0x43 + PUSH "\e[G\e[J" + ?screen_chars 0,0,1,3 = *** ../vim-8.2.0779/src/libvterm/t/46screen_extent.test 2017-06-24 16:44:02.000000000 +0200 --- src/libvterm/t/46screen_extent.test 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,11 **** - INIT - WANTSCREEN - - !Bold extent - RESET - PUSH "AB\e[1mCD\e[mE" - ?screen_attrs_extent 0,0 = 0,0-1,1 - ?screen_attrs_extent 0,1 = 0,0-1,1 - ?screen_attrs_extent 0,2 = 0,2-1,3 - ?screen_attrs_extent 0,3 = 0,2-1,3 - ?screen_attrs_extent 0,4 = 0,4-1,79 --- 0 ---- *** ../vim-8.2.0779/src/libvterm/t/66screen_extent.test 2020-05-17 16:23:18.189505812 +0200 --- src/libvterm/t/66screen_extent.test 2017-06-24 16:44:02.000000000 +0200 *************** *** 0 **** --- 1,11 ---- + INIT + WANTSCREEN + + !Bold extent + RESET + PUSH "AB\e[1mCD\e[mE" + ?screen_attrs_extent 0,0 = 0,0-1,1 + ?screen_attrs_extent 0,1 = 0,0-1,1 + ?screen_attrs_extent 0,2 = 0,2-1,3 + ?screen_attrs_extent 0,3 = 0,2-1,3 + ?screen_attrs_extent 0,4 = 0,4-1,79 *** ../vim-8.2.0779/src/libvterm/t/47screen_dbl_wh.test 2017-06-24 16:44:02.000000000 +0200 --- src/libvterm/t/47screen_dbl_wh.test 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,32 **** - INIT - WANTSCREEN - - RESET - - !Single Width, Single Height - RESET - PUSH "\e#5" - PUSH "abcde" - ?screen_cell 0,0 = {0x61} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) - - !Double Width, Single Height - RESET - PUSH "\e#6" - PUSH "abcde" - ?screen_cell 0,0 = {0x61} width=1 attrs={} dwl fg=rgb(240,240,240) bg=rgb(0,0,0) - - !Double Height - RESET - PUSH "\e#3" - PUSH "abcde" - PUSH "\r\n\e#4" - PUSH "abcde" - ?screen_cell 0,0 = {0x61} width=1 attrs={} dwl dhl-top fg=rgb(240,240,240) bg=rgb(0,0,0) - ?screen_cell 1,0 = {0x61} width=1 attrs={} dwl dhl-bottom fg=rgb(240,240,240) bg=rgb(0,0,0) - - !Late change - RESET - PUSH "abcde" - ?screen_cell 0,0 = {0x61} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) - PUSH "\e#6" - ?screen_cell 0,0 = {0x61} width=1 attrs={} dwl fg=rgb(240,240,240) bg=rgb(0,0,0) --- 0 ---- *** ../vim-8.2.0779/src/libvterm/t/67screen_dbl_wh.test 2020-05-17 16:23:18.197505789 +0200 --- src/libvterm/t/67screen_dbl_wh.test 2017-06-24 16:44:02.000000000 +0200 *************** *** 0 **** --- 1,32 ---- + INIT + WANTSCREEN + + RESET + + !Single Width, Single Height + RESET + PUSH "\e#5" + PUSH "abcde" + ?screen_cell 0,0 = {0x61} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) + + !Double Width, Single Height + RESET + PUSH "\e#6" + PUSH "abcde" + ?screen_cell 0,0 = {0x61} width=1 attrs={} dwl fg=rgb(240,240,240) bg=rgb(0,0,0) + + !Double Height + RESET + PUSH "\e#3" + PUSH "abcde" + PUSH "\r\n\e#4" + PUSH "abcde" + ?screen_cell 0,0 = {0x61} width=1 attrs={} dwl dhl-top fg=rgb(240,240,240) bg=rgb(0,0,0) + ?screen_cell 1,0 = {0x61} width=1 attrs={} dwl dhl-bottom fg=rgb(240,240,240) bg=rgb(0,0,0) + + !Late change + RESET + PUSH "abcde" + ?screen_cell 0,0 = {0x61} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) + PUSH "\e#6" + ?screen_cell 0,0 = {0x61} width=1 attrs={} dwl fg=rgb(240,240,240) bg=rgb(0,0,0) *** ../vim-8.2.0779/src/libvterm/t/48screen_termprops.test 2017-06-24 16:44:02.000000000 +0200 --- src/libvterm/t/48screen_termprops.test 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,17 **** - INIT - WANTSCREEN p - - RESET - settermprop 1 true - settermprop 2 true - settermprop 7 1 - - !Cursor visibility - PUSH "\e[?25h" - settermprop 1 true - PUSH "\e[?25l" - settermprop 1 false - - !Title - PUSH "\e]2;Here is my title\a" - settermprop 4 "Here is my title" --- 0 ---- *** ../vim-8.2.0779/src/libvterm/t/68screen_termprops.test 2020-05-17 16:23:18.205505766 +0200 --- src/libvterm/t/68screen_termprops.test 2017-06-24 16:44:02.000000000 +0200 *************** *** 0 **** --- 1,17 ---- + INIT + WANTSCREEN p + + RESET + settermprop 1 true + settermprop 2 true + settermprop 7 1 + + !Cursor visibility + PUSH "\e[?25h" + settermprop 1 true + PUSH "\e[?25l" + settermprop 1 false + + !Title + PUSH "\e]2;Here is my title\a" + settermprop 4 "Here is my title" *** ../vim-8.2.0779/src/libvterm/t/30pen.test 2017-06-24 16:44:02.000000000 +0200 --- src/libvterm/t/30pen.test 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,106 **** - INIT - UTF8 1 - WANTSTATE - - !Reset - PUSH "\e[m" - ?pen bold = off - ?pen underline = 0 - ?pen italic = off - ?pen blink = off - ?pen reverse = off - ?pen font = 0 - ?pen foreground = rgb(240,240,240) - ?pen background = rgb(0,0,0) - - !Bold - PUSH "\e[1m" - ?pen bold = on - PUSH "\e[22m" - ?pen bold = off - PUSH "\e[1m\e[m" - ?pen bold = off - - !Underline - PUSH "\e[4m" - ?pen underline = 1 - PUSH "\e[21m" - ?pen underline = 2 - PUSH "\e[24m" - ?pen underline = 0 - PUSH "\e[4m\e[m" - ?pen underline = 0 - - !Italic - PUSH "\e[3m" - ?pen italic = on - PUSH "\e[23m" - ?pen italic = off - PUSH "\e[3m\e[m" - ?pen italic = off - - !Blink - PUSH "\e[5m" - ?pen blink = on - PUSH "\e[25m" - ?pen blink = off - PUSH "\e[5m\e[m" - ?pen blink = off - - !Reverse - PUSH "\e[7m" - ?pen reverse = on - PUSH "\e[27m" - ?pen reverse = off - PUSH "\e[7m\e[m" - ?pen reverse = off - - !Font Selection - PUSH "\e[11m" - ?pen font = 1 - PUSH "\e[19m" - ?pen font = 9 - PUSH "\e[10m" - ?pen font = 0 - PUSH "\e[11m\e[m" - ?pen font = 0 - - !Foreground - PUSH "\e[31m" - ?pen foreground = rgb(224,0,0) - PUSH "\e[32m" - ?pen foreground = rgb(0,224,0) - PUSH "\e[34m" - ?pen foreground = rgb(0,0,224) - PUSH "\e[91m" - ?pen foreground = rgb(255,64,64) - PUSH "\e[38:2:10:20:30m" - ?pen foreground = rgb(10,20,30) - PUSH "\e[38:5:1m" - ?pen foreground = rgb(224,0,0) - PUSH "\e[39m" - ?pen foreground = rgb(240,240,240) - - !Background - PUSH "\e[41m" - ?pen background = rgb(224,0,0) - PUSH "\e[42m" - ?pen background = rgb(0,224,0) - PUSH "\e[44m" - ?pen background = rgb(0,0,224) - PUSH "\e[101m" - ?pen background = rgb(255,64,64) - PUSH "\e[48:2:10:20:30m" - ?pen background = rgb(10,20,30) - PUSH "\e[48:5:1m" - ?pen background = rgb(224,0,0) - PUSH "\e[49m" - ?pen background = rgb(0,0,0) - - !Bold+ANSI colour == highbright - PUSH "\e[m\e[1;37m" - ?pen bold = on - ?pen foreground = rgb(255,255,255) - PUSH "\e[m\e[37;1m" - ?pen bold = on - ?pen foreground = rgb(255,255,255) --- 0 ---- *** ../vim-8.2.0779/src/libvterm/t/30state_pen.test 2020-05-17 16:23:18.213505743 +0200 --- src/libvterm/t/30state_pen.test 2017-06-24 16:44:02.000000000 +0200 *************** *** 0 **** --- 1,106 ---- + INIT + UTF8 1 + WANTSTATE + + !Reset + PUSH "\e[m" + ?pen bold = off + ?pen underline = 0 + ?pen italic = off + ?pen blink = off + ?pen reverse = off + ?pen font = 0 + ?pen foreground = rgb(240,240,240) + ?pen background = rgb(0,0,0) + + !Bold + PUSH "\e[1m" + ?pen bold = on + PUSH "\e[22m" + ?pen bold = off + PUSH "\e[1m\e[m" + ?pen bold = off + + !Underline + PUSH "\e[4m" + ?pen underline = 1 + PUSH "\e[21m" + ?pen underline = 2 + PUSH "\e[24m" + ?pen underline = 0 + PUSH "\e[4m\e[m" + ?pen underline = 0 + + !Italic + PUSH "\e[3m" + ?pen italic = on + PUSH "\e[23m" + ?pen italic = off + PUSH "\e[3m\e[m" + ?pen italic = off + + !Blink + PUSH "\e[5m" + ?pen blink = on + PUSH "\e[25m" + ?pen blink = off + PUSH "\e[5m\e[m" + ?pen blink = off + + !Reverse + PUSH "\e[7m" + ?pen reverse = on + PUSH "\e[27m" + ?pen reverse = off + PUSH "\e[7m\e[m" + ?pen reverse = off + + !Font Selection + PUSH "\e[11m" + ?pen font = 1 + PUSH "\e[19m" + ?pen font = 9 + PUSH "\e[10m" + ?pen font = 0 + PUSH "\e[11m\e[m" + ?pen font = 0 + + !Foreground + PUSH "\e[31m" + ?pen foreground = rgb(224,0,0) + PUSH "\e[32m" + ?pen foreground = rgb(0,224,0) + PUSH "\e[34m" + ?pen foreground = rgb(0,0,224) + PUSH "\e[91m" + ?pen foreground = rgb(255,64,64) + PUSH "\e[38:2:10:20:30m" + ?pen foreground = rgb(10,20,30) + PUSH "\e[38:5:1m" + ?pen foreground = rgb(224,0,0) + PUSH "\e[39m" + ?pen foreground = rgb(240,240,240) + + !Background + PUSH "\e[41m" + ?pen background = rgb(224,0,0) + PUSH "\e[42m" + ?pen background = rgb(0,224,0) + PUSH "\e[44m" + ?pen background = rgb(0,0,224) + PUSH "\e[101m" + ?pen background = rgb(255,64,64) + PUSH "\e[48:2:10:20:30m" + ?pen background = rgb(10,20,30) + PUSH "\e[48:5:1m" + ?pen background = rgb(224,0,0) + PUSH "\e[49m" + ?pen background = rgb(0,0,0) + + !Bold+ANSI colour == highbright + PUSH "\e[m\e[1;37m" + ?pen bold = on + ?pen foreground = rgb(255,255,255) + PUSH "\e[m\e[37;1m" + ?pen bold = on + ?pen foreground = rgb(255,255,255) *** ../vim-8.2.0779/src/libvterm/t/92lp1805050.test 2020-05-17 16:03:58.500875755 +0200 --- src/libvterm/t/92lp1805050.test 1970-01-01 01:00:00.000000000 +0100 *************** *** 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 - --- 0 ---- *** ../vim-8.2.0779/src/libvterm/t/31state_rep.test 2020-05-17 16:23:18.217505729 +0200 --- src/libvterm/t/31state_rep.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.0779/src/libvterm/doc/seqs.txt 2018-03-25 14:54:41.000000000 +0200 --- src/libvterm/doc/seqs.txt 2020-05-17 16:19:38.958141429 +0200 *************** *** 97,102 **** --- 97,103 ---- CSI Z = CBT CSI ` = HPA CSI a = HPR + CSI b = REP 123 CSI c = DA, device attributes 123 0 = DA 23 CSI > c = DECSDA *** ../vim-8.2.0779/src/version.c 2020-05-17 16:10:07.563800256 +0200 --- src/version.c 2020-05-17 16:22:57.081567017 +0200 *************** *** 748,749 **** --- 748,751 ---- { /* Add new patch number below this line */ + /**/ + 780, /**/ -- Support your right to bare arms! Wear short sleeves! /// 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 ///