summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/ttyutils.h35
-rw-r--r--lib/Makemodule.am1
-rw-r--r--lib/ttyutils.c39
3 files changed, 43 insertions, 32 deletions
diff --git a/include/ttyutils.h b/include/ttyutils.h
index 3c40d72a4..0bcae1493 100644
--- a/include/ttyutils.h
+++ b/include/ttyutils.h
@@ -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 */
diff --git a/lib/Makemodule.am b/lib/Makemodule.am
index bfe6471b2..59f89e93e 100644
--- a/lib/Makemodule.am
+++ b/lib/Makemodule.am
@@ -23,6 +23,7 @@ libcommon_la_SOURCES = \
lib/sysfs.c \
lib/tt.c \
lib/wholedisk.c \
+ lib/ttyutils.c \
lib/xgetpass.c
if LINUX
diff --git a/lib/ttyutils.c b/lib/ttyutils.c
new file mode 100644
index 000000000..d37c168ae
--- /dev/null
+++ b/lib/ttyutils.c
@@ -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;
+}
+