Commit 38564f8a authored by Eli Zaretskii's avatar Eli Zaretskii

Unbreak display of characters on MS-Windows

* src/w32font.c (w32font_draw): Convert the glyph_string's
char2b array to 16-bit WCHAR data that ExtTextOutW needs.
parent 627fa5a0
Pipeline #1781 failed with stage
in 50 minutes and 43 seconds
......@@ -704,11 +704,23 @@ w32font_draw (struct glyph_string *s, int from, int to,
int i;
for (i = 0; i < len; i++)
ExtTextOutW (s->hdc, x + i, y, options, NULL,
s->char2b + from + i, 1, NULL);
{
WCHAR c = s->char2b[from + i] & 0xFFFF;
ExtTextOutW (s->hdc, x + i, y, options, NULL, &c, 1, NULL);
}
}
else
ExtTextOutW (s->hdc, x, y, options, NULL, s->char2b + from, len, NULL);
{
/* The number of glyphs in a glyph_string cannot be larger than
the maximum value of the 'used' member of a glyph_row, so we
are OK using alloca here. */
eassert (len <= SHRT_MAX);
WCHAR *chars = alloca (len * sizeof (WCHAR));
int j;
for (j = 0; j < len; j++)
chars[j] = s->char2b[from + j] & 0xFFFF;
ExtTextOutW (s->hdc, x, y, options, NULL, chars, len, NULL);
}
/* Restore clip region. */
if (s->num_clips > 0)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment