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

Comparing ray/src/common/rexpr.c (file contents):
Revision 2.2 by greg, Sun Nov 1 11:31:34 1992 UTC vs.
Revision 2.9 by schorsch, Thu Jul 17 09:21:29 2003 UTC

# Line 1 | Line 1
1 /* Copyright (c) 1990 Regents of the University of California */
2
1   #ifndef lint
2 < static char SCCSid[] = "$SunId$ LBL";
2 > static const char       RCSid[] = "$Id$";
3   #endif
4 + /*
5 + * Regular expression parsing routines.
6 + *
7 + * External symbols declared in standard.h
8 + */
9  
10 + #include "copyright.h"
11 +
12   #include <stdio.h>
13 + #include <stdlib.h>
14   #include <ctype.h>
15 + #include <string.h>
16 +
17 + #include "rtio.h"
18 +
19   /*
20   * rexpr.c - regular expression parser (ala grep)
21   */
# Line 24 | Line 34 | static char SCCSid[] = "$SunId$ LBL";
34  
35   #define same(a,b) (a==b || (iflag && (a^b)==' ' && isalpha(a)))
36  
27 #ifdef  BSD
28 #define  memcpy(to,from,len)    bcopy(from,to,len)
29 #endif
37  
38 < static int     advance(), cclass();
38 > static int     advance(char *, char *);
39 > static int     cclass(char *, int c, int af);
40  
41   static char    expbuf[ESIZE];
42   static int     iflag;
# Line 41 | Line 49 | ecompile(sp, iflg, wflag)               /* compile the
49   register char  *sp;
50   int iflg, wflag;
51   {
52 <        register c;
52 >        register int c;
53          register char *ep;
54 <        char *lastep;
54 >        char *lastep = NULL;
55          int cclcnt;
56          
57          iflag = iflg;
# Line 126 | Line 134 | int iflg, wflag;
134   char *
135   expsave()                     /* save compiled string */
136   {
129        extern char  *malloc();
137          register char  *ep;
138  
139          if (explen == 0)
140                  return(NULL);
141 <        if ((ep = malloc(explen+3)) == NULL)
141 >        if ((ep = (char *)malloc(explen+3)) == NULL)
142                  return(NULL);
143          ep[0] = iflag;
144          ep[1] = circf;
# Line 140 | Line 147 | expsave()                    /* save compiled string */
147          return(ep);
148   }
149  
150 + void
151   expset(ep)                      /* install saved string */
152   register char  *ep;
153   {
# Line 159 | Line 167 | register char *sp;
167                  return(NULL);
168          /* fast check for first character */
169          if (expbuf[0]==CCHR) {
170 <                register c = expbuf[1];
170 >                register int c = expbuf[1];
171                  while (*++sp)
172                          if (same(*sp, c) && advance(sp, expbuf))
173                                  return(sp);
# Line 263 | Line 271 | register char *ep;
271   static int
272   cclass(set, c, af)
273   register char *set;
274 < register c;
274 > register int c;
275 > int af;
276   {
277 <        register n;
277 >        register int n;
278  
279          if (c == 0)
280                  return(0);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines