-
-int set_tty_raw(int fd, struct termios *termios_prev)
-{
- struct termios tmio;
-
- int ret = tcgetattr(fd, &tmio);
- if(ret) {
- fprintf(stderr, "Error on tcgetattr(): %s\n", strerror(errno));
- return ret;
- }
-
- memcpy(termios_prev, &tmio,sizeof(struct termios));
-
- cfmakeraw(&tmio);
-
- ret = tcsetattr(fd, TCSANOW, &tmio);
- if(ret) {
- fprintf(stderr, "Error on tcsetattr(): %s\n", strerror(errno));
- return ret;
- }
-
- fcntl(STDIN_FILENO, F_SETFL, O_NONBLOCK);
-
- return 0;
-}
-
-int restore_tty(int fd, struct termios *termios_prev)
-{
- int ret = tcsetattr(fd, TCSANOW, termios_prev);
- if(ret) {
- fprintf(stderr, "Error on tcsetattr(): %s\n", strerror(errno));
- }
- return ret;
-}
-