… | |
… | |
637 | { |
637 | { |
638 | rxvt_rgba c; |
638 | rxvt_rgba c; |
639 | char eos; |
639 | char eos; |
640 | int skip; |
640 | int skip; |
641 | |
641 | |
642 | if (1 <= sscanf (name, "[%hx]%n", &c.a, &skip)) |
642 | if (1 <= sscanf (name, "[%hd]%n", &c.a, &skip)) |
643 | { |
643 | { |
644 | switch (skip) |
644 | c.a = lerp<int, int, int> (0, rxvt_rgba::MAX_CC, c.a); |
645 | { |
|
|
646 | case 2 + 1: c.a *= rxvt_rgba::MAX_CC / 0x000f; break; |
|
|
647 | case 2 + 2: c.a *= rxvt_rgba::MAX_CC / 0x00ff; break; |
|
|
648 | case 2 + 3: c.a *= rxvt_rgba::MAX_CC / 0x0fff; break; |
|
|
649 | case 2 + 4: c.a *= rxvt_rgba::MAX_CC / 0xffff; break; |
|
|
650 | } |
|
|
651 | |
|
|
652 | name += skip; |
645 | name += skip; |
653 | } |
646 | } |
654 | else |
647 | else |
655 | c.a = rxvt_rgba::MAX_CC; |
648 | c.a = rxvt_rgba::MAX_CC; |
656 | |
649 | |