chiark / gitweb /
util: Fix signedness error in lines(), match implementations
authorColin Walters <walters@verbum.org>
Thu, 1 Jan 2015 19:57:08 +0000 (14:57 -0500)
committerLennart Poettering <lennart@poettering.net>
Mon, 5 Jan 2015 02:05:15 +0000 (03:05 +0100)
Regression introduced by ed757c0cb03eef50e8d9aeb4682401c3e9486f0b

Mirror the implementation of columns(), since the fd_columns()
functions returns a negative integer for errors.

Also fix columns() to return the unsigned variable instead of the
signed intermediary (they're the same, but better to be explicit).

src/shared/util.c

index dfaf7f7f45b07416bcd365b869c7b05b4618d752..390ad1d83a26c18fb14f82bf77ef168c86ae3222 100644 (file)
@@ -3456,7 +3456,7 @@ unsigned columns(void) {
                 c = 80;
 
         cached_columns = c;
-        return c;
+        return cached_columns;
 }
 
 int fd_lines(int fd) {
@@ -3473,7 +3473,7 @@ int fd_lines(int fd) {
 
 unsigned lines(void) {
         const char *e;
-        unsigned l;
+        int l;
 
         if (_likely_(cached_lines > 0))
                 return cached_lines;
@@ -3481,7 +3481,7 @@ unsigned lines(void) {
         l = 0;
         e = getenv("LINES");
         if (e)
-                (void) safe_atou(e, &l);
+                (void) safe_atoi(e, &l);
 
         if (l <= 0)
                 l = fd_lines(STDOUT_FILENO);