1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-03-22 14:39:24 -05:00

Introduce a third setting for the 'bold as colour' mode, which lets

you both brighten the colour _and_ bold the font at the same time.
(Fixes 'bold-font-colour' and Debian #193352.)

[originally from svn r9559]
This commit is contained in:
Simon Tatham 2012-06-09 15:09:22 +00:00
parent a46aac386b
commit bc6e0952ef
10 changed files with 70 additions and 62 deletions

View File

@ -1790,9 +1790,13 @@ void setup_config_box(struct controlbox *b, int midsession,
ctrl_checkbox(s, "Allow terminal to use xterm 256-colour mode", '2', ctrl_checkbox(s, "Allow terminal to use xterm 256-colour mode", '2',
HELPCTX(colours_xterm256), conf_checkbox_handler, HELPCTX(colours_xterm256), conf_checkbox_handler,
I(CONF_xterm_256_colour)); I(CONF_xterm_256_colour));
ctrl_checkbox(s, "Bolded text is a different colour", 'b', ctrl_radiobuttons(s, "Indicate bolded text by changing:", 'b', 3,
HELPCTX(colours_bold), HELPCTX(colours_bold),
conf_checkbox_handler, I(CONF_bold_colour)); conf_radiobutton_handler, I(CONF_bold_style),
"The font", I(1),
"The colour", I(2),
"Both", I(3),
NULL);
str = dupprintf("Adjust the precise colours %s displays", appname); str = dupprintf("Adjust the precise colours %s displays", appname);
s = ctrl_getset(b, "Window/Colours", "adjust", str); s = ctrl_getset(b, "Window/Colours", "adjust", str);

View File

@ -1541,20 +1541,22 @@ If you do not see \cq{colors#256} in the output, you may need to
change your terminal setting. On modern Linux machines, you could change your terminal setting. On modern Linux machines, you could
try \cq{xterm-256color}. try \cq{xterm-256color}.
\S{config-boldcolour} \q{Bolded text is a different colour} \S{config-boldcolour} \q{Indicate bolded text by changing}
\cfg{winhelp-topic}{colours.bold} \cfg{winhelp-topic}{colours.bold}
When the server sends a \i{control sequence} indicating that some text When the server sends a \i{control sequence} indicating that some text
should be displayed in \i{bold}, PuTTY can handle this two ways. It can should be displayed in \i{bold}, PuTTY can handle this in several
either change the \i{font} for a bold version, or use the same font in a ways. It can either change the \i{font} for a bold version, or use the
brighter colour. This control lets you choose which. same font in a brighter colour, or it can do both (brighten the colour
\e{and} embolden the font). This control lets you choose which.
By default the box is checked, so non-bold text is displayed in By default bold is indicated by colour, so non-bold text is displayed
light grey and bold text is displayed in bright white (and similarly in light grey and bold text is displayed in bright white (and
in other colours). If you uncheck the box, bold and non-bold text similarly in other colours). If you change the setting to \q{The font}
will be displayed in the same colour, and instead the font will box, bold and non-bold text will be displayed in the same colour, and
change to indicate the difference. instead the font will change to indicate the difference. If you select
\q{Both}, the font and the colour will both change.
\S{config-logpalette} \q{Attempt to use \i{logical palettes}} \S{config-logpalette} \q{Attempt to use \i{logical palettes}}

View File

@ -37,7 +37,7 @@ Sorry.)
\dd Specify the font to use for bold text displayed in the terminal. If \dd Specify the font to use for bold text displayed in the terminal. If
the \cw{BoldAsColour} resource is set to 1 (the default), bold text the \cw{BoldAsColour} resource is set to 1 (the default), bold text
will be displayed in different colours instead of a different font, will be displayed in different colours instead of a different font,
so this option will be ignored. If \cw{BoldAsColour} is set to 0 so this option will be ignored. If \cw{BoldAsColour} is set to 0 or 2
and you do not specify a bold font, \cw{puttytel} will overprint the and you do not specify a bold font, \cw{puttytel} will overprint the
normal font to make it look bolder. normal font to make it look bolder.
@ -50,7 +50,7 @@ Chinese, Japanese and Korean text) displayed in the terminal.
\dd Specify the font to use for bold double-width characters \dd Specify the font to use for bold double-width characters
(typically Chinese, Japanese and Korean text). Like \cw{-fb}, this (typically Chinese, Japanese and Korean text). Like \cw{-fb}, this
will be ignored unless the \cw{BoldAsColour} resource is set to 0. will be ignored unless the \cw{BoldAsColour} resource is set to 0 or 2.
\dt \cw{\-geometry} \e{geometry} \dt \cw{\-geometry} \e{geometry}
@ -74,12 +74,12 @@ terminal.
\dt \cw{\-bfg} \e{colour} \dt \cw{\-bfg} \e{colour}
\dd Specify the foreground colour to use for bold text, if the \dd Specify the foreground colour to use for bold text, if the
\cw{BoldAsColour} resource is set to 1 (the default). \cw{BoldAsColour} resource is set to 1 (the default) or 2.
\dt \cw{\-bbg} \e{colour} \dt \cw{\-bbg} \e{colour}
\dd Specify the foreground colour to use for bold reverse-video text, if \dd Specify the foreground colour to use for bold reverse-video text, if
the \cw{BoldAsColour} resource is set to 1 (the default). (This the \cw{BoldAsColour} resource is set to 1 (the default) or 2. (This
colour is best thought of as the bold version of the background colour is best thought of as the bold version of the background
colour; so it only appears when text is displayed \e{in} the colour; so it only appears when text is displayed \e{in} the
background colour.) background colour.)

View File

@ -57,7 +57,7 @@ sets of defaults and choose between them.
\dd Specify the font to use for bold text displayed in the terminal. If \dd Specify the font to use for bold text displayed in the terminal. If
the \cw{BoldAsColour} resource is set to 1 (the default), bold text the \cw{BoldAsColour} resource is set to 1 (the default), bold text
will be displayed in different colours instead of a different font, will be displayed in different colours instead of a different font,
so this option will be ignored. If \cw{BoldAsColour} is set to 0 so this option will be ignored. If \cw{BoldAsColour} is set to 0 or 2
and you do not specify a bold font, \cw{pterm} will overprint the and you do not specify a bold font, \cw{pterm} will overprint the
normal font to make it look bolder. normal font to make it look bolder.
@ -70,7 +70,7 @@ Chinese, Japanese and Korean text) displayed in the terminal.
\dd Specify the font to use for bold double-width characters \dd Specify the font to use for bold double-width characters
(typically Chinese, Japanese and Korean text). Like \cw{-fb}, this (typically Chinese, Japanese and Korean text). Like \cw{-fb}, this
will be ignored unless the \cw{BoldAsColour} resource is set to 0. will be ignored unless the \cw{BoldAsColour} resource is set to 0 or 2.
\dt \cw{\-geometry} \e{geometry} \dt \cw{\-geometry} \e{geometry}
@ -94,12 +94,12 @@ terminal.
\dt \cw{\-bfg} \e{colour} \dt \cw{\-bfg} \e{colour}
\dd Specify the foreground colour to use for bold text, if the \dd Specify the foreground colour to use for bold text, if the
\cw{BoldAsColour} resource is set to 1 (the default). \cw{BoldAsColour} resource is set to 1 (the default) or 2.
\dt \cw{\-bbg} \e{colour} \dt \cw{\-bbg} \e{colour}
\dd Specify the foreground colour to use for bold reverse-video text, if \dd Specify the foreground colour to use for bold reverse-video text, if
the \cw{BoldAsColour} resource is set to 1 (the default). (This the \cw{BoldAsColour} resource is set to 1 (the default) or 2. (This
colour is best thought of as the bold version of the background colour is best thought of as the bold version of the background
colour; so it only appears when text is displayed \e{in} the colour; so it only appears when text is displayed \e{in} the
background colour.) background colour.)
@ -498,7 +498,7 @@ controls the font used to display normal text. The default is
\dd This resource is the same as the \cw{\-fb} command-line option: it \dd This resource is the same as the \cw{\-fb} command-line option: it
controls the font used to display bold text when \cw{BoldAsColour} controls the font used to display bold text when \cw{BoldAsColour}
is turned off. The default is unset (the font will be bolded by is set to 0 or 2. The default is unset (the font will be bolded by
printing it twice at a one-pixel offset). printing it twice at a one-pixel offset).
\dt \cw{pterm.WideFont} \dt \cw{pterm.WideFont}
@ -511,7 +511,7 @@ default is unset (double-width characters cannot be displayed).
\dd This resource is the same as the \cw{\-fwb} command-line option: it \dd This resource is the same as the \cw{\-fwb} command-line option: it
controls the font used to display double-width characters in bold, controls the font used to display double-width characters in bold,
when \cw{BoldAsColour} is turned off. The default is unset when \cw{BoldAsColour} is set to 0 or 2. The default is unset
(double-width characters are displayed in bold by printing them (double-width characters are displayed in bold by printing them
twice at a one-pixel offset). twice at a one-pixel offset).
@ -529,10 +529,11 @@ than 1 (in one direction or the other).
\dt \cw{pterm.BoldAsColour} \dt \cw{pterm.BoldAsColour}
\dd This option should be set to either 0 or 1; the default is 1. It \dd This option should be set to either 0, 1, or 2; the default is 1.
specifies the default state of auto wrap mode. When set to 1, bold It specifies how bold text should be displayed. When set to 1, bold
text is shown by displaying it in a brighter colour; when set to 0, text is shown by displaying it in a brighter colour; when set to 0,
bold text is shown by displaying it in a heavier font. bold text is shown by displaying it in a heavier font; when set to 2,
both effects happen at once (a heavy font \e{and} a brighter colour).
\dt \cw{pterm.Colour0}, \cw{pterm.Colour1}, ..., \cw{pterm.Colour21} \dt \cw{pterm.Colour0}, \cw{pterm.Colour1}, ..., \cw{pterm.Colour21}

View File

@ -37,7 +37,7 @@ Sorry.)
If the \cw{BoldAsColour} resource is set to 1 (the default), bold If the \cw{BoldAsColour} resource is set to 1 (the default), bold
text will be displayed in different colours instead of a different text will be displayed in different colours instead of a different
font, so this option will be ignored. If \cw{BoldAsColour} is set to font, so this option will be ignored. If \cw{BoldAsColour} is set to
0 and you do not specify a bold font, \cw{putty} will overprint the 0 or 2 and you do not specify a bold font, \cw{putty} will overprint the
normal font to make it look bolder. normal font to make it look bolder.
\dt \cw{\-fw} \e{font-name} \dt \cw{\-fw} \e{font-name}
@ -49,7 +49,7 @@ Chinese, Japanese and Korean text) displayed in the terminal.
\dd Specify the font to use for bold double-width characters \dd Specify the font to use for bold double-width characters
(typically Chinese, Japanese and Korean text). Like \cw{-fb}, this (typically Chinese, Japanese and Korean text). Like \cw{-fb}, this
will be ignored unless the \cw{BoldAsColour} resource is set to 0. will be ignored unless the \cw{BoldAsColour} resource is set to 0 or 2.
\dt \cw{\-geometry} \e{geometry} \dt \cw{\-geometry} \e{geometry}
@ -73,12 +73,12 @@ terminal.
\dt \cw{\-bfg} \e{colour} \dt \cw{\-bfg} \e{colour}
\dd Specify the foreground colour to use for bold text, if the \dd Specify the foreground colour to use for bold text, if the
\cw{BoldAsColour} resource is set to 1 (the default). \cw{BoldAsColour} resource is set to 1 (the default) or 2.
\dt \cw{\-bbg} \e{colour} \dt \cw{\-bbg} \e{colour}
\dd Specify the foreground colour to use for bold reverse-video \dd Specify the foreground colour to use for bold reverse-video
text, if the \cw{BoldAsColour} resource is set to 1 (the default). text, if the \cw{BoldAsColour} resource is set to 1 (the default) or 2.
(This colour is best thought of as the bold version of the (This colour is best thought of as the bold version of the
background colour; so it only appears when text is displayed \e{in} background colour; so it only appears when text is displayed \e{in}
the background colour.) the background colour.)

View File

@ -109,11 +109,11 @@
nfg = nbg; nfg = nbg;
nbg = t; nbg = t;
} }
if (cfg.bold_colour && (attr & ATTR_BOLD)) { if ((cfg.bold_style & 2) && (attr & ATTR_BOLD)) {
if (nfg < 16) nfg |= 8; if (nfg < 16) nfg |= 8;
else if (nfg >= 256) nfg |= 1; else if (nfg >= 256) nfg |= 1;
} }
if (cfg.bold_colour && (attr & ATTR_BLINK)) { if ((cfg.bold_style & 2) && (attr & ATTR_BLINK)) {
if (nbg < 16) nbg |= 8; if (nbg < 16) nbg |= 8;
else if (nbg >= 256) nbg |= 1; else if (nbg >= 256) nbg |= 1;
} }
@ -129,7 +129,7 @@
widefactor = 1; widefactor = 1;
} }
/* FIXME: ATTR_BOLD without cfg.bold_colour */ /* FIXME: ATTR_BOLD if cfg.bold_style & 1 */
if ((lattr & LATTR_MODE) != LATTR_NORM) { if ((lattr & LATTR_MODE) != LATTR_NORM) {
x *= 2; x *= 2;

View File

@ -791,7 +791,7 @@ void cleanup_exit(int);
X(INT, NONE, xterm_256_colour) \ X(INT, NONE, xterm_256_colour) \
X(INT, NONE, system_colour) \ X(INT, NONE, system_colour) \
X(INT, NONE, try_palette) \ X(INT, NONE, try_palette) \
X(INT, NONE, bold_colour) \ X(INT, NONE, bold_style) \
X(INT, INT, colours) \ X(INT, INT, colours) \
/* Selection options */ \ /* Selection options */ \
X(INT, NONE, mouse_is_xterm) \ X(INT, NONE, mouse_is_xterm) \

View File

@ -562,7 +562,7 @@ void save_open_settings(void *sesskey, Conf *conf)
write_setting_i(sesskey, "TryPalette", conf_get_int(conf, CONF_try_palette)); write_setting_i(sesskey, "TryPalette", conf_get_int(conf, CONF_try_palette));
write_setting_i(sesskey, "ANSIColour", conf_get_int(conf, CONF_ansi_colour)); write_setting_i(sesskey, "ANSIColour", conf_get_int(conf, CONF_ansi_colour));
write_setting_i(sesskey, "Xterm256Colour", conf_get_int(conf, CONF_xterm_256_colour)); write_setting_i(sesskey, "Xterm256Colour", conf_get_int(conf, CONF_xterm_256_colour));
write_setting_i(sesskey, "BoldAsColour", conf_get_int(conf, CONF_bold_colour)); write_setting_i(sesskey, "BoldAsColour", conf_get_int(conf, CONF_bold_style)-1);
for (i = 0; i < 22; i++) { for (i = 0; i < 22; i++) {
char buf[20], buf2[30]; char buf[20], buf2[30];
@ -865,7 +865,7 @@ void load_open_settings(void *sesskey, Conf *conf)
gppi(sesskey, "TryPalette", 0, conf, CONF_try_palette); gppi(sesskey, "TryPalette", 0, conf, CONF_try_palette);
gppi(sesskey, "ANSIColour", 1, conf, CONF_ansi_colour); gppi(sesskey, "ANSIColour", 1, conf, CONF_ansi_colour);
gppi(sesskey, "Xterm256Colour", 1, conf, CONF_xterm_256_colour); gppi(sesskey, "Xterm256Colour", 1, conf, CONF_xterm_256_colour);
gppi(sesskey, "BoldAsColour", 1, conf, CONF_bold_colour); i = gppi_raw(sesskey, "BoldAsColour", 0); conf_set_int(conf, CONF_bold_style, i+1);
for (i = 0; i < 22; i++) { for (i = 0; i < 22; i++) {
static const char *const defaults[] = { static const char *const defaults[] = {

View File

@ -104,14 +104,14 @@ struct gui_data {
guint32 input_event_time; /* Timestamp of the most recent input event. */ guint32 input_event_time; /* Timestamp of the most recent input event. */
int reconfiguring; int reconfiguring;
/* Cached things out of conf that we refer to a lot */ /* Cached things out of conf that we refer to a lot */
int bold_colour; int bold_style;
int window_border; int window_border;
int cursor_type; int cursor_type;
}; };
static void cache_conf_values(struct gui_data *inst) static void cache_conf_values(struct gui_data *inst)
{ {
inst->bold_colour = conf_get_int(inst->conf, CONF_bold_colour); inst->bold_style = conf_get_int(inst->conf, CONF_bold_style);
inst->window_border = conf_get_int(inst->conf, CONF_window_border); inst->window_border = conf_get_int(inst->conf, CONF_window_border);
inst->cursor_type = conf_get_int(inst->conf, CONF_cursor_type); inst->cursor_type = conf_get_int(inst->conf, CONF_cursor_type);
} }
@ -2061,11 +2061,11 @@ void do_text_internal(Context ctx, int x, int y, wchar_t *text, int len,
nfg = nbg; nfg = nbg;
nbg = t; nbg = t;
} }
if (inst->bold_colour && (attr & ATTR_BOLD)) { if ((inst->bold_style & 2) && (attr & ATTR_BOLD)) {
if (nfg < 16) nfg |= 8; if (nfg < 16) nfg |= 8;
else if (nfg >= 256) nfg |= 1; else if (nfg >= 256) nfg |= 1;
} }
if (inst->bold_colour && (attr & ATTR_BLINK)) { if ((inst->bold_style & 2) && (attr & ATTR_BLINK)) {
if (nbg < 16) nbg |= 8; if (nbg < 16) nbg |= 8;
else if (nbg >= 256) nbg |= 1; else if (nbg >= 256) nbg |= 1;
} }
@ -2083,7 +2083,7 @@ void do_text_internal(Context ctx, int x, int y, wchar_t *text, int len,
widefactor = 1; widefactor = 1;
} }
if ((attr & ATTR_BOLD) && !inst->bold_colour) { if ((attr & ATTR_BOLD) && (inst->bold_style & 1)) {
bold = 1; bold = 1;
fontid |= 1; fontid |= 1;
} else { } else {

View File

@ -174,8 +174,9 @@ static HFONT fonts[FONT_MAXNO];
static LOGFONT lfont; static LOGFONT lfont;
static int fontflag[FONT_MAXNO]; static int fontflag[FONT_MAXNO];
static enum { static enum {
BOLD_COLOURS, BOLD_SHADOW, BOLD_FONT BOLD_NONE, BOLD_SHADOW, BOLD_FONT
} bold_mode; } bold_font_mode;
static int bold_colours;
static enum { static enum {
UND_LINE, UND_FONT UND_LINE, UND_FONT
} und_mode; } und_mode;
@ -1409,8 +1410,9 @@ static void init_fonts(int pick_width, int pick_height)
for (i = 0; i < FONT_MAXNO; i++) for (i = 0; i < FONT_MAXNO; i++)
fonts[i] = NULL; fonts[i] = NULL;
bold_mode = conf_get_int(conf, CONF_bold_colour) ? bold_font_mode = conf_get_int(conf, CONF_bold_style) & 1 ?
BOLD_COLOURS : BOLD_FONT; BOLD_FONT : BOLD_NONE;
bold_colours = conf_get_int(conf, CONF_bold_style) & 2 ? TRUE : FALSE;
und_mode = UND_FONT; und_mode = UND_FONT;
font = conf_get_fontspec(conf, CONF_font); font = conf_get_fontspec(conf, CONF_font);
@ -1535,7 +1537,7 @@ static void init_fonts(int pick_width, int pick_height)
} }
} }
if (bold_mode == BOLD_FONT) { if (bold_font_mode == BOLD_FONT) {
f(FONT_BOLD, font->charset, fw_bold, FALSE); f(FONT_BOLD, font->charset, fw_bold, FALSE);
} }
#undef f #undef f
@ -1562,9 +1564,9 @@ static void init_fonts(int pick_width, int pick_height)
fonts[FONT_UNDERLINE] = 0; fonts[FONT_UNDERLINE] = 0;
} }
if (bold_mode == BOLD_FONT && if (bold_font_mode == BOLD_FONT &&
fontsize[FONT_BOLD] != fontsize[FONT_NORMAL]) { fontsize[FONT_BOLD] != fontsize[FONT_NORMAL]) {
bold_mode = BOLD_SHADOW; bold_font_mode = BOLD_SHADOW;
DeleteObject(fonts[FONT_BOLD]); DeleteObject(fonts[FONT_BOLD]);
fonts[FONT_BOLD] = 0; fonts[FONT_BOLD] = 0;
} }
@ -2333,8 +2335,8 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT message,
conf_get_int(prev_conf, CONF_font_quality) || conf_get_int(prev_conf, CONF_font_quality) ||
conf_get_int(conf, CONF_vtmode) != conf_get_int(conf, CONF_vtmode) !=
conf_get_int(prev_conf, CONF_vtmode) || conf_get_int(prev_conf, CONF_vtmode) ||
conf_get_int(conf, CONF_bold_colour) != conf_get_int(conf, CONF_bold_style) !=
conf_get_int(prev_conf, CONF_bold_colour) || conf_get_int(prev_conf, CONF_bold_style) ||
resize_action == RESIZE_DISABLED || resize_action == RESIZE_DISABLED ||
resize_action == RESIZE_EITHER || resize_action == RESIZE_EITHER ||
resize_action != conf_get_int(prev_conf, resize_action != conf_get_int(prev_conf,
@ -3323,6 +3325,7 @@ void do_text_internal(Context ctx, int x, int y, wchar_t *text, int len,
int text_adjust = 0; int text_adjust = 0;
int xoffset = 0; int xoffset = 0;
int maxlen, remaining, opaque; int maxlen, remaining, opaque;
int is_cursor = FALSE;
static int *lpDx = NULL; static int *lpDx = NULL;
static int lpDx_len = 0; static int lpDx_len = 0;
int *lpDx_maybe; int *lpDx_maybe;
@ -3346,11 +3349,9 @@ void do_text_internal(Context ctx, int x, int y, wchar_t *text, int len,
if ((attr & TATTR_ACTCURS) && (cursor_type == 0 || term->big_cursor)) { if ((attr & TATTR_ACTCURS) && (cursor_type == 0 || term->big_cursor)) {
attr &= ~(ATTR_REVERSE|ATTR_BLINK|ATTR_COLOURS); attr &= ~(ATTR_REVERSE|ATTR_BLINK|ATTR_COLOURS);
if (bold_mode == BOLD_COLOURS)
attr &= ~ATTR_BOLD;
/* cursor fg and bg */ /* cursor fg and bg */
attr |= (260 << ATTR_FGSHIFT) | (261 << ATTR_BGSHIFT); attr |= (260 << ATTR_FGSHIFT) | (261 << ATTR_BGSHIFT);
is_cursor = TRUE;
} }
nfont = 0; nfont = 0;
@ -3412,7 +3413,7 @@ void do_text_internal(Context ctx, int x, int y, wchar_t *text, int len,
nfg = ((attr & ATTR_FGMASK) >> ATTR_FGSHIFT); nfg = ((attr & ATTR_FGMASK) >> ATTR_FGSHIFT);
nbg = ((attr & ATTR_BGMASK) >> ATTR_BGSHIFT); nbg = ((attr & ATTR_BGMASK) >> ATTR_BGSHIFT);
if (bold_mode == BOLD_FONT && (attr & ATTR_BOLD)) if (bold_font_mode == BOLD_FONT && (attr & ATTR_BOLD))
nfont |= FONT_BOLD; nfont |= FONT_BOLD;
if (und_mode == UND_FONT && (attr & ATTR_UNDER)) if (und_mode == UND_FONT && (attr & ATTR_UNDER))
nfont |= FONT_UNDERLINE; nfont |= FONT_UNDERLINE;
@ -3432,11 +3433,11 @@ void do_text_internal(Context ctx, int x, int y, wchar_t *text, int len,
nfg = nbg; nfg = nbg;
nbg = t; nbg = t;
} }
if (bold_mode == BOLD_COLOURS && (attr & ATTR_BOLD)) { if (bold_colours && (attr & ATTR_BOLD) && !is_cursor) {
if (nfg < 16) nfg |= 8; if (nfg < 16) nfg |= 8;
else if (nfg >= 256) nfg |= 1; else if (nfg >= 256) nfg |= 1;
} }
if (bold_mode == BOLD_COLOURS && (attr & ATTR_BLINK)) { if (bold_colours && (attr & ATTR_BLINK)) {
if (nbg < 16) nbg |= 8; if (nbg < 16) nbg |= 8;
else if (nbg >= 256) nbg |= 1; else if (nbg >= 256) nbg |= 1;
} }
@ -3586,7 +3587,7 @@ void do_text_internal(Context ctx, int x, int y, wchar_t *text, int len,
ETO_CLIPPED | (opaque ? ETO_OPAQUE : 0), ETO_CLIPPED | (opaque ? ETO_OPAQUE : 0),
&line_box, uni_buf, nlen, &line_box, uni_buf, nlen,
lpDx_maybe); lpDx_maybe);
if (bold_mode == BOLD_SHADOW && (attr & ATTR_BOLD)) { if (bold_font_mode == BOLD_SHADOW && (attr & ATTR_BOLD)) {
SetBkMode(hdc, TRANSPARENT); SetBkMode(hdc, TRANSPARENT);
ExtTextOutW(hdc, x + xoffset - 1, ExtTextOutW(hdc, x + xoffset - 1,
y - font_height * (lattr == y - font_height * (lattr ==
@ -3611,7 +3612,7 @@ void do_text_internal(Context ctx, int x, int y, wchar_t *text, int len,
y - font_height * (lattr == LATTR_BOT) + text_adjust, y - font_height * (lattr == LATTR_BOT) + text_adjust,
ETO_CLIPPED | (opaque ? ETO_OPAQUE : 0), ETO_CLIPPED | (opaque ? ETO_OPAQUE : 0),
&line_box, directbuf, len, lpDx_maybe); &line_box, directbuf, len, lpDx_maybe);
if (bold_mode == BOLD_SHADOW && (attr & ATTR_BOLD)) { if (bold_font_mode == BOLD_SHADOW && (attr & ATTR_BOLD)) {
SetBkMode(hdc, TRANSPARENT); SetBkMode(hdc, TRANSPARENT);
/* GRR: This draws the character outside its box and /* GRR: This draws the character outside its box and
@ -3650,7 +3651,7 @@ void do_text_internal(Context ctx, int x, int y, wchar_t *text, int len,
opaque && !(attr & TATTR_COMBINING)); opaque && !(attr & TATTR_COMBINING));
/* And the shadow bold hack. */ /* And the shadow bold hack. */
if (bold_mode == BOLD_SHADOW && (attr & ATTR_BOLD)) { if (bold_font_mode == BOLD_SHADOW && (attr & ATTR_BOLD)) {
SetBkMode(hdc, TRANSPARENT); SetBkMode(hdc, TRANSPARENT);
ExtTextOutW(hdc, x + xoffset - 1, ExtTextOutW(hdc, x + xoffset - 1,
y - font_height * (lattr == y - font_height * (lattr ==
@ -4930,7 +4931,7 @@ void write_clip(void *frontend, wchar_t * data, int *attr, int len, int must_des
bgcolour = tmpcolour; bgcolour = tmpcolour;
} }
if (bold_mode == BOLD_COLOURS && (attr[i] & ATTR_BOLD)) { if (bold_colours && (attr[i] & ATTR_BOLD)) {
if (fgcolour < 8) /* ANSI colours */ if (fgcolour < 8) /* ANSI colours */
fgcolour += 8; fgcolour += 8;
else if (fgcolour >= 256) /* Default colours */ else if (fgcolour >= 256) /* Default colours */
@ -5021,7 +5022,7 @@ void write_clip(void *frontend, wchar_t * data, int *attr, int len, int must_des
bgcolour = tmpcolour; bgcolour = tmpcolour;
} }
if (bold_mode == BOLD_COLOURS && (attr[tindex] & ATTR_BOLD)) { if (bold_colours && (attr[tindex] & ATTR_BOLD)) {
if (fgcolour < 8) /* ANSI colours */ if (fgcolour < 8) /* ANSI colours */
fgcolour += 8; fgcolour += 8;
else if (fgcolour >= 256) /* Default colours */ else if (fgcolour >= 256) /* Default colours */
@ -5038,7 +5039,7 @@ void write_clip(void *frontend, wchar_t * data, int *attr, int len, int must_des
/* /*
* Collect other attributes * Collect other attributes
*/ */
if (bold_mode != BOLD_COLOURS) if (bold_font_mode != BOLD_NONE)
attrBold = attr[tindex] & ATTR_BOLD; attrBold = attr[tindex] & ATTR_BOLD;
else else
attrBold = 0; attrBold = 0;
@ -5057,7 +5058,7 @@ void write_clip(void *frontend, wchar_t * data, int *attr, int len, int must_des
bgcolour = -1; /* No coloring */ bgcolour = -1; /* No coloring */
if (fgcolour >= 256) { /* Default colour */ if (fgcolour >= 256) { /* Default colour */
if (bold_mode == BOLD_COLOURS && (fgcolour & 1) && bgcolour == -1) if (bold_colours && (fgcolour & 1) && bgcolour == -1)
attrBold = ATTR_BOLD; /* Emphasize text with bold attribute */ attrBold = ATTR_BOLD; /* Emphasize text with bold attribute */
fgcolour = -1; /* No coloring */ fgcolour = -1; /* No coloring */