Diff between c17cf38ecfe85a8b681d183c6e87b9155cfea096 and 231cf864f1b06ccd92f53aa6a6b70dfec91bd0f5

Changed Files

File Additions Deletions Status
monitor/display.c +4 -4 modified
monitor/display.h +2 -0 modified

Full Patch

diff --git a/monitor/display.c b/monitor/display.c
index b8dce1f..af4171f 100644
--- a/monitor/display.c
+++ b/monitor/display.c
@@ -58,10 +58,10 @@ int num_columns(void)
 	if (__builtin_expect(!!(cached_num_columns < 0), 0)) {
 		struct winsize ws;
 
-		if (ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws) < 0)
-			return -1;
-
-		if (ws.ws_col > 0)
+		if (ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws) < 0 ||
+								ws.ws_col == 0)
+			cached_num_columns = FALLBACK_TERMINAL_WIDTH;
+		else
 			cached_num_columns = ws.ws_col;
 	}
 
diff --git a/monitor/display.h b/monitor/display.h
index 6139cc2..885eb34 100644
--- a/monitor/display.h
+++ b/monitor/display.h
@@ -40,6 +40,8 @@ bool use_color(void);
 
 #define COLOR_ERROR	"\x1B[1;31m"
 
+#define FALLBACK_TERMINAL_WIDTH 80
+
 #define print_indent(indent, color1, prefix, title, color2, fmt, args...) \
 do { \
 	printf("%*c%s%s%s%s" fmt "%s\n", (indent), ' ', \