i3lock-color

The world's most popular non-default computer lockscreen.
Index Commits Files Refs README LICENSE
commit 1cdaf076fc36983821266607fcb5fd927b86b407
parent a5274aab9b96f84addc69fb18f2d7e6e2d39d772
Author: BenoƮt Dardenne <benoit.dardenne@gmail.com>
Date:   Sun, 12 Apr 2020 13:25:29 +0200

For backwards compatibility, alllow 3-byte colors and assume full opacity in that case.

Diffstat:
Mi3lock.c | 8+++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/i3lock.c b/i3lock.c
@@ -1501,8 +1501,14 @@ int main(int argc, char *argv[]) {
 #define parse_color(acolor)\
     arg = optarg;\
     if (arg[0] == '#') arg++;\
+    if (strlen(arg) == 6) {\
+      /* If 6 digits given, assume RGB and pad 0xff for alpha */\
+      char padded[9] = "ffffffff"; \
+      strncpy( padded, arg, 6 );\
+      arg = padded;\
+    }\
     if (strlen(arg) != 8 || sscanf(arg, "%08[0-9a-fA-F]", acolor) != 1)\
-        errx(1, #acolor " is invalid, color must be given in 4-byte format: rrggbbaa\n");
+        errx(1, #acolor " is invalid, color must be given in 3 or 4-byte format: rrggbb[aa]\n");
 
     while ((o = getopt_long(argc, argv, optstring, longopts, &longoptind)) != -1) {
         switch (o) {