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