view src/libvterm/t/60screen_ascii.test @ 30304:f1fe59179180 v9.0.0488

patch 9.0.0488: cursor wrong with virtual text "above" and 'showbreak' Commit: https://github.com/vim/vim/commit/4c7fd4d68f69b4e420a5448f144f4d57eda22f8c Author: Bram Moolenaar <Bram@vim.org> Date: Sat Sep 17 17:15:33 2022 +0100 patch 9.0.0488: cursor wrong with virtual text "above" and 'showbreak' Problem: Cursor in wrong position with virtual text "above" and 'showbreak'. Solution: Take the first character column into account. (closes #11149)
author Bram Moolenaar <Bram@vim.org>
date Sat, 17 Sep 2022 18:30:04 +0200
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"