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; }