mirror of
https://github.com/swaywm/sway.git
synced 2025-11-07 13:29:56 -05:00
ipc,commands,config: Replace cmd_status enum with cmd_results struct.
In i3 the ipc reply will contain a human readable error message, and this patch replicates that behaviour. However, that error message is also useful for logging, which this patch takes advantage of. E.g. instead of logging errors directly in commands.c/checkargs, it is fed back to the caller which eventually ends up logging everything with maximum context available (config.c/read_config). So instead of logging e.g. "Error on line 'exit'" it will now log: "Error on line 'exit': Can't execute from config."
This commit is contained in:
parent
544c6c412a
commit
af30a1b67c
5 changed files with 333 additions and 222 deletions
|
|
@ -222,10 +222,12 @@ void ipc_client_handle_command(struct ipc_client *client) {
|
|||
case IPC_COMMAND:
|
||||
{
|
||||
buf[client->payload_length] = '\0';
|
||||
bool success = (handle_command(buf) == CMD_SUCCESS);
|
||||
char reply[64];
|
||||
int length = snprintf(reply, sizeof(reply), "{\"success\":%s}", success ? "true" : "false");
|
||||
struct cmd_results *results = handle_command(buf);
|
||||
const char *json = cmd_results_to_json(results);
|
||||
char reply[256];
|
||||
int length = snprintf(reply, sizeof(reply), "%s", json);
|
||||
ipc_send_reply(client, reply, (uint32_t) length);
|
||||
free_cmd_results(results);
|
||||
break;
|
||||
}
|
||||
case IPC_GET_WORKSPACES:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue