shorter syntax

This commit is contained in:
2025-06-04 00:36:52 +02:00
parent 7843674692
commit 2a85d8d0e1
+18 -31
View File
@@ -44,12 +44,10 @@ void invalid_value(char *arg, char *subarg, char *value) {
print_help(1); print_help(1);
} }
bool is_arg(char *arg, char *ref) { bool is_arg(char *arg, char *ref) { return strcoll(arg, ref) == 0; }
return strncmp(arg, ref, strlen(ref)) == 0;
}
char *get_arg_value(char *arg) { char *split_arg_value(char *arg) {
strtok(arg, "="); // remove first part strtok(arg, "=");
return strtok(NULL, "="); return strtok(NULL, "=");
} }
@@ -69,7 +67,14 @@ bool is_number(char *value) {
return value; return value;
} }
void parse_number(char *arg, char *value, unsigned char color[3]) { long parse_number(char *arg, char *value) {
if (!is_number(value)) {
invalid_value(arg, NULL, value);
}
return atol(value);
}
void parse_color(char *arg, char *value, unsigned char color[3]) {
char *tmp; char *tmp;
tmp = strtok(value, ","); tmp = strtok(value, ",");
if (!is_number(tmp)) { if (!is_number(tmp)) {
@@ -109,43 +114,25 @@ parameters parse_args(int argc, char **argv) {
char *value; char *value;
for (i = 1; i < argc; i++) { for (i = 1; i < argc; i++) {
arg = argv[i]; arg = argv[i];
value = split_arg_value(arg);
if (is_arg(arg, "--help")) { if (is_arg(arg, "--help")) {
print_help(0); print_help(0);
} else if (is_arg(arg, "-q") || is_arg(arg, "--quiet")) { } else if (is_arg(arg, "-q") || is_arg(arg, "--quiet")) {
params.quiet = true; params.quiet = true;
} else if (is_arg(arg, "-w") || is_arg(arg, "--width")) { } else if (is_arg(arg, "-w") || is_arg(arg, "--width")) {
value = get_arg_value(arg); params.width = (unsigned long)parse_number(arg, value);
if (!is_number(value)) {
invalid_value(arg, NULL, value);
}
params.width = (unsigned long)atol(value);
} else if (is_arg(arg, "-h") || is_arg(arg, "--height")) { } else if (is_arg(arg, "-h") || is_arg(arg, "--height")) {
value = get_arg_value(arg); params.height = (unsigned long)parse_number(arg, value);
if (!is_number(value)) {
invalid_value(arg, NULL, value);
}
params.height = (unsigned long)atol(value);
} else if (is_arg(arg, "-o") || is_arg(arg, "--output")) { } else if (is_arg(arg, "-o") || is_arg(arg, "--output")) {
value = get_arg_value(arg);
params.file_path = value; params.file_path = value;
} else if (is_arg(arg, "-p") || is_arg(arg, "--pixel")) { } else if (is_arg(arg, "-p") || is_arg(arg, "--pixel")) {
value = get_arg_value(arg); params.size = (unsigned char)parse_number(arg, value);
if (!is_number(value)) {
invalid_value(arg, NULL, value);
}
params.size = (unsigned char)atoi(value);
} else if (is_arg(arg, "-s") || is_arg(arg, "--slope")) { } else if (is_arg(arg, "-s") || is_arg(arg, "--slope")) {
value = get_arg_value(arg); params.size = (unsigned char)parse_number(arg, value);
if (!is_number(value)) {
invalid_value(arg, NULL, value);
}
params.size = (unsigned char)atoi(value);
} else if (is_arg(arg, "-c") || is_arg(arg, "--color")) { } else if (is_arg(arg, "-c") || is_arg(arg, "--color")) {
value = get_arg_value(arg); parse_color(arg, value, params.start);
parse_number(arg, value, params.start);
} else if (is_arg(arg, "-v") || is_arg(arg, "--variation")) { } else if (is_arg(arg, "-v") || is_arg(arg, "--variation")) {
value = get_arg_value(arg); parse_color(arg, value, params.start);
parse_number(arg, value, params.start);
} else { } else {
invalid_arg(arg); invalid_arg(arg);
} }