From 910d34b3df538faa2f8ef5dc6c3ccb9621d9b9bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Amadeusz=20S=C5=82awi=C5=84ski?= Date: Sat, 27 Aug 2011 16:41:17 +0200 Subject: [screen-devel] [PATCH] Clear scrollback buffer when locking terminal From: Miroslav Lichvar https://lists.gnu.org/archive/html/screen-devel/2011-07/msg00002.html --- src/display.c | 7 ++++++- src/extern.h | 1 + src/screen.c | 1 + src/term.c | 1 + 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/display.c b/src/display.c index d22f7fe..c3e9ddb 100644 --- a/src/display.c +++ b/src/display.c @@ -3407,4 +3407,9 @@ RunBlanker(char **cmdv) } - +void +ClearScrollbackBuffer() +{ + if (D_CE3) + AddCStr(D_CE3); +} diff --git a/src/extern.h b/src/extern.h index f6132cd..a833a98 100644 --- a/src/extern.h +++ b/src/extern.h @@ -286,6 +286,7 @@ extern int color256to88 (int); extern void ResetIdle (void); extern void KillBlanker (void); extern void DisplaySleep1000 (int, int); +extern void ClearScrollbackBuffer (void); /* resize.c */ extern int ChangeWindowSize (struct win *, int, int, int); diff --git a/src/screen.c b/src/screen.c index 4906e15..f8d06eb 100644 --- a/src/screen.c +++ b/src/screen.c @@ -1821,6 +1821,7 @@ Detach(int mode) break; case D_LOCK: ClearAll(); + ClearScrollbackBuffer(); sign = SIG_LOCK; /* tell attacher to lock terminal with a lockprg. */ break; diff --git a/src/term.c b/src/term.c index 991de1b..7485900 100644 --- a/src/term.c +++ b/src/term.c @@ -83,6 +83,7 @@ struct term term[T_N] = { "CD", T_STR }, { "ce", T_STR }, { "cb", T_STR }, + { "E3", T_STR }, /* initialise */ { "is", T_STR }, -- cgit v1.2.1