X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=progs%2Fclear.c;h=4ac503ed3641570468eac4a4e00bab24ecc74400;hp=b813f0e40635a4fbe10e28d454f7dc95945fbb7e;hb=6434e809cb70f93cc76d0f833e74447e32c99f54;hpb=661078ddbde3ce0f3b06e95642fbb9b5fef7dca1 diff --git a/progs/clear.c b/progs/clear.c index b813f0e4..4ac503ed 100644 --- a/progs/clear.c +++ b/progs/clear.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998 Free Software Foundation, Inc. * + * Copyright (c) 1998-2007,2013 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -29,31 +29,39 @@ /**************************************************************************** * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * ****************************************************************************/ - /* * clear.c -- clears the terminal's screen */ +#define USE_LIBTINFO #include -#include - -MODULE_ID("$Id: clear.c,v 1.7 1998/02/11 12:14:02 tom Exp $") +MODULE_ID("$Id: clear.c,v 1.13 2013/06/22 22:20:54 tom Exp $") -static int putch(int c) +static int +putch(int c) { - return putchar(c); + return putchar(c); } -int main( +int +main( int argc GCC_UNUSED, - char *argv[] GCC_UNUSED) + char *argv[]GCC_UNUSED) { - setupterm((char *) 0, STDOUT_FILENO, (int *) 0); - if (clear_screen == (char *) 0) - return EXIT_FAILURE; - tputs(clear_screen, lines > 0 ? lines : 1, putch); - return EXIT_SUCCESS; + 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) + ? EXIT_FAILURE + : EXIT_SUCCESS); }