xref: /aosp_15_r20/external/toybox/toys/other/reset.c (revision cf5a6c84e2b8763fc1a7db14496fd4742913b199)
1*cf5a6c84SAndroid Build Coastguard Worker /* reset.c - reset the terminal.
2*cf5a6c84SAndroid Build Coastguard Worker  *
3*cf5a6c84SAndroid Build Coastguard Worker  * Copyright 2015 Rob Landley <[email protected]>
4*cf5a6c84SAndroid Build Coastguard Worker  *
5*cf5a6c84SAndroid Build Coastguard Worker  * No standard.
6*cf5a6c84SAndroid Build Coastguard Worker  *
7*cf5a6c84SAndroid Build Coastguard Worker  * In 1979 3BSD's tset had a sleep(1) to let mechanical printer-and-ink
8*cf5a6c84SAndroid Build Coastguard Worker  * terminals "settle down". We're not doing that.
9*cf5a6c84SAndroid Build Coastguard Worker 
10*cf5a6c84SAndroid Build Coastguard Worker USE_RESET(NEWTOY(reset, 0, TOYFLAG_USR|TOYFLAG_BIN))
11*cf5a6c84SAndroid Build Coastguard Worker 
12*cf5a6c84SAndroid Build Coastguard Worker config RESET
13*cf5a6c84SAndroid Build Coastguard Worker   bool "reset"
14*cf5a6c84SAndroid Build Coastguard Worker   default y
15*cf5a6c84SAndroid Build Coastguard Worker   help
16*cf5a6c84SAndroid Build Coastguard Worker     usage: reset
17*cf5a6c84SAndroid Build Coastguard Worker 
18*cf5a6c84SAndroid Build Coastguard Worker     Reset the terminal.
19*cf5a6c84SAndroid Build Coastguard Worker */
20*cf5a6c84SAndroid Build Coastguard Worker #include "toys.h"
21*cf5a6c84SAndroid Build Coastguard Worker 
reset_main(void)22*cf5a6c84SAndroid Build Coastguard Worker void reset_main(void)
23*cf5a6c84SAndroid Build Coastguard Worker {
24*cf5a6c84SAndroid Build Coastguard Worker   int fd = tty_fd();
25*cf5a6c84SAndroid Build Coastguard Worker 
26*cf5a6c84SAndroid Build Coastguard Worker   // man 4 console_codes: reset terminal is ESC (no left bracket) c
27*cf5a6c84SAndroid Build Coastguard Worker   // DEC private mode set enable wraparound sequence.
28*cf5a6c84SAndroid Build Coastguard Worker   if (fd<0) fd = 1;
29*cf5a6c84SAndroid Build Coastguard Worker   xwrite(fd, "\ec\e[?7h", 2);
30*cf5a6c84SAndroid Build Coastguard Worker   set_terminal(fd, 0, 0, 0);
31*cf5a6c84SAndroid Build Coastguard Worker }
32