ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/badarg.c
(Generate patch)

Comparing ray/src/common/badarg.c (file contents):
Revision 1.2 by greg, Fri Nov 8 09:58:38 1991 UTC vs.
Revision 2.11 by greg, Fri Mar 7 17:32:12 2014 UTC

# Line 1 | Line 1
1 /* Copyright (c) 1991 Regents of the University of California */
2
1   #ifndef lint
2 < static char SCCSid[] = "$SunId$ LBL";
2 > static const char       RCSid[] = "$Id$";
3   #endif
6
4   /*
5   * Check argument list against format string.
6 + *
7 + *  External symbols declared in rtio.h
8   */
9  
10 + #include "copyright.h"
11 +
12   #include <ctype.h>
13  
14 < #define NULL            0
14 > #include "rtio.h"
15  
16 +
17   int
18 < badarg(ac, av, fl)              /* check argument list */
19 < int     ac;
20 < register char   **av;
21 < register char   *fl;
18 > badarg(         /* check argument list */
19 > int     ac,
20 > char    **av,
21 > char    *fl
22 > )
23   {
24 <        register int  i;
24 >        int     i;
25 >        char    *s;
26  
27          if (fl == NULL)
28                  fl = "";                /* no arguments? */
29          for (i = 1; *fl; i++,av++,fl++) {
30                  if (i > ac || *av == NULL)
31                          return(-1);
32 +                s = *av;
33                  switch (*fl) {
34                  case 's':               /* string */
35 <                        if (**av == '\0' || isspace(**av))
36 <                                return(i);
35 >                        while (isspace(*s))
36 >                                ++s;
37 >                        if (!isprint(*s))
38 >                                return(i);
39 >                        while (isprint(*s) | isspace(*s))
40 >                                ++s;
41 >                        if (*s)
42 >                                return(i);
43                          break;
44                  case 'i':               /* integer */
45 <                        if (!isintd(*av, " \t\r\n"))
45 >                        if (!isintd(s, " \t\r\n"))
46                                  return(i);
47                          break;
48                  case 'f':               /* float */
49 <                        if (!isfltd(*av, " \t\r\n"))
49 >                        if (!isfltd(s, " \t\r\n"))
50                                  return(i);
51                          break;
52                  default:                /* bad call! */

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines