diff options
author | Alexander Gramiak <agrambot@gmail.com> | 2019-05-10 09:45:57 -0600 |
---|---|---|
committer | Alexander Gramiak <agrambot@gmail.com> | 2019-05-19 19:50:32 -0600 |
commit | a4fe9c70af7a60117480d3361541550341da801a (patch) | |
tree | f9c082b94c2af6df79f7aa66dbcce4a97eabbbbd /src/w32term.c | |
parent | b3d3c0daa49f5cbed7c58c7508d4d36dba3757e5 (diff) | |
download | emacs-a4fe9c70af7a60117480d3361541550341da801a.tar.gz |
Replace XChar2b with unsigned in all font backends
The xfont backend using XChar2b in its API doesn't mean that we should
use it everywhere else.
* src/dispextern.h (glyph_string):
* src/ftcrfont.c (ftcrfont_draw):
* src/ftxfont.c (ftxfont_draw):
* src/w32term.c (w32_draw_glyphless_glyph_string_foreground):
* src/xdisp.c (init_glyph_string, get_char_face_and_encoding)
(get_glyph_face_and_encoding, get_char_glyph_code)
(fill_gstring_glyph_string, fill_stretch_glyph_string)
(normal_char_ascent_descent, gui_get_glyph_overhangs)
(compute_overhangs_and_x, gui_produce_glyphs):
* src/xfont.c (xfont_get_pcm, xfont_chars_supported, xfont_open)
(xfont_encode_char, xfont_text_extents, xfont_draw)
* src/xftfont.c (xftfont_draw):
* src/xterm.c (x_compute_glyph_string_overhangs)
(x_draw_glyphless_glyph_string_foreground): Use unsigned over XChar2b.
* src/nsgui.h:
* src/w32gui.h:
* src/xterm.h: Remove XChar2b, STORE_XCHAR2B, XCHAR2B_BYTE1, and
XCHAR2B_BYTE2 typedefs and macros.
* src/font.h (font_driver):
(ftfont_text_extents)
* src/ftcrfont.c (ftcrfont_text_extents):
* src/ftfont.c (ftfont_text_extents):
* src/macfont.m (macfont_text_extents):
* src/nsfont.m (nsfont_text_extents):
* src/w32font.h (w32_font_text_extents):
* src/font.c (xfont_text_extents):
* src/xftfont.c (xftfont_text_extents): Make code parameter const.
Diffstat (limited to 'src/w32term.c')
-rw-r--r-- | src/w32term.c | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/src/w32term.c b/src/w32term.c index 4a93b2a4043..5726124b0ed 100644 --- a/src/w32term.c +++ b/src/w32term.c @@ -1097,14 +1097,10 @@ w32_compute_glyph_string_overhangs (struct glyph_string *s) && s->first_glyph->type == CHAR_GLYPH && !s->font_not_found_p) { - unsigned *code = alloca (sizeof (unsigned) * s->nchars); struct font *font = s->font; struct font_metrics metrics; - int i; - for (i = 0; i < s->nchars; i++) - code[i] = s->char2b[i]; - font->driver->text_extents (font, code, s->nchars, &metrics); + font->driver->text_extents (font, s->char2b, s->nchars, &metrics); s->right_overhang = (metrics.rbearing > metrics.width ? metrics.rbearing - metrics.width : 0); s->left_overhang = metrics.lbearing < 0 ? -metrics.lbearing : 0; @@ -1349,7 +1345,7 @@ static void w32_draw_glyphless_glyph_string_foreground (struct glyph_string *s) { struct glyph *glyph = s->first_glyph; - XChar2b char2b[8]; + unsigned char2b[8]; int x, i, j; bool with_background; @@ -1406,16 +1402,12 @@ w32_draw_glyphless_glyph_string_foreground (struct glyph_string *s) { struct font *font = s->font; int upper_len = (len + 1) / 2; - unsigned code; HFONT old_font; old_font = SelectObject (s->hdc, FONT_HANDLE (font)); /* It is certain that all LEN characters in STR are ASCII. */ for (j = 0; j < len; j++) - { - code = font->driver->encode_char (font, str[j]); - STORE_XCHAR2B (char2b + j, code >> 8, code & 0xFF); - } + char2b[j] = font->driver->encode_char (font, str[j]) & 0xFFFF; font->driver->draw (s, 0, upper_len, x + glyph->slice.glyphless.upper_xoff, s->ybase + glyph->slice.glyphless.upper_yoff, |