7 extern int lcc_getopt(int, char *const *, const char *);
8 extern char *optarg, rcsid[];
11 int Mflag; /* only print active include files */
12 char *objname; /* "src.$O: " */
16 setup(int argc, char **argv)
21 extern void setup_kwtab(void);
22 uchar *includeDirs[ NINCLUDE ] = { 0 };
23 int numIncludeDirs = 0;
26 while ((c = lcc_getopt(argc, argv, "MNOVv+I:D:U:F:lg")) != -1)
29 for (i=0; i<NINCLUDE; i++)
30 if (includelist[i].always==1)
31 includelist[i].deleted = 1;
34 includeDirs[ numIncludeDirs++ ] = newstring( (uchar *)optarg, strlen( optarg ), 0 );
38 setsource("<cmdarg>", -1, optarg);
48 fprintf(stderr, "%s %s\n", argv[0], rcsid);
63 dp = basepath( argv[optind] );
64 fp = (char*)newstring((uchar*)argv[optind], strlen(argv[optind]), 0);
65 if ((fd = open(fp, 0)) <= 0)
66 error(FATAL, "Can't open input file %s", fp);
69 int fdo = creat(argv[optind+1], 0666);
71 error(FATAL, "Can't open output file %s", argv[optind+1]);
76 includelist[NINCLUDE-1].always = 0;
77 includelist[NINCLUDE-1].file = dp;
79 for( i = 0; i < numIncludeDirs; i++ )
80 appendDirToIncludeList( (char *)includeDirs[ i ] );
82 setsource(fp, fd, NULL);
86 char *basepath( char *fname )
90 if ((p = strrchr(fname, '/')) != NULL) {
92 dp = (char*)newstring((uchar*)fname, dlen+1, 0);
99 /* memmove is defined here because some vendors don't provide it at
100 all and others do a terrible job (like calling malloc) */
101 // -- ouch, that hurts -- ln
102 #ifndef MACOS_X /* always use the system memmove() on Mac OS X. --ryan. */
107 memmove(void *dp, const void *sp, size_t n)
109 unsigned char *cdp, *csp;
114 csp = (unsigned char *)sp;