You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Port from XCTest to Swift Test, new tests, lots of fixes.
First, this is a port from XCTest to Swift Test, but once I started using this in parallel
mode various crashes would show up, which turned out to be that CharData was not
thread-safe as it had shared static state. So I made this code thread safe, so now you
can run various Headless terminals (for tests or whatever you want in multiple threads).
This did change the API for CharData and how it is consumed, rather than having
CharData own these static tables, the tables are owned by the Terminal, which
means that you no longer create CharData() yourself, you have to create them
and update them via the Terminal API.
Second, we now have various tests imported from Ghostty, just to
give me more peace of mind, they uncovered a couple of parsing
limitations on extended color parsing, and it now uses colon separator
counts to distinguish colorspace and non-colorspace ones
Then ported some Xterm.js tests, in particular the reflow ones, after
someone had mentioned they struggled with Reflow and some Claude
agent, but never got any details - but this test showed that we had an
issue, with wide‑char reflow behavior, adjusted to match the xterm.js tests,
fixed the trimmed length math, wide‑char placeholders, and cleanup during
unwrap.
The above regressed the nice work on wcwidth that took place in main, so
also fixed that regression, since we are now using the new CharData API, we have
to use getCharacter(for:) for the VS base check so combined graphemes
so they do not get treated as invalid scalars in Terminal.
No regressions on ucs-detect, which makes me very happy.
0 commit comments