summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/options.go9
-rw-r--r--src/options_test.go12
2 files changed, 18 insertions, 3 deletions
diff --git a/src/options.go b/src/options.go
index 9d8aaa15..81fa3772 100644
--- a/src/options.go
+++ b/src/options.go
@@ -380,8 +380,11 @@ func parseTiebreak(str string) tiebreak {
}
func dupeTheme(theme *curses.ColorTheme) *curses.ColorTheme {
- dupe := *theme
- return &dupe
+ if theme != nil {
+ dupe := *theme
+ return &dupe
+ }
+ return nil
}
func parseTheme(defaultTheme *curses.ColorTheme, str string) *curses.ColorTheme {
@@ -402,7 +405,7 @@ func parseTheme(defaultTheme *curses.ColorTheme, str string) *curses.ColorTheme
}
// Color is disabled
if theme == nil {
- errorExit("colors disabled; cannot customize colors")
+ continue
}
pair := strings.Split(str, ":")
diff --git a/src/options_test.go b/src/options_test.go
index 1f96f785..1e9ede4e 100644
--- a/src/options_test.go
+++ b/src/options_test.go
@@ -316,3 +316,15 @@ func TestColorSpec(t *testing.T) {
t.Errorf("using default colors")
}
}
+
+func TestParseNilTheme(t *testing.T) {
+ var theme *curses.ColorTheme
+ newTheme := parseTheme(theme, "prompt:12")
+ if newTheme != nil {
+ t.Errorf("color is disabled. keep it that way.")
+ }
+ newTheme = parseTheme(theme, "prompt:12,dark,prompt:13")
+ if newTheme.Prompt != 13 {
+ t.Errorf("color should now be enabled and customized")
+ }
+}