X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libi3%2Fget_colorpixel.c;h=49a9e3b40c3486e269bc565f8f1b7c2dec6f732a;hb=7c0994dafc91944477e03700304b2308b0e3fdb1;hp=218f82e6f5c25ce1eac70d2c1b5d43f4c427d612;hpb=08c23805458c6bf663aabf76cc667db84ad4b8a9;p=i3%2Fi3 diff --git a/libi3/get_colorpixel.c b/libi3/get_colorpixel.c index 218f82e6..49a9e3b4 100644 --- a/libi3/get_colorpixel.c +++ b/libi3/get_colorpixel.c @@ -5,13 +5,13 @@ * © 2009 Michael Stapelberg and contributors (see also: LICENSE) * */ +#include "libi3.h" + #include #include #include #include "queue.h" -#include "libi3.h" - struct Colorpixel { char hex[8]; uint32_t pixel; @@ -43,7 +43,7 @@ uint32_t get_colorpixel(const char *hex) { /* Shortcut: if our screen is true color, no need to do a roundtrip to X11 */ if (root_screen == NULL || root_screen->root_depth == 24 || root_screen->root_depth == 32) { - return (0xFF << 24) | (r << 16 | g << 8 | b); + return (0xFFUL << 24) | (r << 16 | g << 8 | b); } /* Lookup this colorpixel in the cache */ @@ -60,8 +60,7 @@ uint32_t get_colorpixel(const char *hex) { xcb_alloc_color_reply_t *reply; - reply = xcb_alloc_color_reply(conn, xcb_alloc_color(conn, root_screen->default_colormap, - r16, g16, b16), + reply = xcb_alloc_color_reply(conn, xcb_alloc_color(conn, root_screen->default_colormap, r16, g16, b16), NULL); if (!reply) { @@ -74,7 +73,10 @@ uint32_t get_colorpixel(const char *hex) { /* Store the result in the cache */ struct Colorpixel *cache_pixel = scalloc(1, sizeof(struct Colorpixel)); - strncpy(cache_pixel->hex, hex, 8); + + strncpy(cache_pixel->hex, hex, 7); + cache_pixel->hex[7] = '\0'; + cache_pixel->pixel = pixel; SLIST_INSERT_HEAD(&(colorpixels), cache_pixel, colorpixels);