mirror of
https://github.com/swaywm/sway.git
synced 2025-01-11 18:39:43 +00:00
commands: clean-up checkarg function
Consolidates logic and fixes mistake that used argc instead of val for determining plural.
This commit is contained in:
parent
5364255f26
commit
000d96e525
|
@ -18,33 +18,28 @@
|
|||
|
||||
// Returns error object, or NULL if check succeeds.
|
||||
struct cmd_results *checkarg(int argc, const char *name, enum expected_args type, int val) {
|
||||
struct cmd_results *error = NULL;
|
||||
const char *error_name = NULL;
|
||||
switch (type) {
|
||||
case EXPECTED_AT_LEAST:
|
||||
if (argc >= val) {
|
||||
return NULL;
|
||||
if (argc < val) {
|
||||
error_name = "at least ";
|
||||
}
|
||||
error = cmd_results_new(CMD_INVALID, name, "Invalid %s command "
|
||||
"(expected at least %d argument%s, got %d)",
|
||||
name, val, (char*[2]){"s", ""}[argc==1], argc);
|
||||
break;
|
||||
case EXPECTED_LESS_THAN:
|
||||
if (argc < val) {
|
||||
return NULL;
|
||||
};
|
||||
error = cmd_results_new(CMD_INVALID, name, "Invalid %s command "
|
||||
"(expected less than %d argument%s, got %d)",
|
||||
name, val, (char*[2]){"s", ""}[argc==1], argc);
|
||||
if (argc >= val) {
|
||||
error_name = "less than ";
|
||||
}
|
||||
break;
|
||||
case EXPECTED_EQUAL_TO:
|
||||
if (argc == val) {
|
||||
return NULL;
|
||||
};
|
||||
error = cmd_results_new(CMD_INVALID, name, "Invalid %s command "
|
||||
"(expected %d arguments, got %d)", name, val, argc);
|
||||
break;
|
||||
if (argc != val) {
|
||||
error_name = "";
|
||||
}
|
||||
}
|
||||
return error;
|
||||
return error_name ?
|
||||
cmd_results_new(CMD_INVALID, name, "Invalid %s command "
|
||||
"(expected %s%d argument%s, got %d)",
|
||||
name, error_name, val, val != 1 ? "s" : "", argc)
|
||||
: NULL;
|
||||
}
|
||||
|
||||
void apply_seat_config(struct seat_config *seat_config) {
|
||||
|
|
Loading…
Reference in a new issue