MCPcopy Create free account
hub / github.com/OpenXcom/OpenXcom / loadArgs

Function loadArgs

src/Engine/Options.cpp:296–335  ·  view source on GitHub ↗

* Loads options from a set of command line arguments, * in the format "-option value". * @param argc Number of arguments. * @param argv Array of argument strings. */

Source from the content-addressed store, hash-verified

294 * @param argv Array of argument strings.
295 */
296void loadArgs(int argc, char *argv[])
297{
298 for (int i = 1; i < argc; ++i)
299 {
300 std::string arg = argv[i];
301 if ((arg[0] == '-' || arg[0] == '/') && arg.length() > 1)
302 {
303 std::string argname;
304 if (arg[1] == '-' && arg.length() > 2)
305 argname = arg.substr(2, arg.length()-1);
306 else
307 argname = arg.substr(1, arg.length()-1);
308 std::transform(argname.begin(), argname.end(), argname.begin(), ::tolower);
309 if (argc > i + 1)
310 {
311 if (argname == "data")
312 {
313 _dataFolder = CrossPlatform::endPath(argv[i+1]);
314 }
315 else if (argname == "user")
316 {
317 _userFolder = CrossPlatform::endPath(argv[i+1]);
318 }
319 else if (argname == "cfg")
320 {
321 _configFolder = CrossPlatform::endPath(argv[i+1]);
322 }
323 else
324 {
325 //save this command line option for now, we will apply it later
326 _commandLine[argname] = argv[i+1];
327 }
328 }
329 else
330 {
331 Log(LOG_WARNING) << "Unknown option: " << argname;
332 }
333 }
334 }
335}
336
337/*
338 * Displays command-line help when appropriate.

Callers 1

initFunction · 0.85

Calls 1

endPathFunction · 0.85

Tested by

no test coverage detected