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 Workervoid 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