From: Colin Walters Date: Thu, 1 Jan 2015 19:57:08 +0000 (-0500) Subject: util: Fix signedness error in lines(), match implementations X-Git-Tag: v219~698 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=9bc5cd6d74d6efc7769d6a25b21e451dae39fe76 util: Fix signedness error in lines(), match implementations 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). --- diff --git a/src/shared/util.c b/src/shared/util.c index dfaf7f7f4..390ad1d83 100644 --- a/src/shared/util.c +++ b/src/shared/util.c @@ -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);