Scripts that parse pacman's output (like pacsearch) generally do not
want wrapped lines.

Signed-off-by: Andrew Gregory <[email protected]>
---
 src/pacman/util.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/pacman/util.c b/src/pacman/util.c
index 6a095fd..de103b6 100644
--- a/src/pacman/util.c
+++ b/src/pacman/util.c
@@ -46,7 +46,7 @@
 #include "conf.h"
 #include "callback.h"
 
-static int cached_columns = 0;
+static int cached_columns = -1;
 
 struct table_cell_t {
        char *label;
@@ -158,7 +158,7 @@ static int flush_term_input(int fd)
 
 void columns_cache_reset(void)
 {
-       cached_columns = 0;
+       cached_columns = -1;
 }
 
 static int getcols_fd(int fd)
@@ -189,10 +189,15 @@ unsigned short getcols(void)
        const char *e;
        int c = 0;
 
-       if(cached_columns > 0) {
+       if(cached_columns >= 0) {
                return cached_columns;
        }
 
+       if(!isatty(STDOUT_FILENO)) {
+               cached_columns = 0;
+               return 0;
+       }
+
        e = getenv("COLUMNS");
        if(e) {
                c = strtol(e, NULL, 10);
-- 
2.0.1

Reply via email to