diff options
author | Drew DeVault <[email protected]> | 2017-06-14 18:53:40 -0400 |
---|---|---|
committer | GitHub <[email protected]> | 2017-06-14 18:53:40 -0400 |
commit | 298f56353ef155f6a2ccc977c96b2ff5d971e65e (patch) | |
tree | dcb3b74f1dde93bce8657b7509662ffd7db667d0 /sway/commands/client.c | |
parent | a5c07dde6aba87584ddb6c6a2769472a6003623a (diff) | |
parent | eb6e38c86d2deb37cc6f378f8644c4a530fd7448 (diff) |
Merge branch 'master' into server-decoration
Diffstat (limited to 'sway/commands/client.c')
-rw-r--r-- | sway/commands/client.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/sway/commands/client.c b/sway/commands/client.c index 7954f670..f3d879cd 100644 --- a/sway/commands/client.c +++ b/sway/commands/client.c @@ -4,26 +4,30 @@ static struct cmd_results *parse_border_color(struct border_colors *border_colors, const char *cmd_name, int argc, char **argv) { struct cmd_results *error = NULL; - if (argc != 5) { - return cmd_results_new(CMD_INVALID, cmd_name, "Requires exactly five color values"); + if (argc < 3 || argc > 5) { + return cmd_results_new(CMD_INVALID, cmd_name, "Requires between three and five color values"); } - uint32_t colors[5]; + uint32_t *colors[5] = { + &border_colors->border, + &border_colors->background, + &border_colors->text, + &border_colors->indicator, + &border_colors->child_border + }; int i; - for (i = 0; i < 5; i++) { + for (i = 0; i < argc; i++) { char buffer[10]; error = add_color(cmd_name, buffer, argv[i]); if (error) { return error; } - colors[i] = strtoul(buffer+1, NULL, 16); + *colors[i] = strtoul(buffer + 1, NULL, 16); } - border_colors->border = colors[0]; - border_colors->background = colors[1]; - border_colors->text = colors[2]; - border_colors->indicator = colors[3]; - border_colors->child_border = colors[4]; + if (argc < 5) { + border_colors->child_border = border_colors->background; + } return cmd_results_new(CMD_SUCCESS, NULL, NULL); } |