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]);