aboutsummaryrefslogtreecommitdiffhomepage
path: root/color.cpp
diff options
context:
space:
mode:
authorGravatar ridiculousfish <corydoras@ridiculousfish.com>2012-03-10 16:15:56 -0800
committerGravatar ridiculousfish <corydoras@ridiculousfish.com>2012-03-10 16:15:56 -0800
commitd81bd296fcafb9a8342fc48d0f7a8674afef020b (patch)
treeae3a5dde8c24f80718baec483ecc14e177ebf07d /color.cpp
parent6d3f257439e3434804716333d49da05326084b5c (diff)
Tweak rgb_color_t back down to 4 bytes
Diffstat (limited to 'color.cpp')
-rw-r--r--color.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/color.cpp b/color.cpp
index 1b855db4..b6ffcb60 100644
--- a/color.cpp
+++ b/color.cpp
@@ -135,7 +135,17 @@ bool rgb_color_t::try_parse_named(const wcstring &str) {
return false;
}
-rgb_color_t::rgb_color_t(unsigned char t, unsigned char i) : type(t), data(), flags() {
+static const wchar_t *name_for_color_idx(unsigned char idx) {
+ size_t max = sizeof named_colors / sizeof *named_colors;
+ for (size_t i=0; i < max; i++) {
+ if (named_colors[i].idx == idx) {
+ return named_colors[i].name;
+ }
+ }
+ return L"unknown";
+}
+
+rgb_color_t::rgb_color_t(unsigned char t, unsigned char i) : type(t), flags(), data() {
data.name_idx = i;
}
@@ -240,15 +250,17 @@ wcstring rgb_color_t::description() const {
case type_none:
return L"none";
case type_named:
- return format_string(L"named(%d)", (int)data.name_idx);
+ return format_string(L"named(%d: %ls)", (int)data.name_idx, name_for_color_idx(data.name_idx));
case type_rgb:
return format_string(L"rgb(0x%02x%02x%02x)", data.rgb[0], data.rgb[1], data.rgb[2]);
case type_reset:
return L"reset";
+ case type_normal:
+ return L"normal";
case type_ignore:
return L"ignore";
default:
abort();
return L"";
}
-} \ No newline at end of file
+}