ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/meta/gcomp.c
Revision: 1.1
Committed: Sat Feb 22 02:07:26 2003 UTC (21 years, 2 months ago) by greg
Content type: text/plain
Branch: MAIN
CVS Tags: rad3R5
Log Message:
Changes and check-in for 3.5 release
Includes new source files and modifications not recorded for many years
See ray/doc/notes/ReleaseNotes for notes between 3.1 and 3.5 release

File Contents

# User Rev Content
1 greg 1.1 #ifndef lint
2     static const char RCSid[] = "$Id$";
3     #endif
4     /*
5     * gcomp.c - program to calculate things from graph files.
6     *
7     * 7/7/86
8     *
9     * Greg Ward Larson
10     */
11    
12     #include <stdio.h>
13    
14     #define istyp(s) (s[0] == '-')
15    
16     #define isvar(s) (s[0] == '+')
17    
18     char *progname;
19    
20     char *libpath[4];
21    
22    
23     main(argc, argv)
24     int argc;
25     char *argv[];
26     {
27     #if UNIX || MAC
28     char *getenv();
29     #endif
30     int i, file0;
31    
32     #ifdef CPM
33     fixargs("gcomp", &argc, &argv);
34     progname = argv[0];
35     libpath[0] = "";
36     libpath[1] = "0/";
37     libpath[2] = NULL;
38     #endif
39     #ifdef MAC
40     progname = argv[0];
41     libpath[0] = "./";
42     if ((libpath[i=1] = getenv("MDIR")) != NULL)
43     i++;
44     libpath[i++] = "/meta/";
45     libpath[i] = NULL;
46     #endif
47     #ifdef UNIX
48     progname = argv[0];
49     libpath[0] = "./";
50     if ((libpath[i=1] = getenv("MDIR")) != NULL)
51     i++;
52     libpath[i++] = MDIR;
53     libpath[i] = NULL;
54     #endif
55    
56     for (file0 = 1; file0 < argc; )
57     if (istyp(argv[file0]))
58     file0++;
59     else if (isvar(argv[file0]) && file0 < argc-1)
60     file0 += 2;
61     else
62     break;
63    
64     if (file0 >= argc)
65     dofile(argc-1, argv+1, NULL);
66     else
67     for (i = file0; i < argc; i++)
68     dofile(file0-1, argv+1, argv[i]);
69    
70     quit(0);
71     }
72    
73    
74     dofile(optc, optv, file) /* plot a file */
75     int optc;
76     char *optv[];
77     char *file;
78     {
79     char types[16], stmp[256], *strcat();
80     int i;
81    
82     mgclearall();
83    
84     mgload(file);
85    
86     types[0] = '\0';
87     for (i = 0; i < optc; i++)
88     if (istyp(optv[i]))
89     strcat(types, optv[i]+1);
90     else {
91     sprintf(stmp, "%s=%s", optv[i]+1, optv[i+1]);
92     setmgvar("command line", stdin, stmp);
93     i++;
94     }
95    
96     gcalc(types);
97     }
98    
99    
100     eputs(msg) /* print error message */
101     char *msg;
102     {
103     fputs(msg, stderr);
104     }
105    
106    
107     quit(code) /* quit program */
108     int code;
109     {
110     exit(code);
111     }