Fix a bug introduced by 0dbf9c8c12a5de35d1cef22349ab80e8f0a8f10e
(introduction of term.dirty) which, on change of reverse mode (DECSCNM),
caused only dirty lines to be redrawn with the new mode instead of the
whole screen.
A good test-case is `echo foobar; tput flash`.
---
st.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/st.c b/st.c
index fe44608..8706759 100644
--- a/st.c
+++ b/st.c
@@ -1781,8 +1781,10 @@ tsetmode(bool priv, bool set, int *args, int narg) {
case 5: /* DECSCNM -- Reverse video */
mode = term.mode;
MODBIT(term.mode, set, MODE_REVERSE);
- if(mode != term.mode)
+ if(mode != term.mode) {
+ tfulldirt();
redraw(REDRAW_TIMEOUT);
+ }
break;
case 6: /* DECOM -- Origin */
MODBIT(term.c.state, set, CURSOR_ORIGIN);
--
1.9.2
--
Ivan "Colona" Delalande