MCPcopy Create free account
hub / github.com/OpenMC2/OpenMC2 / parse_commandline

Function parse_commandline

src/CommandLine.cpp:36–66  ·  view source on GitHub ↗

mc2: 0x006131E0

Source from the content-addressed store, hash-verified

34
35// mc2: 0x006131E0
36void parse_commandline(std::int32_t argc, char **argv) {
37 if (argc != 0 && argv != nullptr) global_exe_name = argv[0];
38 else global_exe_name = "unknown";
39 if (argc <= 1) return;
40
41 bool c = false;
42 for (std::int32_t i = 1; i < argc; ++i) {
43 if (strcmp(argv[i], "-help") == 0) print_help();
44 else if (argv[i][0] == '-' && (argv[i][1] < '0' || argv[i][1] > '9')) {
45 c = true;
46 for (cmdline_info &x : global_cmdline) {
47 if (x.index == 0) {
48 std::uint32_t namelen = std::strlen(x.name);
49 if (std::strncmp(argv[i] + 1, x.name, namelen) == 0) {
50 if (argv[i][namelen + 1] == '\0') {
51 if (i == argc - 1 || (argv[i + 1][0] == '-' &&
52 (argv[i + 1][1] < '0' || argv[i + 1][1] > '9')))
53 x.value = "";
54 else x.value = argv[i + 1];
55 } else if (argv[i][namelen + 1] == '=') {
56 x.value = &argv[i][namelen + 2];
57 }
58 }
59 }
60 }
61 } else if (!c) {
62 for (cmdline_info &x : global_cmdline)
63 if (x.index == i) x.value = argv[i];
64 }
65 }
66}
67
68// mc2: 0x00612FB0
69void print_help() {

Callers 1

StartOpenMC2Function · 0.85

Calls 1

print_helpFunction · 0.85

Tested by

no test coverage detected