mirror of
				https://github.com/tmux/tmux.git
				synced 2025-10-26 12:27:15 +00:00 
			
		
		
		
	Sync OpenBSD patchset 322:
Permit options such as status-bg to be configured using the entire 256 colour palette by setting "colour0" to "colour255".
This commit is contained in:
		
							
								
								
									
										6
									
								
								clock.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								clock.c
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: clock.c,v 1.6 2009-08-26 22:12:21 tcunha Exp $ */ | /* $Id: clock.c,v 1.7 2009-09-11 14:13:52 tcunha Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net> |  * Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net> | ||||||
| @@ -120,7 +120,7 @@ clock_draw(struct screen_write_ctx *ctx, u_int colour, int style) | |||||||
| 			screen_write_cursormove(ctx, x, y); | 			screen_write_cursormove(ctx, x, y); | ||||||
|  |  | ||||||
| 			memcpy(&gc, &grid_default_cell, sizeof gc); | 			memcpy(&gc, &grid_default_cell, sizeof gc); | ||||||
| 			gc.fg = colour; | 			colour_set_fg(&gc, colour); | ||||||
| 			screen_write_puts(ctx, &gc, "%s", tim); | 			screen_write_puts(ctx, &gc, "%s", tim); | ||||||
| 		} | 		} | ||||||
| 		return; | 		return; | ||||||
| @@ -130,7 +130,7 @@ clock_draw(struct screen_write_ctx *ctx, u_int colour, int style) | |||||||
| 	y = (screen_size_y(s) / 2) - 3; | 	y = (screen_size_y(s) / 2) - 3; | ||||||
|  |  | ||||||
| 	memcpy(&gc, &grid_default_cell, sizeof gc); | 	memcpy(&gc, &grid_default_cell, sizeof gc); | ||||||
| 	gc.bg = colour; | 	colour_set_bg(&gc, colour); | ||||||
| 	for (ptr = tim; *ptr != '\0'; ptr++) { | 	for (ptr = tim; *ptr != '\0'; ptr++) { | ||||||
| 		if (*ptr >= '0' && *ptr <= '9') | 		if (*ptr >= '0' && *ptr <= '9') | ||||||
| 			idx = *ptr - '0'; | 			idx = *ptr - '0'; | ||||||
|   | |||||||
							
								
								
									
										45
									
								
								colour.c
									
									
									
									
									
								
							
							
						
						
									
										45
									
								
								colour.c
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: colour.c,v 1.6 2009-05-18 15:42:30 nicm Exp $ */ | /* $Id: colour.c,v 1.7 2009-09-11 14:13:52 tcunha Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net> |  * Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net> | ||||||
| @@ -18,13 +18,42 @@ | |||||||
|  |  | ||||||
| #include <sys/types.h> | #include <sys/types.h> | ||||||
|  |  | ||||||
|  | #include <stdlib.h> | ||||||
| #include <string.h> | #include <string.h> | ||||||
|  |  | ||||||
| #include "tmux.h" | #include "tmux.h" | ||||||
|  |  | ||||||
| const char * | /* | ||||||
| colour_tostring(u_char c) |  * Colour to string conversion functions. Bit 8 of the colour means it is one | ||||||
|  |  * of the 256 colour palette. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | void | ||||||
|  | colour_set_fg(struct grid_cell *gc, int c) | ||||||
| { | { | ||||||
|  | 	if (c & 0x100) | ||||||
|  | 		gc->flags |= GRID_FLAG_FG256; | ||||||
|  | 	gc->fg = c; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void | ||||||
|  | colour_set_bg(struct grid_cell *gc, int c) | ||||||
|  | { | ||||||
|  | 	if (c & 0x100) | ||||||
|  | 		gc->flags |= GRID_FLAG_BG256; | ||||||
|  | 	gc->bg = c; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const char * | ||||||
|  | colour_tostring(int c) | ||||||
|  | { | ||||||
|  | 	static char	s[32]; | ||||||
|  |  | ||||||
|  | 	if (c & 0x100) { | ||||||
|  | 		xsnprintf(s, sizeof s, "colour%u", c & ~0x100); | ||||||
|  | 		return (s); | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	switch (c) { | 	switch (c) { | ||||||
| 	case 0: | 	case 0: | ||||||
| 		return ("black"); | 		return ("black"); | ||||||
| @@ -51,6 +80,16 @@ colour_tostring(u_char c) | |||||||
| int | int | ||||||
| colour_fromstring(const char *s) | colour_fromstring(const char *s) | ||||||
| { | { | ||||||
|  | 	const char	*errstr; | ||||||
|  | 	int		 n; | ||||||
|  |  | ||||||
|  | 	if (strncasecmp(s, "colour", (sizeof "colour") - 1) == 0) { | ||||||
|  | 		n = strtonum(s + (sizeof "colour") - 1, 0, 255, &errstr); | ||||||
|  | 		if (errstr != NULL) | ||||||
|  | 			return (-1); | ||||||
|  | 		return (n | 0x100); | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	if (strcasecmp(s, "black") == 0 || (s[0] == '0' && s[1] == '\0')) | 	if (strcasecmp(s, "black") == 0 || (s[0] == '0' && s[1] == '\0')) | ||||||
| 		return (0); | 		return (0); | ||||||
| 	if (strcasecmp(s, "red") == 0 || (s[0] == '1' && s[1] == '\0')) | 	if (strcasecmp(s, "red") == 0 || (s[0] == '1' && s[1] == '\0')) | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: screen-redraw.c,v 1.46 2009-08-31 22:30:15 tcunha Exp $ */ | /* $Id: screen-redraw.c,v 1.47 2009-09-11 14:13:52 tcunha Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> |  * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> | ||||||
| @@ -240,7 +240,7 @@ screen_redraw_draw_number(struct client *c, struct window_pane *wp) | |||||||
| 	struct session		*s = c->session; | 	struct session		*s = c->session; | ||||||
| 	struct grid_cell	 gc; | 	struct grid_cell	 gc; | ||||||
| 	u_int			 idx, px, py, i, j; | 	u_int			 idx, px, py, i, j; | ||||||
| 	u_char			 colour; | 	int			 colour; | ||||||
| 	char			 buf[16], *ptr; | 	char			 buf[16], *ptr; | ||||||
| 	size_t			 len; | 	size_t			 len; | ||||||
|  |  | ||||||
| @@ -256,7 +256,7 @@ screen_redraw_draw_number(struct client *c, struct window_pane *wp) | |||||||
| 	if (wp->sx < len * 6 || wp->sy < 5) { | 	if (wp->sx < len * 6 || wp->sy < 5) { | ||||||
| 		tty_cursor(tty, px - len / 2, py, wp->xoff, wp->yoff); | 		tty_cursor(tty, px - len / 2, py, wp->xoff, wp->yoff); | ||||||
| 		memcpy(&gc, &grid_default_cell, sizeof gc); | 		memcpy(&gc, &grid_default_cell, sizeof gc); | ||||||
| 		gc.fg = colour; | 		colour_set_fg(&gc, colour); | ||||||
| 		tty_attributes(tty, &gc); | 		tty_attributes(tty, &gc); | ||||||
| 		tty_puts(tty, buf); | 		tty_puts(tty, buf); | ||||||
| 		return; | 		return; | ||||||
| @@ -266,7 +266,7 @@ screen_redraw_draw_number(struct client *c, struct window_pane *wp) | |||||||
| 	py -= 2; | 	py -= 2; | ||||||
|  |  | ||||||
| 	memcpy(&gc, &grid_default_cell, sizeof gc); | 	memcpy(&gc, &grid_default_cell, sizeof gc); | ||||||
| 	gc.bg = colour; | 	colour_set_bg(&gc, colour); | ||||||
| 	tty_attributes(tty, &gc); | 	tty_attributes(tty, &gc); | ||||||
| 	for (ptr = buf; *ptr != '\0'; ptr++) { | 	for (ptr = buf; *ptr != '\0'; ptr++) { | ||||||
| 		if (*ptr < '0' || *ptr > '9') | 		if (*ptr < '0' || *ptr > '9') | ||||||
| @@ -276,8 +276,7 @@ screen_redraw_draw_number(struct client *c, struct window_pane *wp) | |||||||
| 		for (j = 0; j < 5; j++) { | 		for (j = 0; j < 5; j++) { | ||||||
| 			for (i = px; i < px + 5; i++) { | 			for (i = px; i < px + 5; i++) { | ||||||
| 				tty_cursor(tty, i, py + j, wp->xoff, wp->yoff); | 				tty_cursor(tty, i, py + j, wp->xoff, wp->yoff); | ||||||
| 				if (!clock_table[idx][j][i - px]) | 				if (clock_table[idx][j][i - px]) | ||||||
| 					continue; |  | ||||||
| 					tty_putc(tty, ' '); | 					tty_putc(tty, ' '); | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: screen-write.c,v 1.71 2009-09-07 23:37:48 tcunha Exp $ */ | /* $Id: screen-write.c,v 1.72 2009-09-11 14:13:52 tcunha Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> |  * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> | ||||||
| @@ -300,7 +300,7 @@ screen_write_parsestyle( | |||||||
| 	char		tmp[32]; | 	char		tmp[32]; | ||||||
| 	int		val; | 	int		val; | ||||||
| 	size_t		end; | 	size_t		end; | ||||||
| 	u_char		fg, bg, attr; | 	u_char		fg, bg, attr, flags; | ||||||
|  |  | ||||||
| 	if (*in == '\0') | 	if (*in == '\0') | ||||||
| 		return; | 		return; | ||||||
| @@ -309,7 +309,8 @@ screen_write_parsestyle( | |||||||
|  |  | ||||||
| 	fg = gc->fg; | 	fg = gc->fg; | ||||||
| 	bg = gc->bg; | 	bg = gc->bg; | ||||||
| 	attr = 0; | 	attr = gc->attr; | ||||||
|  | 	flags = gc->flags; | ||||||
| 	do { | 	do { | ||||||
| 		end = strcspn(in, delimiters); | 		end = strcspn(in, delimiters); | ||||||
| 		if (end > (sizeof tmp) - 1) | 		if (end > (sizeof tmp) - 1) | ||||||
| @@ -325,14 +326,24 @@ screen_write_parsestyle( | |||||||
| 			if ((val = colour_fromstring(tmp + 3)) == -1) | 			if ((val = colour_fromstring(tmp + 3)) == -1) | ||||||
| 				return; | 				return; | ||||||
| 			if (*in == 'f' || *in == 'F') { | 			if (*in == 'f' || *in == 'F') { | ||||||
| 				if (val != 8) | 				if (val != 8) { | ||||||
|  | 					if (val & 0x100) { | ||||||
|  | 						flags |= GRID_FLAG_FG256; | ||||||
|  | 						val &= ~0x100; | ||||||
|  | 					} else | ||||||
|  | 						flags &= ~GRID_FLAG_FG256; | ||||||
| 					fg = val; | 					fg = val; | ||||||
| 				else | 				} else | ||||||
| 					fg = defgc->fg; | 					fg = defgc->fg; | ||||||
| 			} else if (*in == 'b' || *in == 'B') { | 			} else if (*in == 'b' || *in == 'B') { | ||||||
| 				if (val != 8) | 				if (val != 8) { | ||||||
|  | 					if (val & 0x100) { | ||||||
|  | 						flags |= GRID_FLAG_BG256; | ||||||
|  | 						val &= ~0x100; | ||||||
|  | 					} else | ||||||
|  | 						flags &= ~GRID_FLAG_BG256; | ||||||
| 					bg = val; | 					bg = val; | ||||||
| 				else | 				} else | ||||||
| 					bg = defgc->bg; | 					bg = defgc->bg; | ||||||
| 			} else | 			} else | ||||||
| 				return; | 				return; | ||||||
| @@ -347,6 +358,7 @@ screen_write_parsestyle( | |||||||
| 	gc->fg = fg; | 	gc->fg = fg; | ||||||
| 	gc->bg = bg; | 	gc->bg = bg; | ||||||
| 	gc->attr = attr; | 	gc->attr = attr; | ||||||
|  | 	gc->flags = flags; | ||||||
| } | } | ||||||
|  |  | ||||||
| /* Copy from another screen. */ | /* Copy from another screen. */ | ||||||
| @@ -1002,7 +1014,8 @@ screen_write_cell( | |||||||
| 	if (screen_check_selection(s, s->cx - width, s->cy)) { | 	if (screen_check_selection(s, s->cx - width, s->cy)) { | ||||||
| 		memcpy(&tmp_gc2, &s->sel.cell, sizeof tmp_gc2); | 		memcpy(&tmp_gc2, &s->sel.cell, sizeof tmp_gc2); | ||||||
| 		tmp_gc2.data = gc->data; | 		tmp_gc2.data = gc->data; | ||||||
| 		tmp_gc2.flags = gc->flags; | 		tmp_gc2.flags = gc->flags & ~(GRID_FLAG_FG256|GRID_FLAG_BG256); | ||||||
|  | 		tmp_gc2.flags |= s->sel.cell.flags & (GRID_FLAG_FG256|GRID_FLAG_BG256); | ||||||
| 		ttyctx.cell = &tmp_gc2; | 		ttyctx.cell = &tmp_gc2; | ||||||
| 		tty_write(tty_cmd_cell, &ttyctx); | 		tty_write(tty_cmd_cell, &ttyctx); | ||||||
| 	} else { | 	} else { | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								server.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								server.c
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: server.c,v 1.183 2009-09-08 00:01:11 tcunha Exp $ */ | /* $Id: server.c,v 1.184 2009-09-11 14:13:52 tcunha Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> |  * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> | ||||||
| @@ -604,7 +604,7 @@ server_redraw_locked(struct client *c) | |||||||
| 	style = options_get_number(&global_w_options, "clock-mode-style"); | 	style = options_get_number(&global_w_options, "clock-mode-style"); | ||||||
|  |  | ||||||
| 	memcpy(&gc, &grid_default_cell, sizeof gc); | 	memcpy(&gc, &grid_default_cell, sizeof gc); | ||||||
| 	gc.fg = colour; | 	colour_set_fg(&gc, colour); | ||||||
| 	gc.attr |= GRID_ATTR_BRIGHT; | 	gc.attr |= GRID_ATTR_BRIGHT; | ||||||
|  |  | ||||||
| 	screen_init(&screen, xx, yy, 0); | 	screen_init(&screen, xx, yy, 0); | ||||||
|   | |||||||
							
								
								
									
										43
									
								
								status.c
									
									
									
									
									
								
							
							
						
						
									
										43
									
								
								status.c
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: status.c,v 1.117 2009-09-07 23:48:54 tcunha Exp $ */ | /* $Id: status.c,v 1.118 2009-09-11 14:13:52 tcunha Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> |  * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> | ||||||
| @@ -66,8 +66,8 @@ status_redraw(struct client *c) | |||||||
| 	if (gettimeofday(&c->status_timer, NULL) != 0) | 	if (gettimeofday(&c->status_timer, NULL) != 0) | ||||||
| 		fatal("gettimeofday"); | 		fatal("gettimeofday"); | ||||||
| 	memcpy(&stdgc, &grid_default_cell, sizeof gc); | 	memcpy(&stdgc, &grid_default_cell, sizeof gc); | ||||||
| 	stdgc.fg = options_get_number(&s->options, "status-fg"); | 	colour_set_fg(&stdgc, options_get_number(&s->options, "status-fg")); | ||||||
| 	stdgc.bg = options_get_number(&s->options, "status-bg"); | 	colour_set_bg(&stdgc, options_get_number(&s->options, "status-bg")); | ||||||
| 	stdgc.attr |= options_get_number(&s->options, "status-attr"); | 	stdgc.attr |= options_get_number(&s->options, "status-attr"); | ||||||
|  |  | ||||||
| 	/*  | 	/*  | ||||||
| @@ -79,19 +79,19 @@ status_redraw(struct client *c) | |||||||
| 	memcpy(&sr_stdgc, &stdgc, sizeof sr_stdgc); | 	memcpy(&sr_stdgc, &stdgc, sizeof sr_stdgc); | ||||||
| 	sl_fg = options_get_number(&s->options, "status-left-fg"); | 	sl_fg = options_get_number(&s->options, "status-left-fg"); | ||||||
| 	if (sl_fg != 8) | 	if (sl_fg != 8) | ||||||
| 		sl_stdgc.fg = sl_fg; | 		colour_set_fg(&sl_stdgc, sl_fg); | ||||||
| 	sl_bg = options_get_number(&s->options, "status-left-bg"); | 	sl_bg = options_get_number(&s->options, "status-left-bg"); | ||||||
| 	if (sl_bg != 8) | 	if (sl_bg != 8) | ||||||
| 		sl_stdgc.bg = sl_bg;		 | 		colour_set_bg(&sl_stdgc, sl_bg); | ||||||
| 	sl_attr = options_get_number(&s->options, "status-left-attr"); | 	sl_attr = options_get_number(&s->options, "status-left-attr"); | ||||||
| 	if (sl_attr != 0) | 	if (sl_attr != 0) | ||||||
| 		sl_stdgc.attr = sl_attr; | 		sl_stdgc.attr = sl_attr; | ||||||
| 	sr_fg = options_get_number(&s->options, "status-right-fg"); | 	sr_fg = options_get_number(&s->options, "status-right-fg"); | ||||||
| 	if (sr_fg != 8) | 	if (sr_fg != 8) | ||||||
| 		sr_stdgc.fg = sr_fg; | 		colour_set_fg(&sr_stdgc, sr_fg); | ||||||
| 	sr_bg = options_get_number(&s->options, "status-right-bg"); | 	sr_bg = options_get_number(&s->options, "status-right-bg"); | ||||||
| 	if (sr_bg != 8) | 	if (sr_bg != 8) | ||||||
| 		sr_stdgc.bg = sr_bg; | 		colour_set_bg(&sr_stdgc, sr_bg); | ||||||
| 	sr_attr = options_get_number(&s->options, "status-right-attr"); | 	sr_attr = options_get_number(&s->options, "status-right-attr"); | ||||||
| 	if (sr_attr != 0) | 	if (sr_attr != 0) | ||||||
| 		sr_stdgc.attr = sr_attr; | 		sr_stdgc.attr = sr_attr; | ||||||
| @@ -501,16 +501,17 @@ status_width(struct winlink *wl) | |||||||
| char * | char * | ||||||
| status_print(struct session *s, struct winlink *wl, struct grid_cell *gc) | status_print(struct session *s, struct winlink *wl, struct grid_cell *gc) | ||||||
| { | { | ||||||
|  | 	struct options	*oo = &wl->window->options; | ||||||
| 	char   		*text, flag; | 	char   		*text, flag; | ||||||
| 	u_char		 fg, bg, attr; | 	u_char		 fg, bg, attr; | ||||||
|  |  | ||||||
| 	fg = options_get_number(&wl->window->options, "window-status-fg"); | 	fg = options_get_number(oo, "window-status-fg"); | ||||||
| 	if (fg != 8) | 	if (fg != 8) | ||||||
| 		gc->fg = fg; | 		colour_set_fg(gc, fg); | ||||||
| 	bg = options_get_number(&wl->window->options, "window-status-bg"); | 	bg = options_get_number(oo, "window-status-bg"); | ||||||
| 	if (bg != 8) | 	if (bg != 8) | ||||||
| 		gc->bg = bg; | 		colour_set_bg(gc, bg); | ||||||
| 	attr = options_get_number(&wl->window->options, "window-status-attr"); | 	attr = options_get_number(oo, "window-status-attr"); | ||||||
| 	if (attr != 0) | 	if (attr != 0) | ||||||
| 		gc->attr = attr; | 		gc->attr = attr; | ||||||
|  |  | ||||||
| @@ -518,13 +519,13 @@ status_print(struct session *s, struct winlink *wl, struct grid_cell *gc) | |||||||
|  	if (wl == SLIST_FIRST(&s->lastw)) |  	if (wl == SLIST_FIRST(&s->lastw)) | ||||||
| 		flag = '-'; | 		flag = '-'; | ||||||
| 	if (wl == s->curw) { | 	if (wl == s->curw) { | ||||||
| 		fg = options_get_number(&wl->window->options, "window-status-current-fg"); | 		fg = options_get_number(oo, "window-status-current-fg"); | ||||||
| 		if (fg != 8) | 		if (fg != 8) | ||||||
| 			gc->fg = fg; | 			colour_set_fg(gc, fg); | ||||||
| 		bg = options_get_number(&wl->window->options, "window-status-current-bg"); | 		bg = options_get_number(oo, "window-status-current-bg"); | ||||||
| 		if (bg != 8) | 		if (bg != 8) | ||||||
| 			gc->bg = bg; | 			colour_set_bg(gc, bg); | ||||||
| 		attr = options_get_number(&wl->window->options, "window-status-current-attr"); | 		attr = options_get_number(oo, "window-status-current-attr"); | ||||||
| 		if (attr != 0) | 		if (attr != 0) | ||||||
| 			gc->attr = attr; | 			gc->attr = attr; | ||||||
| 		flag = '*'; | 		flag = '*'; | ||||||
| @@ -606,8 +607,8 @@ status_message_redraw(struct client *c) | |||||||
| 		len = c->tty.sx; | 		len = c->tty.sx; | ||||||
|  |  | ||||||
| 	memcpy(&gc, &grid_default_cell, sizeof gc); | 	memcpy(&gc, &grid_default_cell, sizeof gc); | ||||||
| 	gc.fg = options_get_number(&s->options, "message-fg"); | 	colour_set_fg(&gc, options_get_number(&s->options, "message-fg")); | ||||||
| 	gc.bg = options_get_number(&s->options, "message-bg"); | 	colour_set_bg(&gc, options_get_number(&s->options, "message-bg")); | ||||||
| 	gc.attr |= options_get_number(&s->options, "message-attr"); | 	gc.attr |= options_get_number(&s->options, "message-attr"); | ||||||
|  |  | ||||||
| 	screen_write_start(&ctx, NULL, &c->status); | 	screen_write_start(&ctx, NULL, &c->status); | ||||||
| @@ -719,8 +720,8 @@ status_prompt_redraw(struct client *c) | |||||||
| 		len = c->tty.sx; | 		len = c->tty.sx; | ||||||
|  |  | ||||||
| 	memcpy(&gc, &grid_default_cell, sizeof gc); | 	memcpy(&gc, &grid_default_cell, sizeof gc); | ||||||
| 	gc.fg = options_get_number(&s->options, "message-fg"); | 	colour_set_fg(&gc, options_get_number(&s->options, "message-fg")); | ||||||
| 	gc.bg = options_get_number(&s->options, "message-bg"); | 	colour_set_bg(&gc, options_get_number(&s->options, "message-bg")); | ||||||
| 	gc.attr |= options_get_number(&s->options, "message-attr"); | 	gc.attr |= options_get_number(&s->options, "message-attr"); | ||||||
|  |  | ||||||
| 	screen_write_start(&ctx, NULL, &c->status); | 	screen_write_start(&ctx, NULL, &c->status); | ||||||
|   | |||||||
							
								
								
									
										11
									
								
								tmux.1
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								tmux.1
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| .\" $Id: tmux.1,v 1.166 2009-09-08 00:01:11 tcunha Exp $ | .\" $Id: tmux.1,v 1.167 2009-09-11 14:13:52 tcunha Exp $ | ||||||
| .\" | .\" | ||||||
| .\" Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> | .\" Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> | ||||||
| .\" | .\" | ||||||
| @@ -14,7 +14,7 @@ | |||||||
| .\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING | .\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING | ||||||
| .\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | .\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||||||
| .\" | .\" | ||||||
| .Dd $Mdocdate: September 7 2009 $ | .Dd $Mdocdate: September 10 2009 $ | ||||||
| .Dt TMUX 1 | .Dt TMUX 1 | ||||||
| .Os | .Os | ||||||
| .Sh NAME | .Sh NAME | ||||||
| @@ -1250,8 +1250,11 @@ is one of: | |||||||
| .Ic blue , | .Ic blue , | ||||||
| .Ic magenta , | .Ic magenta , | ||||||
| .Ic cyan , | .Ic cyan , | ||||||
| .Ic white | .Ic white , | ||||||
| or | .Ic colour0 | ||||||
|  | to | ||||||
|  | .Ic colour255 | ||||||
|  | from the 256-colour palette, or | ||||||
| .Ic default . | .Ic default . | ||||||
| .It Ic message-fg Ar colour | .It Ic message-fg Ar colour | ||||||
| Set status line message foreground colour. | Set status line message foreground colour. | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								tmux.h
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								tmux.h
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: tmux.h,v 1.439 2009-09-07 23:59:19 tcunha Exp $ */ | /* $Id: tmux.h,v 1.440 2009-09-11 14:13:52 tcunha Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> |  * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> | ||||||
| @@ -1484,7 +1484,9 @@ void	 input_key(struct window_pane *, int); | |||||||
| void	 input_mouse(struct window_pane *, u_char, u_char, u_char); | void	 input_mouse(struct window_pane *, u_char, u_char, u_char); | ||||||
|  |  | ||||||
| /* colour.c */ | /* colour.c */ | ||||||
| const char *colour_tostring(u_char); | void	 colour_set_fg(struct grid_cell *, int); | ||||||
|  | void	 colour_set_bg(struct grid_cell *, int); | ||||||
|  | const char *colour_tostring(int); | ||||||
| int	 colour_fromstring(const char *); | int	 colour_fromstring(const char *); | ||||||
| u_char	 colour_256to16(u_char); | u_char	 colour_256to16(u_char); | ||||||
| u_char	 colour_256to88(u_char); | u_char	 colour_256to88(u_char); | ||||||
|   | |||||||
							
								
								
									
										5
									
								
								tty.c
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								tty.c
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: tty.c,v 1.131 2009-08-31 22:30:15 tcunha Exp $ */ | /* $Id: tty.c,v 1.132 2009-09-11 14:13:52 tcunha Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> |  * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> | ||||||
| @@ -520,7 +520,8 @@ tty_draw_line(struct tty *tty, struct screen *s, u_int py, u_int ox, u_int oy) | |||||||
| 		if (screen_check_selection(s, i, py)) { | 		if (screen_check_selection(s, i, py)) { | ||||||
| 			memcpy(&tmpgc, &s->sel.cell, sizeof tmpgc); | 			memcpy(&tmpgc, &s->sel.cell, sizeof tmpgc); | ||||||
| 			tmpgc.data = gc->data; | 			tmpgc.data = gc->data; | ||||||
| 			tmpgc.flags = gc->flags; | 			tmpgc.flags = gc->flags & ~(GRID_FLAG_FG256|GRID_FLAG_BG256); | ||||||
|  | 			tmpgc.flags |= s->sel.cell.flags & (GRID_FLAG_FG256|GRID_FLAG_BG256); | ||||||
| 			tty_cell(tty, &tmpgc, gu); | 			tty_cell(tty, &tmpgc, gu); | ||||||
| 		} else | 		} else | ||||||
| 			tty_cell(tty, gc, gu); | 			tty_cell(tty, gc, gu); | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: window-choose.c,v 1.22 2009-08-09 16:50:57 tcunha Exp $ */ | /* $Id: window-choose.c,v 1.23 2009-09-11 14:13:52 tcunha Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net> |  * Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net> | ||||||
| @@ -295,6 +295,7 @@ window_choose_write_line( | |||||||
| { | { | ||||||
| 	struct window_choose_mode_data	*data = wp->modedata; | 	struct window_choose_mode_data	*data = wp->modedata; | ||||||
| 	struct window_choose_mode_item	*item; | 	struct window_choose_mode_item	*item; | ||||||
|  | 	struct options			*oo = &wp->window->options; | ||||||
| 	struct screen			*s = &data->screen; | 	struct screen			*s = &data->screen; | ||||||
| 	struct grid_cell		 gc; | 	struct grid_cell		 gc; | ||||||
|  	int				 utf8flag; |  	int				 utf8flag; | ||||||
| @@ -305,9 +306,9 @@ window_choose_write_line( | |||||||
| 	utf8flag = options_get_number(&wp->window->options, "utf8"); | 	utf8flag = options_get_number(&wp->window->options, "utf8"); | ||||||
| 	memcpy(&gc, &grid_default_cell, sizeof gc); | 	memcpy(&gc, &grid_default_cell, sizeof gc); | ||||||
| 	if (data->selected == data->top + py) { | 	if (data->selected == data->top + py) { | ||||||
| 		gc.fg = options_get_number(&wp->window->options, "mode-fg"); | 		colour_set_fg(&gc, options_get_number(oo, "mode-fg")); | ||||||
| 		gc.bg = options_get_number(&wp->window->options, "mode-bg"); | 		colour_set_bg(&gc, options_get_number(oo, "mode-bg")); | ||||||
| 		gc.attr |= options_get_number(&wp->window->options, "mode-attr"); | 		gc.attr |= options_get_number(oo, "mode-attr"); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	screen_write_cursormove(ctx, 0, py); | 	screen_write_cursormove(ctx, 0, py); | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: window-copy.c,v 1.85 2009-09-07 23:48:54 tcunha Exp $ */ | /* $Id: window-copy.c,v 1.86 2009-09-11 14:13:52 tcunha Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> |  * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> | ||||||
| @@ -660,14 +660,15 @@ window_copy_write_line( | |||||||
| { | { | ||||||
| 	struct window_copy_mode_data	*data = wp->modedata; | 	struct window_copy_mode_data	*data = wp->modedata; | ||||||
| 	struct screen			*s = &data->screen; | 	struct screen			*s = &data->screen; | ||||||
|  | 	struct options			*oo = &wp->window->options; | ||||||
| 	struct grid_cell		 gc; | 	struct grid_cell		 gc; | ||||||
| 	char				 hdr[32]; | 	char				 hdr[32]; | ||||||
| 	size_t	 			 last, xoff = 0, size = 0; | 	size_t	 			 last, xoff = 0, size = 0; | ||||||
|  |  | ||||||
| 	memcpy(&gc, &grid_default_cell, sizeof gc); | 	memcpy(&gc, &grid_default_cell, sizeof gc); | ||||||
| 	gc.fg = options_get_number(&wp->window->options, "mode-fg"); | 	colour_set_fg(&gc, options_get_number(oo, "mode-fg")); | ||||||
| 	gc.bg = options_get_number(&wp->window->options, "mode-bg"); | 	colour_set_bg(&gc, options_get_number(oo, "mode-bg")); | ||||||
| 	gc.attr |= options_get_number(&wp->window->options, "mode-attr"); | 	gc.attr |= options_get_number(oo, "mode-attr"); | ||||||
|  |  | ||||||
| 	last = screen_size_y(s) - 1; | 	last = screen_size_y(s) - 1; | ||||||
| 	if (py == 0) { | 	if (py == 0) { | ||||||
| @@ -765,6 +766,7 @@ window_copy_update_selection(struct window_pane *wp) | |||||||
| { | { | ||||||
| 	struct window_copy_mode_data	*data = wp->modedata; | 	struct window_copy_mode_data	*data = wp->modedata; | ||||||
| 	struct screen			*s = &data->screen; | 	struct screen			*s = &data->screen; | ||||||
|  | 	struct options			*oo = &wp->window->options; | ||||||
| 	struct grid_cell		 gc; | 	struct grid_cell		 gc; | ||||||
| 	u_int				 sx, sy, ty; | 	u_int				 sx, sy, ty; | ||||||
|  |  | ||||||
| @@ -773,9 +775,9 @@ window_copy_update_selection(struct window_pane *wp) | |||||||
|  |  | ||||||
| 	/* Set colours. */ | 	/* Set colours. */ | ||||||
| 	memcpy(&gc, &grid_default_cell, sizeof gc); | 	memcpy(&gc, &grid_default_cell, sizeof gc); | ||||||
| 	gc.fg = options_get_number(&wp->window->options, "mode-fg"); | 	colour_set_fg(&gc, options_get_number(oo, "mode-fg")); | ||||||
| 	gc.bg = options_get_number(&wp->window->options, "mode-bg"); | 	colour_set_bg(&gc, options_get_number(oo, "mode-bg")); | ||||||
| 	gc.attr |= options_get_number(&wp->window->options, "mode-attr"); | 	gc.attr |= options_get_number(oo, "mode-attr"); | ||||||
|  |  | ||||||
| 	/* Find top of screen. */ | 	/* Find top of screen. */ | ||||||
| 	ty = screen_hsize(&wp->base) - data->oy; | 	ty = screen_hsize(&wp->base) - data->oy; | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: window-more.c,v 1.37 2009-08-20 11:24:33 tcunha Exp $ */ | /* $Id: window-more.c,v 1.38 2009-09-11 14:13:52 tcunha Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> |  * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> | ||||||
| @@ -164,6 +164,7 @@ window_more_write_line( | |||||||
| { | { | ||||||
| 	struct window_more_mode_data	*data = wp->modedata; | 	struct window_more_mode_data	*data = wp->modedata; | ||||||
| 	struct screen			*s = &data->screen; | 	struct screen			*s = &data->screen; | ||||||
|  | 	struct options			*oo = &wp->window->options;	 | ||||||
| 	struct grid_cell		 gc; | 	struct grid_cell		 gc; | ||||||
| 	char   				*msg, hdr[32]; | 	char   				*msg, hdr[32]; | ||||||
| 	size_t	 			 size; | 	size_t	 			 size; | ||||||
| @@ -176,9 +177,9 @@ window_more_write_line( | |||||||
| 		size = xsnprintf(hdr, sizeof hdr, | 		size = xsnprintf(hdr, sizeof hdr, | ||||||
| 		    "[%u/%u]", data->top, ARRAY_LENGTH(&data->list)); | 		    "[%u/%u]", data->top, ARRAY_LENGTH(&data->list)); | ||||||
| 		screen_write_cursormove(ctx, screen_size_x(s) - size, 0); | 		screen_write_cursormove(ctx, screen_size_x(s) - size, 0); | ||||||
| 		gc.fg = options_get_number(&wp->window->options, "mode-fg"); | 		colour_set_fg(&gc, options_get_number(oo, "mode-fg")); | ||||||
| 		gc.bg = options_get_number(&wp->window->options, "mode-bg"); | 		colour_set_bg(&gc, options_get_number(oo, "mode-bg")); | ||||||
| 		gc.attr |= options_get_number(&wp->window->options, "mode-attr"); | 		gc.attr |= options_get_number(oo, "mode-attr"); | ||||||
| 		screen_write_puts(ctx, &gc, "%s", hdr); | 		screen_write_puts(ctx, &gc, "%s", hdr); | ||||||
| 		memcpy(&gc, &grid_default_cell, sizeof gc); | 		memcpy(&gc, &grid_default_cell, sizeof gc); | ||||||
| 	} else | 	} else | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: window-scroll.c,v 1.40 2009-08-16 19:26:49 tcunha Exp $ */ | /* $Id: window-scroll.c,v 1.41 2009-09-11 14:13:52 tcunha Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> |  * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> | ||||||
| @@ -192,6 +192,7 @@ window_scroll_write_line( | |||||||
| { | { | ||||||
| 	struct window_scroll_mode_data	*data = wp->modedata; | 	struct window_scroll_mode_data	*data = wp->modedata; | ||||||
| 	struct screen			*s = &data->screen; | 	struct screen			*s = &data->screen; | ||||||
|  | 	struct options			*oo = &wp->window->options; | ||||||
| 	struct grid_cell		 gc; | 	struct grid_cell		 gc; | ||||||
| 	char				 hdr[32]; | 	char				 hdr[32]; | ||||||
| 	size_t	 			 size; | 	size_t	 			 size; | ||||||
| @@ -200,9 +201,9 @@ window_scroll_write_line( | |||||||
| 		memcpy(&gc, &grid_default_cell, sizeof gc); | 		memcpy(&gc, &grid_default_cell, sizeof gc); | ||||||
| 		size = xsnprintf(hdr, sizeof hdr, | 		size = xsnprintf(hdr, sizeof hdr, | ||||||
| 		    "[%u,%u/%u]", data->ox, data->oy, screen_hsize(&wp->base)); | 		    "[%u,%u/%u]", data->ox, data->oy, screen_hsize(&wp->base)); | ||||||
| 		gc.fg = options_get_number(&wp->window->options, "mode-fg"); | 		colour_set_fg(&gc, options_get_number(oo, "mode-fg")); | ||||||
| 		gc.bg = options_get_number(&wp->window->options, "mode-bg"); | 		colour_set_bg(&gc, options_get_number(oo, "mode-bg")); | ||||||
| 		gc.attr |= options_get_number(&wp->window->options, "mode-attr"); | 		gc.attr |= options_get_number(oo, "mode-attr"); | ||||||
| 		screen_write_cursormove(ctx, screen_size_x(s) - size, 0); | 		screen_write_cursormove(ctx, screen_size_x(s) - size, 0); | ||||||
| 		screen_write_puts(ctx, &gc, "%s", hdr); | 		screen_write_puts(ctx, &gc, "%s", hdr); | ||||||
| 		memcpy(&gc, &grid_default_cell, sizeof gc); | 		memcpy(&gc, &grid_default_cell, sizeof gc); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Tiago Cunha
					Tiago Cunha