/*
* Mini reset implementation for busybox
*
- *
- * Copyright (C) 1999,2000 by Lineo, inc.
- * Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
- * and Kent Robotti <robotti@metconnect.com>
+ * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
+ * Written by Erik Andersen and Kent Robotti <robotti@metconnect.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
*/
-#include "busybox.h"
+/* no options, no getopt */
+
#include <stdio.h>
#include <stdlib.h>
+#include <unistd.h>
+#include "busybox.h"
extern int reset_main(int argc, char **argv)
{
- printf("\033c");
- return EXIT_SUCCESS;
+ if (isatty(1)) {
+ /* See 'man 4 console_codes' for details:
+ * "ESC c" -- Reset
+ * "ESC ( K" -- Select user mapping
+ * "ESC [ J" -- Erase display
+ * "ESC [ 0 m" -- Reset all display attributes
+ * "ESC [ ? 25 h" -- Make cursor visible.
+ */
+ printf("\033c\033(K\033[J\033[0m\033[?25h");
+ }
+ return EXIT_SUCCESS;
}