Blob Blame History Raw
diff --git a/display.c b/display.c
index b11b18b..180f19c 100644
--- a/display.c
+++ b/display.c
@@ -3818,4 +3818,10 @@ char **cmdv;
 
 #endif /* BLANKER_PRG */
 
+void
+ClearScrollbackBuffer()
+{
+  if (D_CE3)
+    AddCStr(D_CE3);
+}
 
diff --git a/extern.h b/extern.h
index 7966008..e1ec242 100644
--- a/extern.h
+++ b/extern.h
@@ -316,6 +316,7 @@ extern int   color256to88 __P((int));
 extern void  ResetIdle __P((void));
 extern void  KillBlanker __P((void));
 extern void  DisplaySleep1000 __P((int, int));
+extern void  ClearScrollbackBuffer __P((void));
 
 /* resize.c */
 extern int   ChangeWindowSize __P((struct win *, int, int, int));
diff --git a/screen.c b/screen.c
index 64650e9..c68d949 100644
--- a/screen.c
+++ b/screen.c
@@ -1958,6 +1958,7 @@ void Detach(int mode)
 
     case D_LOCK:
       ClearAll();
+      ClearScrollbackBuffer();
       sign = SIG_LOCK;
       /* tell attacher to lock terminal with a lockprg. */
       break;
diff --git a/term.c b/term.c
index c92d85a..a6e9200 100644
--- a/term.c
+++ b/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  },