summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarel Zak <kzak@redhat.com>2012-11-22 14:26:41 +0100
committerKarel Zak <kzak@redhat.com>2012-11-22 14:26:41 +0100
commit4e76adb0e1aed7b8a094d26adcef793b51ce252b (patch)
tree29730e24ef5102f911a755bee0750b91e40e6071
parent6f059702964a418a0940e742ce364e5673c258b2 (diff)
downloadutil-linux-4e76adb0e1aed7b8a094d26adcef793b51ce252b.tar.gz
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>
-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 3c40d72a..0bcae149 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 bfe6471b..59f89e93 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 00000000..d37c168a
--- /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;
+}
+