view src/libvterm/t/22state_save.test @ 34441:84a5cafeb34c v9.1.0140

patch 9.1.0140: cursor on wrong row after 1 char 'below' virtual text when EOL is shown Commit: https://github.com/vim/vim/commit/da0c9137d1ec96f4d79b818502d2f921a21f710e Author: Dylan Thacker-Smith <dylan.ah.smith@gmail.com> Date: Tue Feb 27 20:25:10 2024 +0100 patch 9.1.0140: cursor on wrong row after 1 char 'below' virtual text when EOL is shown Problem: The cursor screen row was incorrectly being calculated when the cursor follows a 1 character text_align 'below' virtual text line, resulting in the cursor being shown on the wrong line. This was caused by a cell size of 2 instead of 1 being used for the EOL character, which propagated to the calculation of space for putting the 'below' virtual text on its own line. (rickhowe) Solution: Fix the size used for the EOL character in calculating the cursor's screen position (Dylan Thacker-Smith) fixes: #11959 related: #12028 closes: #14096 Signed-off-by: Dylan Thacker-Smith <dylan.ah.smith@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Tue, 27 Feb 2024 20:30:03 +0100
parents b8299e742f41
children
line wrap: on
line source

INIT
WANTSTATE p

RESET
  settermprop 1 true
  settermprop 2 true
  settermprop 7 1

!Set up state
PUSH "\e[2;2H"
  ?cursor = 1,1
PUSH "\e[1m"
  ?pen bold = on

!Save
PUSH "\e[?1048h"

!Change state
PUSH "\e[5;5H"
  ?cursor = 4,4
PUSH "\e[4 q"
  settermprop 2 false
  settermprop 7 2
PUSH "\e[22;4m"
  ?pen bold = off
  ?pen underline = 1

!Restore
PUSH "\e[?1048l"
  settermprop 1 true
  settermprop 2 true
  settermprop 7 1
  ?cursor = 1,1
  ?pen bold = on
  ?pen underline = 0

!Save/restore using DECSC/DECRC
PUSH "\e[2;2H\e7"
  ?cursor = 1,1

PUSH "\e[5;5H"
  ?cursor = 4,4
PUSH "\e8"
  settermprop 1 true
  settermprop 2 true
  settermprop 7 1
  ?cursor = 1,1

!Save twice, restore twice happens on both edge transitions
PUSH "\e[2;10H\e[?1048h\e[6;10H\e[?1048h"
PUSH "\e[H"
  ?cursor = 0,0
PUSH "\e[?1048l"
  settermprop 1 true
  settermprop 2 true
  settermprop 7 1
  ?cursor = 5,9
PUSH "\e[H"
  ?cursor = 0,0
PUSH "\e[?1048l"
  settermprop 1 true
  settermprop 2 true
  settermprop 7 1
  ?cursor = 5,9