void-packages/srcpkgs/xbps/patches/0002-xbps-query-8-do-not-tr...

67 lines
1.9 KiB
Diff

From bc97851fdbee84af1eb19a987b9bc08167b8d6f7 Mon Sep 17 00:00:00 2001
From: Juan RP <xtraeme@voidlinux.eu>
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