diff options
Diffstat (limited to 'libblkid/ttyutils.h')
-rw-r--r-- | libblkid/ttyutils.h | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/libblkid/ttyutils.h b/libblkid/ttyutils.h deleted file mode 100644 index 021156d3e..000000000 --- a/libblkid/ttyutils.h +++ /dev/null @@ -1,126 +0,0 @@ -/* - * No copyright is claimed. This code is in the public domain; do with - * it what you wish. - * - * Written by Karel Zak <kzak@redhat.com> - */ -#ifndef UTIL_LINUX_TTYUTILS_H -#define UTIL_LINUX_TTYUTILS_H - -#include <stdlib.h> -#include <termios.h> -#include <limits.h> -#ifdef HAVE_SYS_IOCTL_H -#include <sys/ioctl.h> -#endif - -/* Some shorthands for control characters. */ -#define CTL(x) ((x) ^ 0100) /* Assumes ASCII dialect */ -#define CR CTL('M') /* carriage return */ -#define NL CTL('J') /* line feed */ -#define BS CTL('H') /* back space */ -#define DEL CTL('?') /* delete */ - -/* Defaults for line-editing etc. characters; you may want to change these. */ -#define DEF_ERASE DEL /* default erase character */ -#define DEF_INTR CTL('C') /* default interrupt character */ -#define DEF_QUIT CTL('\\') /* default quit char */ -#define DEF_KILL CTL('U') /* default kill char */ -#define DEF_EOF CTL('D') /* default EOF char */ -#define DEF_EOL 0 -#define DEF_SWITCH 0 /* default switch char */ - -/* Storage for things detected while the login name was read. */ -struct chardata { - int erase; /* erase character */ - int kill; /* kill character */ - int eol; /* end-of-line character */ - int parity; /* what parity did we see */ - int capslock; /* upper case without lower case */ -}; - -#define INIT_CHARDATA(ptr) do { \ - (ptr)->erase = DEF_ERASE; \ - (ptr)->kill = DEF_KILL; \ - (ptr)->eol = CTRL('r'); \ - (ptr)->parity = 0; \ - (ptr)->capslock = 0; \ - } while (0) - -extern int get_terminal_width(void); -extern int get_terminal_name(const char **path, const char **name, const char **number); - -#define UL_TTY_KEEPCFLAGS (1 << 1) -#define UL_TTY_UTF8 (1 << 2) - -static inline void reset_virtual_console(struct termios *tp, int flags) -{ - /* Use defaults of <sys/ttydefaults.h> for base settings */ - tp->c_iflag |= TTYDEF_IFLAG; - tp->c_oflag |= TTYDEF_OFLAG; - tp->c_lflag |= TTYDEF_LFLAG; - - if ((flags & UL_TTY_KEEPCFLAGS) == 0) { -#ifdef CBAUD - tp->c_lflag &= ~CBAUD; -#endif - tp->c_cflag |= (B38400 | TTYDEF_CFLAG); - } - - /* Sane setting, allow eight bit characters, no carriage return delay - * the same result as `stty sane cr0 pass8' - */ - tp->c_iflag |= (BRKINT | ICRNL | IMAXBEL); - tp->c_iflag &= ~(IGNBRK | INLCR | IGNCR | IXOFF | IUCLC | IXANY | ISTRIP); - tp->c_oflag |= (OPOST | ONLCR | NL0 | CR0 | TAB0 | BS0 | VT0 | FF0); - tp->c_oflag &= ~(OLCUC | OCRNL | ONOCR | ONLRET | OFILL | \ - NLDLY|CRDLY|TABDLY|BSDLY|VTDLY|FFDLY); - tp->c_lflag |= (ISIG | ICANON | IEXTEN | ECHO|ECHOE|ECHOK|ECHOKE); - tp->c_lflag &= ~(ECHONL|ECHOCTL|ECHOPRT | NOFLSH | TOSTOP); - - if ((flags & UL_TTY_KEEPCFLAGS) == 0) { - tp->c_cflag |= (CREAD | CS8 | HUPCL); - tp->c_cflag &= ~(PARODD | PARENB); - } -#ifdef OFDEL - tp->c_oflag &= ~OFDEL; -#endif -#ifdef XCASE - tp->c_lflag &= ~XCASE; -#endif -#ifdef IUTF8 - if (flags & UL_TTY_UTF8) - tp->c_iflag |= IUTF8; /* Set UTF-8 input flag */ - else - tp->c_iflag &= ~IUTF8; -#endif - /* VTIME and VMIN can overlap with VEOF and VEOL since they are - * only used for non-canonical mode. We just set the at the - * beginning, so nothing bad should happen. - */ - tp->c_cc[VTIME] = 0; - tp->c_cc[VMIN] = 1; - tp->c_cc[VINTR] = CINTR; - tp->c_cc[VQUIT] = CQUIT; - tp->c_cc[VERASE] = CERASE; /* ASCII DEL (0177) */ - tp->c_cc[VKILL] = CKILL; - tp->c_cc[VEOF] = CEOF; -#ifdef VSWTC - tp->c_cc[VSWTC] = _POSIX_VDISABLE; -#elif defined(VSWTCH) - tp->c_cc[VSWTCH] = _POSIX_VDISABLE; -#endif - tp->c_cc[VSTART] = CSTART; - tp->c_cc[VSTOP] = CSTOP; - tp->c_cc[VSUSP] = CSUSP; - tp->c_cc[VEOL] = _POSIX_VDISABLE; - tp->c_cc[VREPRINT] = CREPRINT; - tp->c_cc[VDISCARD] = CDISCARD; - tp->c_cc[VWERASE] = CWERASE; - tp->c_cc[VLNEXT] = CLNEXT; - tp->c_cc[VEOL2] = _POSIX_VDISABLE; -} - - - -#endif /* UTIL_LINUX_TTYUTILS_H */ |