lib/ttyutils: create .c file
Well, now all tty stuff are incline functions in include/ttyutils.h. It's seems more elegant to create regular lib/ttyutils.c for libcommon and write test program. Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
parent
6f05970296
commit
4e76adb0e1
|
@ -8,6 +8,9 @@
|
|||
#include <sys/ioctl.h>
|
||||
#endif
|
||||
|
||||
extern int get_terminal_width(void);
|
||||
|
||||
|
||||
#define UL_TTY_KEEPCFLAGS (1 << 1)
|
||||
#define UL_TTY_UTF8 (1 << 2)
|
||||
|
||||
|
@ -79,38 +82,6 @@ static inline void reset_virtual_console(struct termios *tp, int flags)
|
|||
tp->c_cc[VEOL2] = _POSIX_VDISABLE;
|
||||
}
|
||||
|
||||
static inline int get_terminal_width(void)
|
||||
{
|
||||
#ifdef TIOCGSIZE
|
||||
struct ttysize t_win;
|
||||
#endif
|
||||
#ifdef TIOCGWINSZ
|
||||
struct winsize w_win;
|
||||
#endif
|
||||
const char *cp;
|
||||
|
||||
#ifdef TIOCGSIZE
|
||||
if (ioctl (0, TIOCGSIZE, &t_win) == 0)
|
||||
return t_win.ts_cols;
|
||||
#endif
|
||||
#ifdef TIOCGWINSZ
|
||||
if (ioctl (0, TIOCGWINSZ, &w_win) == 0)
|
||||
return w_win.ws_col;
|
||||
#endif
|
||||
cp = getenv("COLUMNS");
|
||||
if (cp) {
|
||||
char *end = NULL;
|
||||
long c;
|
||||
|
||||
errno = 0;
|
||||
c = strtol(cp, &end, 10);
|
||||
|
||||
if (errno == 0 && end && *end == '\0' && end > cp &&
|
||||
c > 0 && c <= INT_MAX)
|
||||
return c;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
#endif /* UTIL_LINUX_TTYUTILS_H */
|
||||
|
|
|
@ -23,6 +23,7 @@ libcommon_la_SOURCES = \
|
|||
lib/sysfs.c \
|
||||
lib/tt.c \
|
||||
lib/wholedisk.c \
|
||||
lib/ttyutils.c \
|
||||
lib/xgetpass.c
|
||||
|
||||
if LINUX
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
|
||||
#include <ctype.h>
|
||||
|
||||
#include "c.h"
|
||||
#include "ttyutils.h"
|
||||
|
||||
int get_terminal_width(void)
|
||||
{
|
||||
#ifdef TIOCGSIZE
|
||||
struct ttysize t_win;
|
||||
#endif
|
||||
#ifdef TIOCGWINSZ
|
||||
struct winsize w_win;
|
||||
#endif
|
||||
const char *cp;
|
||||
|
||||
#ifdef TIOCGSIZE
|
||||
if (ioctl (0, TIOCGSIZE, &t_win) == 0)
|
||||
return t_win.ts_cols;
|
||||
#endif
|
||||
#ifdef TIOCGWINSZ
|
||||
if (ioctl (0, TIOCGWINSZ, &w_win) == 0)
|
||||
return w_win.ws_col;
|
||||
#endif
|
||||
cp = getenv("COLUMNS");
|
||||
if (cp) {
|
||||
char *end = NULL;
|
||||
long c;
|
||||
|
||||
errno = 0;
|
||||
c = strtol(cp, &end, 10);
|
||||
|
||||
if (errno == 0 && end && *end == '\0' && end > cp &&
|
||||
c > 0 && c <= INT_MAX)
|
||||
return c;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue