#ifndef lint static const char RCSid[] = "$Id: bgraph.c,v 1.4 2003/11/15 02:13:36 schorsch Exp $"; #endif /* * bgraph.c - program to send plots to metafile graphics programs. * * 6/25/86 * * Greg Ward Larson */ #include #include "meta.h" #include "mgvars.h" #include "mgraph.h" #define istyp(s) (s[0] == '-') #define isvar(s) (s[0] == '+') char *progname; char *libpath[4]; static void dofile(int optc, char *optv[], char *file); int main( int argc, char *argv[] ) { char *getenv(); int i, file0; progname = argv[0]; libpath[0] = ""; if ((libpath[i=1] = getenv("MDIR")) != NULL) i++; libpath[i++] = MDIR; libpath[i] = NULL; for (file0 = 1; file0 < argc; ) if (istyp(argv[file0])) file0++; else if (isvar(argv[file0]) && file0 < argc-1) file0 += 2; else break; if (file0 >= argc) dofile(argc-1, argv+1, NULL); else for (i = file0; i < argc; i++) dofile(file0-1, argv+1, argv[i]); quit(0); return 0; /* pro forma return */ } static void dofile( /* plot a file */ int optc, char *optv[], char *file ) { char stmp[256]; int i; /* start fresh */ mgclearall(); /* type options first */ for (i = 0; i < optc; i++) if (istyp(optv[i])) { sprintf(stmp, "include=%s.plt", optv[i]+1); setmgvar(progname, stdin, stmp); } else i++; /* file next */ mgload(file); /* variable options last */ for (i = 0; i < optc; i++) if (isvar(optv[i])) { sprintf(stmp, "%s=%s", optv[i]+1, optv[i+1]); setmgvar(progname, stdin, stmp); i++; } /* graph it */ mgraph(); } void quit(code) /* quit program */ int code; { mdone(); exit(code); }