trivial bug fixes

This commit is contained in:
chloe caruso 2025-03-15 01:41:32 -07:00
parent b744837ea6
commit 968f4ab467
2 changed files with 10 additions and 2 deletions

View file

@ -113,7 +113,9 @@ export abstract class Widget {
export function redrawWidgetsSoon() {
if (widgetLineCount) {
writeToStderr(
ansi.eraseLine + (ansi.cursorUp(1) + ansi.eraseLine).repeat(widgetLineCount) + '\r'
'\u001B[?2026h' +
ansi.eraseLine + (ansi.cursorUp(1) + ansi.eraseLine).repeat(widgetLineCount) + '\r',
true,
);
widgetLineCount = 0;
redrawingThisTick = true;

View file

@ -40,15 +40,21 @@ export function stringify(...data: any[]) {
}
let buffer = '';
let bufferNeedsUnfreeze = false;
let exiting = false;
export function writeToStderr(data: string) {
export function writeToStderr(data: string, needsUnfreeze = false) {
buffer += data;
if (exiting) flushStderr();
if (needsUnfreeze) bufferNeedsUnfreeze = true;
}
export function flushStderr() {
if (buffer) {
if (bufferNeedsUnfreeze) {
buffer += '\u001B[?2026l';
bufferNeedsUnfreeze = false;
}
writeSync(2, buffer);
buffer = '';
}