summaryrefslogtreecommitdiffstats
path: root/text-utils/column.c
diff options
context:
space:
mode:
authorKarel Zak2012-05-15 17:46:20 +0200
committerKarel Zak2012-05-15 17:46:20 +0200
commit3b56eea7c99589bd6b80576de9ce185fee5cd7d2 (patch)
tree5cc4146f1944c945068bdfbc17e536367b46de7f /text-utils/column.c
parentterm-utils: cleanup strtoxx_or_err() (diff)
downloadkernel-qcow2-util-linux-3b56eea7c99589bd6b80576de9ce185fee5cd7d2.tar.gz
kernel-qcow2-util-linux-3b56eea7c99589bd6b80576de9ce185fee5cd7d2.tar.xz
kernel-qcow2-util-linux-3b56eea7c99589bd6b80576de9ce185fee5cd7d2.zip
text-utils: cleanup strtoxx_or_err()
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'text-utils/column.c')
-rw-r--r--text-utils/column.c24
1 files changed, 7 insertions, 17 deletions
diff --git a/text-utils/column.c b/text-utils/column.c
index b210a9381..aab9187ea 100644
--- a/text-utils/column.c
+++ b/text-utils/column.c
@@ -42,20 +42,20 @@
#include <sys/ioctl.h>
#include <ctype.h>
-#include <limits.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <getopt.h>
-#include "nls.h"
+#include "nls.h"
#include "widechar.h"
#include "c.h"
#include "xalloc.h"
#include "strutils.h"
#include "closestream.h"
+#include "ttyutils.h"
#ifdef HAVE_WIDECHAR
#define wcs_width(s) wcswidth(s,wcslen(s))
@@ -105,10 +105,9 @@ static void __attribute__((__noreturn__)) usage(int rc)
int main(int argc, char **argv)
{
- struct winsize win;
int ch, tflag = 0, xflag = 0;
int i;
- long termwidth = 80;
+ int termwidth = 80;
int entries = 0; /* number of records */
unsigned int eval = 0; /* exit value */
int maxlength = 0; /* longest record */
@@ -134,14 +133,9 @@ int main(int argc, char **argv)
textdomain(PACKAGE);
atexit(close_stdout);
- if (ioctl(STDIN_FILENO, TIOCGWINSZ, &win) == -1 || !win.ws_col) {
- char *p;
-
- if ((p = getenv("COLUMNS")) != NULL)
- termwidth = strtol_or_err(p,
- _("terminal environment COLUMNS failed"));
- } else
- termwidth = win.ws_col;
+ termwidth = get_terminal_width();
+ if (termwidth <= 0)
+ termwidth = 80;
while ((ch = getopt_long(argc, argv, "hVc:s:tx", longopts, NULL)) != -1)
switch(ch) {
@@ -153,11 +147,7 @@ int main(int argc, char **argv)
PACKAGE_STRING);
return EXIT_SUCCESS;
case 'c':
- termwidth = strtol_or_err(optarg,
- _("bad columns width value"));
- if (termwidth < 1)
- errx(EXIT_FAILURE,
- _("-%c positive integer expected as an argument"), ch);
+ termwidth = strtou32_or_err(optarg, _("invalid columns argument"));
break;
case 's':
separator = mbs_to_wcs(optarg);