1
0
Fork 0
mirror of https://github.com/alacritty/alacritty.git synced 2025-11-06 22:44:18 -05:00

Fix out of order terminal query responses

This forces all responses made to the PTY through the indirection of the
UI event loop, making sure that the writes to the PTY are in the same
order as the original requests.

This just delays all escape sequences by forcing them through the event
loop, ideally all responses which are not asynchronous (like a clipboard
read) would be made immediately. However since some escapes require
feedback from the UI to mutable structures like the config (e.g. color
query escapes), this would require additional locking.

Fixes #4872.
This commit is contained in:
Christian Duerr 2021-04-17 23:20:13 +00:00 committed by GitHub
parent a312e41595
commit 28abb1f9c7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 64 additions and 67 deletions

View file

@ -2,7 +2,7 @@ use serde::Deserialize;
use serde_json as json;
use std::fs::{self, File};
use std::io::{self, Read};
use std::io::Read;
use std::path::Path;
use alacritty_terminal::ansi;
@ -108,7 +108,7 @@ fn ref_test(dir: &Path) {
let mut parser = ansi::Processor::new();
for byte in recording {
parser.advance(&mut terminal, byte, &mut io::sink());
parser.advance(&mut terminal, byte);
}
// Truncate invisible lines from the grid.