aboutsummaryrefslogtreecommitdiff
path: root/toys/pending
diff options
context:
space:
mode:
Diffstat (limited to 'toys/pending')
-rw-r--r--toys/pending/reset.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/toys/pending/reset.c b/toys/pending/reset.c
new file mode 100644
index 00000000..a12f0b61
--- /dev/null
+++ b/toys/pending/reset.c
@@ -0,0 +1,34 @@
+/* reset.c - A program to reset the terminal.
+ *
+ * Copyright 2014 Ashwini Kumar <ak.ashwini@gmail.com>
+ * Copyright 2014 Kyungwan Han <asura321@gmail.com>
+ *
+ * No Standard.
+
+USE_RESET(NEWTOY(reset, NULL, TOYFLAG_USR|TOYFLAG_BIN))
+
+config RESET
+ bool "reset"
+ default n
+ help
+ usage: reset
+
+ A program to reset the terminal.
+*/
+#define FOR_reset
+#include "toys.h"
+
+void reset_main(void)
+{
+ char *args[] = {"stty", "sane", NULL};
+
+ /* \033c - reset the terminal with default setting
+ * \033(B - set the G0 character set (B=US)
+ * \033[2J - clear the whole screen
+ * \033[0m - Reset all attributes
+ */
+ if (isatty(1)) xprintf("\033c\033(B\033[0m\033[J\033[?25h");
+ fflush(stdout);
+ // set the terminal to sane settings
+ xexec(args);
+}