xbps{,-static}: merge patch for xbps-query(8) output truncation.

This commit is contained in:
Juan RP 2015-04-15 18:47:14 +02:00
parent 541635c675
commit 8da16812f1
3 changed files with 68 additions and 2 deletions

View file

@ -3,7 +3,7 @@
# NOTE: keep this package synchronized with "srcpkgs/xbps".
pkgname=xbps-static
version=0.44.1
revision=2
revision=3
build_style=configure
short_desc="The XBPS package system utilities - static binaries"
maintainer="Juan RP <xtraeme@voidlinux.eu>"

View file

@ -0,0 +1,66 @@
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

View file

@ -1,7 +1,7 @@
# Template file for 'xbps'
pkgname=xbps
version=0.44.1
revision=2
revision=3
bootstrap=yes
build_style=configure
short_desc="The XBPS package system utilities"