aboutsummaryrefslogtreecommitdiffstats
path: root/sway/commands/bar/colors.c
diff options
context:
space:
mode:
authorLibravatar Drew DeVault <sir@cmpwn.com>2018-03-29 22:05:16 -0400
committerLibravatar Drew DeVault <sir@cmpwn.com>2018-03-29 22:11:08 -0400
commit741424c4e7811c12d8cca28466f89bd61eaf3a75 (patch)
tree37af2aa063d42bf6ef3bc967bb1a5b6b679abbaf /sway/commands/bar/colors.c
parentUse statically allocated text buffer (diff)
downloadsway-741424c4e7811c12d8cca28466f89bd61eaf3a75.tar.gz
sway-741424c4e7811c12d8cca28466f89bd61eaf3a75.tar.zst
sway-741424c4e7811c12d8cca28466f89bd61eaf3a75.zip
Clean up imported bar commands
Diffstat (limited to 'sway/commands/bar/colors.c')
-rw-r--r--sway/commands/bar/colors.c51
1 files changed, 23 insertions, 28 deletions
diff --git a/sway/commands/bar/colors.c b/sway/commands/bar/colors.c
index 8b3b0aac..17ba9b7c 100644
--- a/sway/commands/bar/colors.c
+++ b/sway/commands/bar/colors.c
@@ -1,47 +1,38 @@
1#include <string.h> 1#include <string.h>
2#include "sway/commands.h" 2#include "sway/commands.h"
3 3
4static struct cmd_results *parse_single_color(char **color, const char *cmd_name, int argc, char **argv) { 4static struct cmd_results *parse_single_color(char **color,
5 const char *cmd_name, int argc, char **argv) {
5 struct cmd_results *error = NULL; 6 struct cmd_results *error = NULL;
6 if ((error = checkarg(argc, cmd_name, EXPECTED_EQUAL_TO, 1))) { 7 if ((error = checkarg(argc, cmd_name, EXPECTED_EQUAL_TO, 1))) {
7 return error; 8 return error;
8 } 9 }
9 10 if (!*color && !(*color = malloc(10))) {
10 if (!*color) { 11 return NULL;
11 *color = malloc(10);
12 if (!*color) {
13 return cmd_results_new(CMD_FAILURE, cmd_name, "Unable to allocate color");
14 }
15 } 12 }
16
17 error = add_color(cmd_name, *color, argv[0]); 13 error = add_color(cmd_name, *color, argv[0]);
18 if (error) { 14 if (error) {
19 return error; 15 return error;
20 } 16 }
21
22 return cmd_results_new(CMD_SUCCESS, NULL, NULL); 17 return cmd_results_new(CMD_SUCCESS, NULL, NULL);
23} 18}
24 19
25static struct cmd_results *parse_three_colors(char ***colors, const char *cmd_name, int argc, char **argv) { 20static struct cmd_results *parse_three_colors(char ***colors,
21 const char *cmd_name, int argc, char **argv) {
26 struct cmd_results *error = NULL; 22 struct cmd_results *error = NULL;
27 if (argc != 3) { 23 if (argc != 3) {
28 return cmd_results_new(CMD_INVALID, cmd_name, "Requires exactly three color values"); 24 return cmd_results_new(CMD_INVALID,
25 cmd_name, "Requires exactly three color values");
29 } 26 }
30 27 for (size_t i = 0; i < 3; i++) {
31 int i; 28 if (!*colors[i] && !(*(colors[i]) = malloc(10))) {
32 for (i = 0; i < 3; i++) { 29 return NULL;
33 if (!*colors[i]) {
34 *(colors[i]) = malloc(10);
35 if (!*(colors[i])) {
36 return cmd_results_new(CMD_FAILURE, cmd_name, "Unable to allocate color");
37 }
38 } 30 }
39 error = add_color(cmd_name, *(colors[i]), argv[i]); 31 error = add_color(cmd_name, *(colors[i]), argv[i]);
40 if (error) { 32 if (error) {
41 return error; 33 return error;
42 } 34 }
43 } 35 }
44
45 return cmd_results_new(CMD_SUCCESS, NULL, NULL); 36 return cmd_results_new(CMD_SUCCESS, NULL, NULL);
46} 37}
47 38
@@ -50,12 +41,10 @@ struct cmd_results *bar_cmd_colors(int argc, char **argv) {
50 if ((error = checkarg(argc, "colors", EXPECTED_EQUAL_TO, 1))) { 41 if ((error = checkarg(argc, "colors", EXPECTED_EQUAL_TO, 1))) {
51 return error; 42 return error;
52 } 43 }
53
54 if (strcmp("{", argv[0]) != 0) { 44 if (strcmp("{", argv[0]) != 0) {
55 return cmd_results_new(CMD_INVALID, "colors", 45 return cmd_results_new(CMD_INVALID, "colors",
56 "Expected '{' at the start of colors config definition."); 46 "Expected '{' at the start of colors config definition.");
57 } 47 }
58
59 return cmd_results_new(CMD_BLOCK_BAR_COLORS, NULL, NULL); 48 return cmd_results_new(CMD_BLOCK_BAR_COLORS, NULL, NULL);
60} 49}
61 50
@@ -69,11 +58,13 @@ struct cmd_results *bar_colors_cmd_active_workspace(int argc, char **argv) {
69} 58}
70 59
71struct cmd_results *bar_colors_cmd_background(int argc, char **argv) { 60struct cmd_results *bar_colors_cmd_background(int argc, char **argv) {
72 return parse_single_color(&(config->current_bar->colors.background), "background", argc, argv); 61 return parse_single_color(&(config->current_bar->colors.background),
62 "background", argc, argv);
73} 63}
74 64
75struct cmd_results *bar_colors_cmd_focused_background(int argc, char **argv) { 65struct cmd_results *bar_colors_cmd_focused_background(int argc, char **argv) {
76 return parse_single_color(&(config->current_bar->colors.focused_background), "focused_background", argc, argv); 66 return parse_single_color(&(config->current_bar->colors.focused_background),
67 "focused_background", argc, argv);
77} 68}
78 69
79struct cmd_results *bar_colors_cmd_binding_mode(int argc, char **argv) { 70struct cmd_results *bar_colors_cmd_binding_mode(int argc, char **argv) {
@@ -104,19 +95,23 @@ struct cmd_results *bar_colors_cmd_inactive_workspace(int argc, char **argv) {
104} 95}
105 96
106struct cmd_results *bar_colors_cmd_separator(int argc, char **argv) { 97struct cmd_results *bar_colors_cmd_separator(int argc, char **argv) {
107 return parse_single_color(&(config->current_bar->colors.separator), "separator", argc, argv); 98 return parse_single_color(&(config->current_bar->colors.separator),
99 "separator", argc, argv);
108} 100}
109 101
110struct cmd_results *bar_colors_cmd_focused_separator(int argc, char **argv) { 102struct cmd_results *bar_colors_cmd_focused_separator(int argc, char **argv) {
111 return parse_single_color(&(config->current_bar->colors.focused_separator), "focused_separator", argc, argv); 103 return parse_single_color(&(config->current_bar->colors.focused_separator),
104 "focused_separator", argc, argv);
112} 105}
113 106
114struct cmd_results *bar_colors_cmd_statusline(int argc, char **argv) { 107struct cmd_results *bar_colors_cmd_statusline(int argc, char **argv) {
115 return parse_single_color(&(config->current_bar->colors.statusline), "statusline", argc, argv); 108 return parse_single_color(&(config->current_bar->colors.statusline),
109 "statusline", argc, argv);
116} 110}
117 111
118struct cmd_results *bar_colors_cmd_focused_statusline(int argc, char **argv) { 112struct cmd_results *bar_colors_cmd_focused_statusline(int argc, char **argv) {
119 return parse_single_color(&(config->current_bar->colors.focused_separator), "focused_separator", argc, argv); 113 return parse_single_color(&(config->current_bar->colors.focused_separator),
114 "focused_separator", argc, argv);
120} 115}
121 116
122struct cmd_results *bar_colors_cmd_urgent_workspace(int argc, char **argv) { 117struct cmd_results *bar_colors_cmd_urgent_workspace(int argc, char **argv) {