From ac16f9127c134d0a9dab5b5187e4aeff89240bf8 Mon Sep 17 00:00:00 2001 From: Keith Winstein Date: Sat, 10 Mar 2012 04:30:04 -0500 Subject: [PATCH] Output EL (erase line) when possible --- src/terminal/terminaldisplay.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/terminal/terminaldisplay.cc b/src/terminal/terminaldisplay.cc index cce71a4..d30d479 100644 --- a/src/terminal/terminaldisplay.cc +++ b/src/terminal/terminaldisplay.cc @@ -237,10 +237,15 @@ void Display::put_cell( bool initialized, FrameState &frame, const Framebuffer & break; } } - snprintf( tmp, 64, "\033[%dX", clear_count ); - frame.append( tmp ); frame.x += clear_count; + if ( frame.x >= f.ds.get_width() ) { + snprintf( tmp, 64, "\033[K" ); + } else { + snprintf( tmp, 64, "\033[%dX", clear_count ); + } + frame.append( tmp ); + return; }