1INIT 2WANTSTATE 3WANTSCREEN 4 5!Resize wider preserves cells 6RESET 7RESIZE 25,80 8PUSH "AB\r\nCD" 9 ?screen_chars 0,0,1,80 = "AB" 10 ?screen_chars 1,0,2,80 = "CD" 11RESIZE 25,100 12 ?screen_chars 0,0,1,100 = "AB" 13 ?screen_chars 1,0,2,100 = "CD" 14 15!Resize wider allows print in new area 16RESET 17RESIZE 25,80 18PUSH "AB\e[79GCD" 19 ?screen_chars 0,0,1,2 = "AB" 20 ?screen_chars 0,78,1,80 = "CD" 21RESIZE 25,100 22 ?screen_chars 0,0,1,2 = "AB" 23 ?screen_chars 0,78,1,80 = "CD" 24PUSH "E" 25 ?screen_chars 0,78,1,81 = "CDE" 26 27!Resize shorter with blanks just truncates 28RESET 29RESIZE 25,80 30PUSH "Top\e[10HLine 10" 31 ?screen_chars 0,0,1,80 = "Top" 32 ?screen_chars 9,0,10,80 = "Line 10" 33 ?cursor = 9,7 34RESIZE 20,80 35 ?screen_chars 0,0,1,80 = "Top" 36 ?screen_chars 9,0,10,80 = "Line 10" 37 ?cursor = 9,7 38 39!Resize shorter with content must scroll 40RESET 41RESIZE 25,80 42PUSH "Top\e[25HLine 25\e[15H" 43 ?screen_chars 0,0,1,80 = "Top" 44 ?screen_chars 24,0,25,80 = "Line 25" 45 ?cursor = 14,0 46WANTSCREEN b 47RESIZE 20,80 48 sb_pushline 80 = 54 6F 70 49 sb_pushline 80 = 50 sb_pushline 80 = 51 sb_pushline 80 = 52 sb_pushline 80 = 53 ?screen_chars 0,0,1,80 = 54 ?screen_chars 19,0,20,80 = "Line 25" 55 ?cursor = 9,0 56 57!Resize shorter does not lose line with cursor 58# See also https://github.com/neovim/libvterm/commit/1b745d29d45623aa8d22a7b9288c7b0e331c7088 59RESET 60WANTSCREEN -b 61RESIZE 25,80 62WANTSCREEN b 63PUSH "\e[24HLine 24\r\nLine 25\r\n" 64 sb_pushline 80 = 65 ?screen_chars 23,0,24,10 = "Line 25" 66 ?cursor = 24,0 67RESIZE 24,80 68 sb_pushline 80 = 69 ?screen_chars 22,0,23,10 = "Line 25" 70 ?cursor = 23,0 71 72!Resize shorter does not send the cursor to a negative row 73# See also https://github.com/vim/vim/pull/6141 74RESET 75WANTSCREEN -b 76RESIZE 25,80 77WANTSCREEN b 78PUSH "\e[24HLine 24\r\nLine 25\e[H" 79 ?cursor = 0,0 80RESIZE 20,80 81 sb_pushline 80 = 82 sb_pushline 80 = 83 sb_pushline 80 = 84 sb_pushline 80 = 85 sb_pushline 80 = 86 ?cursor = 0,0 87 88!Resize taller attempts to pop scrollback 89RESET 90WANTSCREEN -b 91RESIZE 25,80 92PUSH "Line 1\e[25HBottom\e[15H" 93 ?screen_chars 0,0,1,80 = "Line 1" 94 ?screen_chars 24,0,25,80 = "Bottom" 95 ?cursor = 14,0 96WANTSCREEN b 97RESIZE 30,80 98 sb_popline 80 99 sb_popline 80 100 sb_popline 80 101 sb_popline 80 102 sb_popline 80 103 ?screen_chars 0,0,1,80 = "ABCDE" 104 ?screen_chars 5,0,6,80 = "Line 1" 105 ?screen_chars 29,0,30,80 = "Bottom" 106 ?cursor = 19,0 107WANTSCREEN -b 108 109!Resize can operate on altscreen 110RESET 111WANTSCREEN a 112RESIZE 25,80 113PUSH "Main screen\e[?1049h\e[HAlt screen" 114RESIZE 30,80 115 ?screen_chars 0,0,1,3 = "Alt" 116PUSH "\e[?1049l" 117 ?screen_chars 0,0,1,3 = "Mai" 118