summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Krennmair <ak@synflood.at>2007-02-04 16:45:50 +0000
committerAndreas Krennmair <ak@synflood.at>2007-02-04 16:45:50 +0000
commit8ad00cf4fdb4057eb0af0d52410ebd5243592ce4 (patch)
treeb39aab727baacda445331ce2dd7185d401e31fbf
parent3c08c1871753417c7acb58ea11bd210df1f9f59d (diff)
Andreas Krennmair:
implemented default color.
-rw-r--r--doc/newsbeuter.txt3
-rw-r--r--src/colormanager.cpp22
2 files changed, 21 insertions, 4 deletions
diff --git a/doc/newsbeuter.txt b/doc/newsbeuter.txt
index 5a1f0b2e..ef236b3f 100644
--- a/doc/newsbeuter.txt
+++ b/doc/newsbeuter.txt
@@ -189,6 +189,9 @@ supported:
- magenta
- cyan
- white
+- default
+
+The "default" color means that the terminal's default color will be used.
Optionally, you can also add one or more attributes. The following attributes are
supported:
diff --git a/src/colormanager.cpp b/src/colormanager.cpp
index 4b290062..4f83a2e1 100644
--- a/src/colormanager.cpp
+++ b/src/colormanager.cpp
@@ -46,9 +46,19 @@ void colormanager::set_colors(view * v) {
std::map<std::string,std::vector<std::string> >::iterator attit = attributes.begin();
for (;fgcit != fg_colors.end(); ++fgcit, ++bgcit, ++attit) {
- std::string colorattr = std::string("fg=") + fgcit->second + std::string(",bg=") + bgcit->second;
+ std::string colorattr;
+ if (fgcit->second != "default") {
+ colorattr.append("bg=");
+ colorattr.append(fgcit->second);
+ }
+ if (bgcit->second != "default") {
+ colorattr.append("bg=");
+ colorattr.append(bgcit->second);
+ }
for (std::vector<std::string>::iterator it=attit->second.begin(); it!= attit->second.end(); ++it) {
- colorattr.append(",attr=");
+ if (colorattr.length() > 0)
+ colorattr.append(",");
+ colorattr.append("attr=");
colorattr.append(*it);
}
@@ -61,8 +71,12 @@ void colormanager::set_colors(view * v) {
v->selecttag_form.set(fgcit->first, colorattr);
if (fgcit->first == "article") {
- std::string styleend_str("fg=blue,bg=");
- styleend_str.append(bgcit->second);
+ std::string styleend_str("fg=blue");
+
+ if (bgcit->second != "default") {
+ styleend_str.append(",bg=");
+ styleend_str.append(bgcit->second);
+ }
styleend_str.append(",attr=bold");
v->help_form.set("styleend", styleend_str.c_str());