From 1c39e3971081ca80caa4d66c7309f9163370bfeb Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Mon, 27 Jun 2011 08:23:58 +0200 Subject: [PATCH 1/1] Exit show-time if terminal width is unknown. --- show-time.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/show-time.c b/show-time.c index 4e4369f..9f02fc0 100644 --- a/show-time.c +++ b/show-time.c @@ -18,7 +18,7 @@ int getColumns() { if (!error) { return terminalSize.ws_col; } - return 80; + return -1; } int main(int argc, char** argv) { @@ -26,6 +26,7 @@ int main(int argc, char** argv) { struct tm *localTime; time_t currentTime; char buffer[80]; + int terminalWidth; if (fork() != 0) { return 0; @@ -36,7 +37,11 @@ int main(int argc, char** argv) { localTime = localtime(¤tTime); strftime(buffer, 80, "%d.%m.%Y %H:%M:%S", localTime); printf("%c[s", 27); /* save cursor position */ - printf("%c[%d;%dH", 27, 1, (int) (getColumns() - strlen(buffer))); /* set cursor */ + terminalWidth = getColumns(); + if (terminalWidth == -1) { + return 0; + } + printf("%c[%d;%dH", 27, 1, (int) (terminalWidth - strlen(buffer))); /* set cursor */ printf("%s", buffer); printf("%c[u", 27); /* restore cursor position */ fflush(stdout); -- 2.7.4