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

Comparing ray/src/cal/calc.c (file contents):
Revision 1.8 by greg, Thu Dec 19 16:56:31 2013 UTC vs.
Revision 1.11 by greg, Sat Jun 7 05:09:45 2025 UTC

# Line 12 | Line 12 | static const char      RCSid[] = "$Id$";
12   #include  <ctype.h>
13  
14   #include  "rtio.h"
15 + #include  "paths.h"
16   #include  "rterror.h"
17   #include  "calcomp.h"
18  
# Line 25 | Line 26 | int  recover = 0;
26  
27  
28   int
29 < main(argc, argv)
29 < int  argc;
30 < char  *argv[];
29 > main(int argc, char *argv[])
30   {
31          char  expr[2048];
32          char  *epos;
# Line 65 | Line 64 | char  *argv[];
64                          epos[-1] = ' ';
65                          continue;               /* escaped newline */
66                  }
67 +                while (epos > expr && isspace(epos[-1]))
68 +                        epos--;                 /* eliminate end spaces */
69                  *epos = '\0';
70                  epos = expr;
71                  switch (expr[0]) {
# Line 73 | Line 74 | char  *argv[];
74                  case '?':
75                          for (cp = expr+1; isspace(*cp); cp++)
76                                  ;
77 +                        if (*calcontext(NULL))
78 +                                printf("context is: %s\n", calcontext(NULL));
79                          if (*cp)
80                                  dprint(cp, stdout);
81                          else
# Line 108 | Line 111 | char  *argv[];
111                          fcompile(cp);
112                          eclock++;
113                          continue;
114 +                case '[':
115 +                        for (cp = expr+1; isspace(*cp); cp++)
116 +                                ;
117 +                        if (!isalpha(*cp)) {
118 +                                eputs("context name required\n");
119 +                                continue;
120 +                        }
121 +                        printf("context now: %s\n", pushcontext(cp));
122 +                        continue;
123 +                case ']':
124 +                        cp = popcontext();
125 +                        if (*cp)
126 +                                printf("context now: %s\n", cp);
127 +                        else
128 +                                printf("at global context\n");
129 +                        continue;
130                  }
131                  if ((cp = strchr(expr, '=')) != NULL ||
132                                  (cp = strchr(expr, ':')) != NULL) {
# Line 155 | Line 174 | int  n;
174  
175  
176   void
177 < eputs(msg)
159 < char  *msg;
177 > eputs(const char *msg)
178   {
179          fputs(msg, stderr);
180   }
181  
182  
183   void
184 < wputs(msg)
167 < char  *msg;
184 > wputs(const char *msg)
185   {
186          eputs(msg);
187   }
188  
189  
190   void
191 < quit(code)
175 < int  code;
191 > quit(int code)
192   {
193          if (recover)                    /* a cavalier approach */
194                  longjmp(env, 1);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines