aboutsummaryrefslogtreecommitdiff
path: root/console-tools/reset.c
diff options
context:
space:
mode:
Diffstat (limited to 'console-tools/reset.c')
-rw-r--r--console-tools/reset.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/console-tools/reset.c b/console-tools/reset.c
index a3f01aab0..3f9ae984d 100644
--- a/console-tools/reset.c
+++ b/console-tools/reset.c
@@ -25,11 +25,21 @@
#include <stdio.h>
#include <stdlib.h>
+#include <unistd.h>
#include "busybox.h"
extern int reset_main(int argc, char **argv)
{
- printf("\033[?25h\033c\033[J");
+ if (isatty(0) || isatty(0) || isatty(0)) {
+ /* See 'man 4 console_codes' for details:
+ * "ESC c" -- Reset
+ * "ESC ( K" -- Select user mapping
+ * "ESC [ J" -- Erase display
+ * "ESC [ 0 m" -- Reset all Graphics Rendition display attributes
+ * "ESC [ ? 25 h" -- Make cursor visible.
+ */
+ printf("\033c\033(K\033[J\033[0m\033[?25h");
+ }
return EXIT_SUCCESS;
}