about summary refs log tree commit diff
path: root/Src
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2007-10-28 00:21:54 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2007-10-28 00:21:54 +0000
commit52d3fdc80eec12f43f005a93e902dbc64e7591fc (patch)
treef92b0f5bae2a35d14047cb4c3e11e046de703df1 /Src
parent1c6416596ab0baa03302f09a9ae67377756637bf (diff)
downloadzsh-52d3fdc80eec12f43f005a93e902dbc64e7591fc.tar.gz
zsh-52d3fdc80eec12f43f005a93e902dbc64e7591fc.tar.xz
zsh-52d3fdc80eec12f43f005a93e902dbc64e7591fc.zip
24026: default colors in zcurses
Diffstat (limited to 'Src')
-rw-r--r--Src/Modules/curses.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/Src/Modules/curses.c b/Src/Modules/curses.c
index 919049ab0..e82576133 100644
--- a/Src/Modules/curses.c
+++ b/Src/Modules/curses.c
@@ -121,6 +121,9 @@ static const struct zcurses_namenumberpair zcurses_colors[] = {
     {"magenta", COLOR_MAGENTA},
     {"cyan", COLOR_CYAN},
     {"white", COLOR_WHITE},
+#ifdef HAVE_USE_DEFAULT_COLORS
+    {"default", -1},
+#endif
     {NULL, 0}
 };
 
@@ -337,6 +340,8 @@ zccmd_init(const char *nam, char **args)
 	w->flags = ZCWF_PERMANENT;
 	zinsertlinknode(zcurses_windows, lastnode(zcurses_windows), (void *)w);
 	if (start_color() != ERR) {
+	    Colorpairnode cpn;
+
 	    if(!zc_color_phase)
 		zc_color_phase = 1;
 	    zcurses_colorpairs = newhashtable(8, "zc_colorpairs", NULL);
@@ -354,6 +359,16 @@ zccmd_init(const char *nam, char **args)
 	    zcurses_colorpairs->freenode    = freecolorpairnode;
 	    zcurses_colorpairs->printnode   = NULL;
 
+#ifdef HAVE_USE_DEFAULT_COLORS
+	    use_default_colors();
+#endif
+	    /* Initialise the default color pair, always 0 */
+	    cpn = (Colorpairnode)zalloc(sizeof(struct colorpairnode));
+	    if (cpn) {
+		cpn->colorpair = 0;
+		addhashnode(zcurses_colorpairs,
+			    ztrdup("default/default"), (void *)cpn);
+	    }
 	}
 	/*
 	 * We use cbreak mode because we don't want line buffering