--- ray/src/common/badarg.c 2003/11/14 17:22:06 2.6 +++ ray/src/common/badarg.c 2014/03/01 18:56:41 2.10 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: badarg.c,v 2.6 2003/11/14 17:22:06 schorsch Exp $"; +static const char RCSid[] = "$Id: badarg.c,v 2.10 2014/03/01 18:56:41 greg Exp $"; #endif /* * Check argument list against format string. @@ -17,28 +17,34 @@ static const char RCSid[] = "$Id: badarg.c,v 2.6 2003/ int badarg( /* check argument list */ int ac, -register char **av, -register char *fl +char **av, +char *fl ) { - register int i; + int i; + char *s; if (fl == NULL) fl = ""; /* no arguments? */ for (i = 1; *fl; i++,av++,fl++) { if (i > ac || *av == NULL) return(-1); + s = *av; switch (*fl) { case 's': /* string */ - if (**av == '\0' || isspace(**av)) - return(i); + while (*s == ' ') + ++s; + do + if (!isprint(*s)) + return(i); + while (*++s); break; case 'i': /* integer */ - if (!isintd(*av, " \t\r\n")) + if (!isintd(s, " \t\r\n")) return(i); break; case 'f': /* float */ - if (!isfltd(*av, " \t\r\n")) + if (!isfltd(s, " \t\r\n")) return(i); break; default: /* bad call! */