-/* $OpenBSD: options-table.c,v 1.174 2024/05/14 09:32:37 nicm Exp $ */
+/* $OpenBSD: options-table.c,v 1.175 2024/08/04 09:35:30 nicm Exp $ */
/*
* Copyright (c) 2011 Nicholas Marriott <nicholas.marriott@gmail.com>
.type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_SERVER,
.flags = OPTIONS_TABLE_IS_ARRAY,
- .default_str = "",
+ .default_str = "linux*:AX@",
.separator = ",",
.text = "List of terminal capabilities overrides."
},
-/* $OpenBSD: tty.c,v 1.436 2024/05/14 10:11:09 nicm Exp $ */
+/* $OpenBSD: tty.c,v 1.437 2024/08/04 09:35:30 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
*/
if (COLOUR_DEFAULT(gc->fg) || COLOUR_DEFAULT(gc->bg)) {
/*
- * If don't have AX but do have op, send sgr0 (op can't
- * actually be used because it is sometimes the same as sgr0
- * and sometimes isn't). This resets both colours to default.
- *
+ * If don't have AX, send sgr0. This resets both colours to default.
* Otherwise, try to set the default colour only as needed.
*/
- have_ax = tty_term_flag(tty->term, TTYC_AX);
- if (!have_ax && tty_term_has(tty->term, TTYC_OP))
+ if (!tty_term_flag(tty->term, TTYC_AX))
tty_reset(tty);
else {
if (COLOUR_DEFAULT(gc->fg) && !COLOUR_DEFAULT(tc->fg)) {
- if (have_ax)
- tty_puts(tty, "\033[39m");
- else if (tc->fg != 7)
- tty_putcode_i(tty, TTYC_SETAF, 7);
+ tty_puts(tty, "\033[39m");
tc->fg = gc->fg;
}
if (COLOUR_DEFAULT(gc->bg) && !COLOUR_DEFAULT(tc->bg)) {
- if (have_ax)
- tty_puts(tty, "\033[49m");
- else if (tc->bg != 0)
- tty_putcode_i(tty, TTYC_SETAB, 0);
+ tty_puts(tty, "\033[49m");
tc->bg = gc->bg;
}
}
/*
* Set the background colour. This must come after the foreground as
- * tty_colour_fg() can call tty_reset().
+ * tty_colours_fg() can call tty_reset().
*/
if (!COLOUR_DEFAULT(gc->bg) && gc->bg != tc->bg)
tty_colours_bg(tty, gc);
struct grid_cell *tc = &tty->cell;
char s[32];
+ /*
+ * If the current colour is an aixterm bright colour and the new is not,
+ * reset because some terminals do not clear bright correctly.
+ */
+ if (tty->cell.fg >= 90 &&
+ tty->cell.bg <= 97 &&
+ (gc->fg < 90 || gc->fg > 97))
+ tty_reset(tty);
+
/* Is this a 24-bit or 256-colour colour? */
if (gc->fg & COLOUR_FLAG_RGB || gc->fg & COLOUR_FLAG_256) {
if (tty_try_colour(tty, gc->fg, "38") == 0)