view src/libvterm/t/60screen_ascii.test @ 26841:48d6f187e9c0 v8.2.3949

patch 8.2.3949: using freed memory with /%V Commit: https://github.com/vim/vim/commit/4c13e5e6763c6eb36a343a2b8235ea227202e952 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Dec 30 14:49:43 2021 +0000 patch 8.2.3949: using freed memory with /\%V Problem: Using freed memory with /\%V. Solution: Get the line again after getvvcol().
author Bram Moolenaar <Bram@vim.org>
date Thu, 30 Dec 2021 16:00:05 +0100
parents dc88c690f19b
children 2d2758ffd959
line wrap: on
line source

INIT
WANTSCREEN ac

!Get
RESET
PUSH "ABC"
  movecursor 0,3
  ?screen_chars 0,0,1,3 = "ABC"
  ?screen_chars 0,0,1,80 = "ABC"
  ?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 = "ABC"
  ?screen_text 0,0,1,80 = 0x41,0x42,0x43
PUSH "E"
  movecursor 0,1
  ?screen_chars 0,0,1,80 = "EBC"
  ?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 = "1ABC"

RESET
PUSH "ABC\e[H\e[P"
  ?screen_chars 0,0,1,1 = "B"
  ?screen_chars 0,1,1,2 = "C"
  ?screen_chars 0,0,1,80 = "BC"

!Space padding
RESET
PUSH "Hello\e[CWorld"
  ?screen_chars 0,0,1,80 = "Hello World"
  ?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 = "Hello\nWorld"
  ?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 = "P"
PUSH "\e[?1049h"
  ?screen_chars 0,0,1,80 = 
PUSH "\e[2K\e[HA"
  ?screen_chars 0,0,1,80 = "A"
PUSH "\e[?1049l"
  ?screen_chars 0,0,1,80 = "P"