From afacda98e4b4fa6aaa905043164f81e0ce5e2912 Mon Sep 17 00:00:00 2001 From: Keith Winstein Date: Sat, 25 Feb 2012 23:08:56 -0500 Subject: [PATCH] Fix propagation of "unknown" last column on emacs and emacs-like delete --- src/frontend/terminaloverlay.cc | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/src/frontend/terminaloverlay.cc b/src/frontend/terminaloverlay.cc index 35bd715..2e6b2c1 100644 --- a/src/frontend/terminaloverlay.cc +++ b/src/frontend/terminaloverlay.cc @@ -63,7 +63,8 @@ void ConditionalOverlayCell::apply( Framebuffer &fb, uint64_t confirmed_epoch, i } Validity ConditionalOverlayCell::get_validity( const Framebuffer &fb, int row, - uint64_t early_ack, uint64_t late_ack ) const + uint64_t early_ack __attribute__((unused)), + uint64_t late_ack ) const { if ( !active ) { return Inactive; @@ -74,18 +75,14 @@ Validity ConditionalOverlayCell::get_validity( const Framebuffer &fb, int row, return IncorrectOrExpired; } - if ( unknown ) { - return CorrectNoCredit; - } - const Cell ¤t = *( fb.get_cell( row, col ) ); /* see if it hasn't been updated yet */ - if ( early_ack < expiration_frame ) { - return Pending; - } - if ( late_ack >= expiration_frame ) { + if ( unknown ) { + return CorrectNoCredit; + } + if ( (current.contents == replacement.contents) || (current.is_blank() && replacement.is_blank()) ) { BOOST_AUTO( it, find_if( original_contents.begin(), original_contents.end(), @@ -104,7 +101,9 @@ Validity ConditionalOverlayCell::get_validity( const Framebuffer &fb, int row, return Pending; } -Validity ConditionalCursorMove::get_validity( const Framebuffer &fb, uint64_t early_ack, uint64_t late_ack ) const +Validity ConditionalCursorMove::get_validity( const Framebuffer &fb, + uint64_t early_ack __attribute((unused)), + uint64_t late_ack ) const { if ( !active ) { return Inactive; @@ -117,10 +116,6 @@ Validity ConditionalCursorMove::get_validity( const Framebuffer &fb, uint64_t ea return IncorrectOrExpired; } - if ( early_ack < expiration_frame ) { - return Pending; - } - if ( late_ack >= expiration_frame ) { if ( (fb.ds.get_cursor_col() == col) && (fb.ds.get_cursor_row() == row) ) {