-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Question: xterm.js 4.0+ handling of EL when cursor is in deferred EOL position #2979
Comments
@jerch thoughts? |
Imho thats a result of the cursor restriction code made in #2288, which was needed to get several cursor misplacements fixed. What happens under the hood is roughly:
I came to that way of handling things after some serious testing against xterm behavior with our sequence files, so yes it should be in line with what xterm does (hopefully). But whether this is an error or intended behavior - tbh I dont know. Following the old DEC standard our 4+ way seems to be what DEC did here too: // taken from DEC 070 STD
case 0:
for (x=active_position.column; // here: start from current cursor pos
x <= end_of_line(line); x++)
{
if (display[line][x].attribute.selective_erase) // we dont support that cell attribute
display[line][x].code = 32; /* Space */
}
break; I admit, that this way is semantically flawed, but it seems to be what was done in the old devices. Also there are more awkwardities around the content of the last cell in a line and the cursor handling there for other commands. Edit: |
Details
Steps to reproduce
Print 80 characters in an 80x25 terminal, then emit an EL. What should happen?
Result <= 3.15
Result >= 4.0
This manifests in VSCode 1.46 with the new console host changes in Windows 21H1 as buffer corruption when running Windows VIM.
I'm not certain this is a bug, exactly, but it does present an interesting conundrum.
8
but leaves the~
on the next line)The text was updated successfully, but these errors were encountered: