From bc97851fdbee84af1eb19a987b9bc08167b8d6f7 Mon Sep 17 00:00:00 2001 From: Juan RP Date: Wed, 15 Apr 2015 18:40:34 +0200 Subject: [PATCH] xbps-query(8): do not truncate output if stdout is not a tty. --- NEWS | 4 ++++ bin/xbps-install/util.c | 14 ++++++++++---- bin/xbps-query/list.c | 2 +- bin/xbps-query/search.c | 2 +- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/bin/xbps-install/util.c b/bin/xbps-install/util.c index 1ce45d8..3c05738 100644 --- bin/xbps-install/util.c +++ bin/xbps-install/util.c @@ -41,10 +41,16 @@ get_maxcols(void) { struct winsize ws; - if (ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws) == 0) - return ws.ws_col ? ws.ws_col : 80; - - return 80; + if (!isatty(STDOUT_FILENO) && errno == ENOTTY) { + /* not a TTY, don't use any limit */ + return 0; + } + if (ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws) == -1) { + /* 80x24 terminal */ + return 80; + } + /* TTY columns */ + return ws.ws_col; } void diff --git a/bin/xbps-query/list.c b/bin/xbps-query/list.c index 45e0f07..542b870 100644 --- bin/xbps-query/list.c +++ bin/xbps-query/list.c @@ -72,7 +72,7 @@ list_pkgs_in_dict(struct xbps_handle *xhp _unused, tmp[i] = '\0'; len = strlen(tmp) + strlen(short_desc) + 2; - if (len > lpc->maxcols) { + if (lpc->maxcols && len > lpc->maxcols) { out = malloc(lpc->maxcols+1); assert(out); snprintf(out, lpc->maxcols - 3, diff --git a/bin/xbps-query/search.c b/bin/xbps-query/search.c index c41ef5e..c07f84c 100644 --- bin/xbps-query/search.c +++ bin/xbps-query/search.c @@ -80,7 +80,7 @@ print_results(struct xbps_handle *xhp, struct search_data *sd) inststr = "[-]"; len = strlen(inststr) + strlen(tmp) + strlen(desc) + 3; - if ((int)len > sd->maxcols) { + if (sd->maxcols && (int)len > sd->maxcols) { out = malloc(sd->maxcols+1); assert(out); snprintf(out, sd->maxcols-3, "%s %s %s", -- 2.3.5