diff options
Diffstat (limited to 'common/util.c')
-rw-r--r-- | common/util.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/common/util.c b/common/util.c index 31a75a9b..86120769 100644 --- a/common/util.c +++ b/common/util.c | |||
@@ -97,3 +97,16 @@ pid_t get_parent_pid(pid_t child) { | |||
97 | 97 | ||
98 | return -1; | 98 | return -1; |
99 | } | 99 | } |
100 | |||
101 | uint32_t parse_color(const char *color) { | ||
102 | int len = strlen(color); | ||
103 | if (color[0] != '#' || (len != 7 && len != 9)) { | ||
104 | sway_log(L_DEBUG, "Invalid color %s, defaulting to color 0xFFFFFFFF", color); | ||
105 | return 0xFFFFFFFF; | ||
106 | } | ||
107 | uint32_t res = (uint32_t)strtol(color + 1, NULL, 16); | ||
108 | if (strlen(color) == 7) { | ||
109 | res = (res << 8) | 0xFF; | ||
110 | } | ||
111 | return res; | ||
112 | } | ||