Mercurial > projects > ldc
comparison gen/main.cpp @ 1197:1546b5162152
Make sure -run doesn't consume the config file flags.
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Sun, 05 Apr 2009 15:58:28 +0200 |
parents | a95fc9fcad5c |
children | 80a326087f59 |
comparison
equal
deleted
inserted
replaced
1196:6c31351af0c5 | 1197:1546b5162152 |
---|---|
161 | 161 |
162 // build complete fixed up list of command line arguments | 162 // build complete fixed up list of command line arguments |
163 std::vector<const char*> final_args; | 163 std::vector<const char*> final_args; |
164 final_args.reserve(argc); | 164 final_args.reserve(argc); |
165 | 165 |
166 // insert argc + DFLAGS | 166 // insert command line args until -run is reached |
167 final_args.insert(final_args.end(), &argv[0], &argv[argc]); | 167 int run_argnum = 1; |
168 while (run_argnum < argc && strncmp(argv[run_argnum], "-run", 4) != 0) | |
169 ++run_argnum; | |
170 final_args.insert(final_args.end(), &argv[0], &argv[run_argnum]); | |
168 | 171 |
169 // read the configuration file | 172 // read the configuration file |
170 ConfigFile cfg_file; | 173 ConfigFile cfg_file; |
171 | 174 |
172 // just ignore errors for now, they are still printed | 175 // just ignore errors for now, they are still printed |
178 cfg_file.read(global.params.argv0, (void*)main, CFG_FILENAME); | 181 cfg_file.read(global.params.argv0, (void*)main, CFG_FILENAME); |
179 #undef CFG_FILENAME | 182 #undef CFG_FILENAME |
180 | 183 |
181 // insert config file additions to the argument list | 184 // insert config file additions to the argument list |
182 final_args.insert(final_args.end(), cfg_file.switches_begin(), cfg_file.switches_end()); | 185 final_args.insert(final_args.end(), cfg_file.switches_begin(), cfg_file.switches_end()); |
186 | |
187 // insert -run and everything beyond | |
188 final_args.insert(final_args.end(), &argv[run_argnum], &argv[argc]); | |
183 | 189 |
184 #if 0 | 190 #if 0 |
185 for (size_t i = 0; i < final_args.size(); ++i) | 191 for (size_t i = 0; i < final_args.size(); ++i) |
186 { | 192 { |
187 printf("final_args[%zu] = %s\n", i, final_args[i]); | 193 printf("final_args[%zu] = %s\n", i, final_args[i]); |