|
diff --git a/contrib/nvi/cl/cl_term.c b/contrib/nvi/cl/cl_term.c
|
|
index d851930..9514408 100644
|
|
--- a/contrib/nvi/cl/cl_term.c
|
|
+++ b/contrib/nvi/cl/cl_term.c
|
|
@@ -355,7 +355,7 @@ cl_ssize(SCR *sp, int sigwinch, size_t *rowp, size_t *colp, int *changedp)
|
|
struct winsize win;
|
|
size_t col, row;
|
|
int rval;
|
|
- char *p;
|
|
+ char *p, *rowptr, *colptr;
|
|
|
|
/* Assume it's changed. */
|
|
if (changedp != NULL)
|
|
@@ -447,10 +447,16 @@ noterm: if (row == 0)
|
|
* deleting the LINES and COLUMNS environment variables from their
|
|
* dot-files.
|
|
*/
|
|
- if ((p = getenv("LINES")) != NULL)
|
|
- row = strtol(p, NULL, 10);
|
|
- if ((p = getenv("COLUMNS")) != NULL)
|
|
- col = strtol(p, NULL, 10);
|
|
+ if ((p = getenv("LINES")) != NULL) {
|
|
+ row = strtol(p, &rowptr, 10);
|
|
+ if (rowptr != '\0' || errno != 0)
|
|
+ row = 24;
|
|
+ }
|
|
+ if ((p = getenv("COLUMNS")) != NULL) {
|
|
+ col = strtol(p, &colptr, 10);
|
|
+ if (colptr != '\0' || errno != 0)
|
|
+ col = 80;
|
|
+ }
|
|
|
|
if (rowp != NULL)
|
|
*rowp = row;
|