Commit 0f219e5a authored by John Wu's avatar John Wu

Better argument parsing logic

parent 353c3c7d
...@@ -148,29 +148,25 @@ int main(int argc, char *argv[]) { ...@@ -148,29 +148,25 @@ int main(int argc, char *argv[]) {
printf("\n"); printf("\n");
munmap(buf, size); munmap(buf, size);
} else if (argc > 2 && action == "unpack") { } else if (argc > 2 && action == "unpack") {
if (argv[2] == "-n"sv) { int idx = 2;
if (argv[3] == "-h"sv) { bool nodecomp = false;
if (argc == 4) bool hdr = false;
usage(argv[0]); for (;;) {
return unpack(argv[4], true, true); if (idx >= argc)
} else { usage(argv[0]);
if (argc == 3) if (argv[idx][0] != '-')
usage(argv[0]); break;
return unpack(argv[3], true); for (char *flag = &argv[idx][1]; *flag; ++flag) {
} if (*flag == 'n')
} else if (argv[2] == "-h"sv) { nodecomp = true;
if (argv[3] == "-n"sv) { else if (*flag == 'h')
if (argc == 4) hdr = true;
usage(argv[0]); else
return unpack(argv[4], true, true);
} else {
if (argc == 3)
usage(argv[0]); usage(argv[0]);
return unpack(argv[3], false, true);
} }
} else { ++idx;
return unpack(argv[2]);
} }
return unpack(argv[idx], nodecomp, hdr);
} else if (argc > 2 && action == "repack") { } else if (argc > 2 && action == "repack") {
if (argv[2] == "-n"sv) { if (argv[2] == "-n"sv) {
if (argc == 3) if (argc == 3)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment