If you try to use cal on a terminal which doesnt support highlighting, Senter and Sexit will be set to NULL instead of "" which will cause the resulting output to be off: $ env TERM=dumb cal December 2005 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 111 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 http://bugs.gentoo.org/112406 --- util-linux/misc-utils/cal.c +++ util-linux/misc-utils/cal.c @@ -89,7 +89,8 @@ static char * my_tgetstr(char *s, char *ss) { - return tigetstr(ss); + char *ret = tigetstr(ss); + return (ret == NULL ? "" : ret); } #elif defined(HAVE_termcap) @@ -112,7 +113,8 @@ static char * my_tgetstr(char *s, char *ss) { - return tgetstr(s, &strbuf); + char *ret = tgetstr(s, &strbuf); + return (ret == NULL ? "" : ret); } #endif