Support -D flags

This commit is contained in:
Jeremiah Orians 2022-09-26 12:50:09 -04:00
parent 2af8507661
commit 7f3a0d4cd8
No known key found for this signature in database
GPG Key ID: 6B3A3F198708F894
1 changed files with 28 additions and 0 deletions

28
cc.c
View File

@ -36,6 +36,7 @@ void spawn_processes(int debug_flag, char* prefix, char* preprocessed_file, char
void prechecks(int argc, char** argv)
{
int env = 0;
char* hold;
int i = 1;
while(i <= argc)
@ -89,6 +90,28 @@ void prechecks(int argc, char** argv)
M2LIBC_PATH = hold;
i += 2;
}
else if(match(argv[i], "-D"))
{
hold = argv[i+1];
if(NULL == hold)
{
fputs("-D requires an argument", stderr);
exit(EXIT_FAILURE);
}
while(0 != hold[0])
{
if('=' == hold[0])
{
hold[0] = 0;
hold = hold + 1;
break;
}
hold = hold + 1;
}
init_macro_env(argv[i+1], hold, "__ARGV__", env);
env = env + 1;
i += 2;
}
else
{
i += 1;
@ -238,6 +261,11 @@ int main(int argc, char** argv, char** envp)
/* Handled by precheck */
i += 2;
}
else if(match(argv[i], "-D"))
{
/* Handled by precheck */
i += 2;
}
else if(match(argv[i], "-h") || match(argv[i], "--help"))
{
fputs(" -f input file\n -o output file\n --help for this message\n --version for file version\n-E or --preprocess-only\n--max-string N (N is a number)\n--fuzz\n--no-debug\n", stdout);