/* #RRGGBB[AA] String to Internal Color Code */
static rcolor rgb2col(const char *rgb)
{
unsigned int r = 0, g = 0, b = 0, a = 0; /* -Wall */
if(rgb[0] != '#')
error(_("invalid RGB specification"));
switch (strlen(rgb)) {
case 9:
a = 16 * hexdigit(rgb[7]) + hexdigit(rgb[8]);
case 7:
r = 16 * hexdigit(rgb[1]) + hexdigit(rgb[2]);
g = 16 * hexdigit(rgb[3]) + hexdigit(rgb[4]);
b = 16 * hexdigit(rgb[5]) + hexdigit(rgb[6]);
break;
default:
error(_("invalid RGB specification"));
}
if(strlen(rgb) == 7)
return R_RGB(r, g, b);
else
return R_RGBA(r, g, b, a);
}