=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/window.c,v retrieving revision 1.177 retrieving revision 1.178 diff -c -r1.177 -r1.178 *** src/usr.bin/tmux/window.c 2017/01/07 15:28:13 1.177 --- src/usr.bin/tmux/window.c 2017/01/12 00:19:32 1.178 *************** *** 1,4 **** ! /* $OpenBSD: window.c,v 1.177 2017/01/07 15:28:13 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: window.c,v 1.178 2017/01/12 00:19:32 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott *************** *** 464,475 **** * If the now active or inactive pane do not have a custom style or if * the palette is different, they need to be redrawn. */ ! if (WINDOW_PANE_PALETTE_HAS(w->active, w->active->colgc.fg) || ! WINDOW_PANE_PALETTE_HAS(w->active, w->active->colgc.bg) || style_equal(&grid_default_cell, &w->active->colgc)) w->active->flags |= PANE_REDRAW; ! if (WINDOW_PANE_PALETTE_HAS(wp, wp->colgc.fg) || ! WINDOW_PANE_PALETTE_HAS(wp, wp->colgc.bg) || style_equal(&grid_default_cell, &wp->colgc)) wp->flags |= PANE_REDRAW; } --- 464,475 ---- * If the now active or inactive pane do not have a custom style or if * the palette is different, they need to be redrawn. */ ! if (window_pane_get_palette(w->active, w->active->colgc.fg) != -1 || ! window_pane_get_palette(w->active, w->active->colgc.bg) != -1 || style_equal(&grid_default_cell, &w->active->colgc)) w->active->flags |= PANE_REDRAW; ! if (window_pane_get_palette(wp, wp->colgc.fg) != -1 || ! window_pane_get_palette(wp, wp->colgc.bg) != -1 || style_equal(&grid_default_cell, &wp->colgc)) wp->flags |= PANE_REDRAW; } *************** *** 1516,1519 **** --- 1516,1539 ---- } return (idx); + } + + int + window_pane_get_palette(const struct window_pane *wp, int c) + { + int new; + + if (wp == NULL || wp->palette == NULL) + return (-1); + + new = -1; + if (c < 8) + new = wp->palette[c]; + else if (c >= 90 && c <= 97) + new = wp->palette[7 + c - 90]; + else if (c & COLOUR_FLAG_256) + new = wp->palette[c & ~COLOUR_FLAG_256]; + if (new == 0) + return (-1); + return (new); }