From aa0f968860be513164bf41dfd4107a1bb37344b8 Mon Sep 17 00:00:00 2001 From: Boris Faure Date: Fri, 12 Oct 2018 20:17:50 +0200 Subject: [PATCH] termpty: soft reset should only reset attributes --- src/bin/termptyesc.c | 2 +- src/bin/termptyops.c | 14 ++++++++++---- src/bin/termptyops.h | 1 + 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/bin/termptyesc.c b/src/bin/termptyesc.c index ee9aa985..fc0afca7 100644 --- a/src/bin/termptyesc.c +++ b/src/bin/termptyesc.c @@ -1629,7 +1629,7 @@ HVP: if (b && *b == '!') { DBG("soft reset (DECSTR)"); - termpty_reset_state(ty); + termpty_soft_reset_state(ty); } else { diff --git a/src/bin/termptyops.c b/src/bin/termptyops.c index dc66add0..a2e14238 100644 --- a/src/bin/termptyops.c +++ b/src/bin/termptyops.c @@ -424,7 +424,7 @@ termpty_reset_att(Termatt *att) } void -termpty_reset_state(Termpty *ty) +termpty_soft_reset_state(Termpty *ty) { int i; Config *config = NULL; @@ -432,8 +432,6 @@ termpty_reset_state(Termpty *ty) if (ty->obj) config = termio_config_get(ty->obj); - ty->cursor_state.cx = 0; - ty->cursor_state.cy = 0; ty->termstate.top_margin = 0; ty->termstate.bottom_margin = 0; ty->termstate.left_margin = 0; @@ -465,7 +463,6 @@ termpty_reset_state(Termpty *ty) ty->mouse_ext = MOUSE_EXT_NONE; ty->bracketed_paste = 0; - termpty_clear_backlog(ty); termpty_clear_tabs_on_screen(ty); for (i = 0; i < ty->w; i += TAB_WIDTH) { @@ -475,6 +472,15 @@ termpty_reset_state(Termpty *ty) termio_set_cursor_shape(ty->obj, config->cursor_shape); } +void +termpty_reset_state(Termpty *ty) +{ + termpty_soft_reset_state(ty); + ty->cursor_state.cx = 0; + ty->cursor_state.cy = 0; + termpty_clear_backlog(ty); +} + void termpty_cursor_copy(Termpty *ty, Eina_Bool save) { diff --git a/src/bin/termptyops.h b/src/bin/termptyops.h index ee278609..48cbc0aa 100644 --- a/src/bin/termptyops.h +++ b/src/bin/termptyops.h @@ -24,6 +24,7 @@ void termpty_clear_screen(Termpty *ty, Termpty_Clear mode); void termpty_clear_all(Termpty *ty); void termpty_reset_att(Termatt *att); void termpty_reset_state(Termpty *ty); +void termpty_soft_reset_state(Termpty *ty); void termpty_cursor_copy(Termpty *ty, Eina_Bool save); void termpty_clear_tabs_on_screen(Termpty *ty); void termpty_clear_backlog(Termpty *ty);