- setupterm((char *) 0, STDOUT_FILENO, (int *) 0);
- return (tputs(clear_screen, lines > 0 ? lines : 1, putch) == ERR)
+ char *E3;
+
+ setupterm((char *) 0, STDOUT_FILENO, (int *) 0);
+
+ /* Clear the scrollback buffer if possible. */
+ E3 = tigetstr("E3");
+ if (E3)
+ (void) tputs(E3, lines > 0 ? lines : 1, putch);
+
+ ExitProgram((tputs(clear_screen, lines > 0 ? lines : 1, putch) == ERR)