=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mg/basic.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- src/usr.bin/mg/basic.c 2002/02/16 21:27:49 1.10 +++ src/usr.bin/mg/basic.c 2002/03/10 13:22:56 1.11 @@ -1,4 +1,4 @@ -/* $OpenBSD: basic.c,v 1.10 2002/02/16 21:27:49 millert Exp $ */ +/* $OpenBSD: basic.c,v 1.11 2002/03/10 13:22:56 ho Exp $ */ /* * Basic cursor motion commands. @@ -459,24 +459,23 @@ { LINE *clp; int s; - char buf[32]; + char buf[32], *tmp; + long nl; if (!(f & FFARG)) { - char *tmp; - if ((s = ereply("Goto line: ", buf, sizeof(buf))) != TRUE) return s; errno = 0; - n = strtol(buf, &tmp, 10); + nl = strtol(buf, &tmp, 10); if (buf[0] == '\0' || *tmp != '\0') { ewprintf("Invalid number"); return FALSE; } - if ((errno == ERANGE && (n == LONG_MAX || n == LONG_MIN)) || - (n > INT_MAX || n < INT_MIN)) { + if (nl >= INT_MAX || nl <= INT_MIN) { ewprintf("Out of range"); return FALSE; } + n = (int)nl; } if (n >= 0) { clp = lforw(curbp->b_linep); /* "clp" is first line */