From 968f4ab4674e2c1ef0f68f72f7f4b11243bf0912 Mon Sep 17 00:00:00 2001 From: chloe caruso Date: Sat, 15 Mar 2025 01:41:32 -0700 Subject: [PATCH] trivial bug fixes --- src/Widget.ts | 4 +++- src/internal.ts | 8 +++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Widget.ts b/src/Widget.ts index c84dc65..185960f 100644 --- a/src/Widget.ts +++ b/src/Widget.ts @@ -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; diff --git a/src/internal.ts b/src/internal.ts index 55d1ebe..3bb59b2 100644 --- a/src/internal.ts +++ b/src/internal.ts @@ -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 = ''; }