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

Comparing ray/src/common/words.c (file contents):
Revision 1.1 by greg, Mon Jul 22 14:34:27 1991 UTC vs.
Revision 1.2 by greg, Tue Jul 23 11:36:42 1991 UTC

# Line 20 | Line 20 | extern char  *strchr();
20  
21  
22   char *
23 + atos(rs, nb, s)                 /* get next word from string */
24 + char  *rs;
25 + register int  nb;
26 + register char  *s;
27 + {
28 +        register char  *cp = rs;
29 +
30 +        while (isspace(*s))
31 +                s++;
32 +        while (--nb > 0 && *s && !isspace(*s))
33 +                *cp++ = *s++;
34 +        *cp = '\0';
35 +        return(rs);
36 + }
37 +
38 +
39 + char *
40   sskip(s)                        /* skip word in string */
41   register char  *s;
42   {
# Line 33 | Line 50 | register char  *s;
50  
51   char *
52   iskip(s)                        /* skip integer in string */
53 < char  *s;
53 > register char  *s;
54   {
55 <        register char  *cp = s;
56 <
57 <        while (isspace(*cp))
58 <                cp++;
59 <        if (*cp == '-' || *cp == '+')
60 <                cp++;
61 <        while (isdigit(*cp))
62 <                cp++;
63 <        return(cp);
55 >        while (isspace(*s))
56 >                s++;
57 >        if (*s == '-' || *s == '+')
58 >                s++;
59 >        if (!isdigit(*s))
60 >                return(NULL);
61 >        do
62 >                s++;
63 >        while (isdigit(*s));
64 >        return(s);
65   }
66  
67  
68   char *
69   fskip(s)                        /* skip float in string */
70 < char  *s;
70 > register char  *s;
71   {
72          register char  *cp = s;
73  
# Line 57 | Line 75 | char  *s;
75                  cp++;
76          if (*cp == '-' || *cp == '+')
77                  cp++;
78 +        s = cp;
79          while (isdigit(*cp))
80                  cp++;
81          if (*cp == '.') {
82 <                cp++;
82 >                cp++; s++;
83                  while (isdigit(*cp))
84                          cp++;
85          }
86 +        if (cp == s)
87 +                return(NULL);
88          if (*cp == 'e' || *cp == 'E')
89                  return(iskip(cp+1));
90          return(cp);
# Line 76 | Line 97 | char  *s;
97          register char  *cp;
98  
99          cp = iskip(s);
100 <        return(cp > s && *cp == '\0');
100 >        return(cp != NULL && *cp == '\0');
101   }
102  
103  
# Line 86 | Line 107 | char  *s, *ds;
107          register char  *cp;
108  
109          cp = iskip(s);
110 <        return(cp > s && strchr(*cp, ds) != NULL);
110 >        return(cp != NULL && strchr(*cp, ds) != NULL);
111   }
112  
113  
# Line 96 | Line 117 | char  *s;
117          register char  *cp;
118  
119          cp = fskip(s);
120 <        return(cp > s && *cp == '\0');
120 >        return(cp != NULL && *cp == '\0');
121   }
122  
123  
# Line 106 | Line 127 | char  *s, *ds;
127          register char  *cp;
128  
129          cp = fskip(s);
130 <        return(cp > s && strchr(*cp, ds) != NULL);
130 >        return(cp != NULL && strchr(*cp, ds) != NULL);
131   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines