summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmadeusz Sławiński <amade@asmblr.net>2011-08-27 16:41:17 +0200
committerAmadeusz Sławiński <amade@asmblr.net>2014-07-24 11:50:46 +0200
commit910d34b3df538faa2f8ef5dc6c3ccb9621d9b9bc (patch)
treec60bde1f8e824724962d42725b41c479cfe8a51c
parent34ab3efc962f78935d94ad9a9957607907ddbf87 (diff)
downloadscreen-910d34b3df538faa2f8ef5dc6c3ccb9621d9b9bc.tar.gz
[screen-devel] [PATCH] Clear scrollback buffer when locking terminal
From: Miroslav Lichvar https://lists.gnu.org/archive/html/screen-devel/2011-07/msg00002.html
-rw-r--r--src/display.c7
-rw-r--r--src/extern.h1
-rw-r--r--src/screen.c1
-rw-r--r--src/term.c1
4 files changed, 9 insertions, 1 deletions
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 },