forked from OctaForge/libcubescript
do not iterate argv twice
parent
da8120f5c8
commit
58b54aff66
|
@ -287,7 +287,8 @@ int main(int argc, char **argv) {
|
||||||
});
|
});
|
||||||
|
|
||||||
int firstarg = 0;
|
int firstarg = 0;
|
||||||
bool has_inter = false, has_ver = false, has_help = false, has_str = false;
|
bool has_inter = false, has_ver = false, has_help = false;
|
||||||
|
char const *has_str = nullptr;
|
||||||
for (int i = 1; i < argc; ++i) {
|
for (int i = 1; i < argc; ++i) {
|
||||||
if (argv[i][0] != '-') {
|
if (argv[i][0] != '-') {
|
||||||
firstarg = i;
|
firstarg = i;
|
||||||
|
@ -326,13 +327,16 @@ int main(int argc, char **argv) {
|
||||||
has_help = true;
|
has_help = true;
|
||||||
break;
|
break;
|
||||||
case 'e':
|
case 'e':
|
||||||
has_str = true;
|
|
||||||
if (argv[i][2] == '\0') {
|
if (argv[i][2] == '\0') {
|
||||||
++i;
|
++i;
|
||||||
if (!argv[i]) {
|
if (!argv[i]) {
|
||||||
firstarg = -1;
|
firstarg = -1;
|
||||||
goto endargs;
|
goto endargs;
|
||||||
|
} else {
|
||||||
|
has_str = argv[i];
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
has_str = argv[i] + 2;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -352,17 +356,8 @@ endargs:
|
||||||
print_usage(argv[0], false);
|
print_usage(argv[0], false);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
for (int i = 1; i < ((firstarg > 0) ? firstarg : argc); ++i) {
|
if (has_str) {
|
||||||
switch (argv[i][1]) {
|
do_call(gcs, has_str);
|
||||||
case 'e': {
|
|
||||||
auto str = argv[i] + 2;
|
|
||||||
if (*str == '\0') {
|
|
||||||
str = argv[++i];
|
|
||||||
}
|
|
||||||
do_call(gcs, str);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (firstarg) {
|
if (firstarg) {
|
||||||
do_call(gcs, argv[firstarg], true);
|
do_call(gcs, argv[firstarg], true);
|
||||||
|
|
Loading…
Reference in New Issue