summaryrefslogtreecommitdiff
path: root/sway/commands.c
diff options
context:
space:
mode:
authorReza Jelveh <[email protected]>2024-04-15 13:39:41 +0800
committerGitHub <[email protected]>2024-04-15 01:39:41 -0400
commitfb86ed6b0588dfdebfb66ce875bc63cfa0a897f6 (patch)
tree29857a1769107adc58696f08d379f608aa4e29a2 /sway/commands.c
parenta5e79676c4bd22fc5902182acf0667907202a465 (diff)
feat: 1.9 merge (#277)
Co-authored-by: William McKinnon <[email protected]> Co-authored-by: Erik Reider <[email protected]>
Diffstat (limited to 'sway/commands.c')
-rw-r--r--sway/commands.c26
1 files changed, 10 insertions, 16 deletions
diff --git a/sway/commands.c b/sway/commands.c
index 8b326547..2e048203 100644
--- a/sway/commands.c
+++ b/sway/commands.c
@@ -127,6 +127,7 @@ static const struct cmd_handler config_handlers[] = {
{ "default_orientation", cmd_default_orientation },
{ "include", cmd_include },
{ "scratchpad_minimize", cmd_scratchpad_minimize },
+ { "primary_selection", cmd_primary_selection },
{ "swaybg_command", cmd_swaybg_command },
{ "swaynag_command", cmd_swaynag_command },
{ "workspace_layout", cmd_workspace_layout },
@@ -171,7 +172,7 @@ static int handler_compare(const void *_a, const void *_b) {
return strcasecmp(a->command, b->command);
}
-const struct cmd_handler *find_handler(char *line,
+const struct cmd_handler *find_handler(const char *line,
const struct cmd_handler *handlers, size_t handlers_size) {
if (!handlers || !handlers_size) {
return NULL;
@@ -404,10 +405,13 @@ struct cmd_results *config_command(char *exec, char **new_block) {
sway_log(SWAY_INFO, "Config command: %s", exec);
const struct cmd_handler *handler = find_core_handler(argv[0]);
if (!handler || !handler->handle) {
- const char *error = handler
- ? "Command '%s' is shimmed, but unimplemented"
- : "Unknown/invalid command '%s'";
- results = cmd_results_new(CMD_INVALID, error, argv[0]);
+ if (handler) {
+ results = cmd_results_new(CMD_INVALID,
+ "Command '%s' is shimmed, but unimplemented", argv[0]);
+ } else {
+ results = cmd_results_new(CMD_INVALID,
+ "Unknown/invalid command '%s'", argv[0]);
+ }
goto cleanup;
}
@@ -509,20 +513,10 @@ struct cmd_results *cmd_results_new(enum cmd_status status,
}
results->status = status;
if (format) {
- char *error = NULL;
va_list args;
va_start(args, format);
- int slen = vsnprintf(NULL, 0, format, args);
+ results->error = vformat_str(format, args);
va_end(args);
- if (slen > 0) {
- error = malloc(slen + 1);
- if (error != NULL) {
- va_start(args, format);
- vsnprintf(error, slen + 1, format, args);
- va_end(args);
- }
- }
- results->error = error;
} else {
results->error = NULL;
}