From e724a8f6694280fcb4753a87011abf9dc1c2771e Mon Sep 17 00:00:00 2001 From: Eli Zaretskii <eliz@gnu.org> Date: Sat, 13 Oct 2018 19:47:01 +0300 Subject: [PATCH] Fix redisplay of glyphless characters * src/conf_post.h (bool_bf): Use 'unsigned int' in the MinGW builds. Suggested by Tom Tromey <tom@tromey.com>. (Bug#33017) * src/dispnew.c (scrolling_window): Update commentary regarding xwidget builds. --- src/conf_post.h | 8 +++++--- src/dispnew.c | 7 ++++++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/conf_post.h b/src/conf_post.h index 69f686d72df..a09e529fc90 100644 --- a/src/conf_post.h +++ b/src/conf_post.h @@ -48,9 +48,11 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */ #endif /* The type of bool bitfields. Needed to compile Objective-C with - standard GCC. It was also needed to port to pre-C99 compilers, - although we don't care about that any more. */ -#if NS_IMPL_GNUSTEP + standard GCC, and to make sure adjacent bool_bf fields are packed + into the same 1-, 2-, or 4-byte allocation unit in the MinGW + builds. It was also needed to port to pre-C99 compilers, although + we don't care about that any more. */ +#if NS_IMPL_GNUSTEP || defined(__MINGW32__) typedef unsigned int bool_bf; #else typedef bool bool_bf; diff --git a/src/dispnew.c b/src/dispnew.c index a81d6f64d1e..d3a31967ae0 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -4125,7 +4125,12 @@ scrolling_window (struct window *w, bool header_line_p) } #ifdef HAVE_XWIDGETS - /* Currently this seems needed to detect xwidget movement reliably. */ + /* Currently this seems needed to detect xwidget movement reliably. + This is most probably because an xwidget glyph is represented in + struct glyph's 'union u' by a pointer to a struct, which takes 8 + bytes in 64-bit builds, and thus the comparison of u.val values + done by GLYPH_EQUAL_P doesn't work reliably, since it assumes the + size of the union is 4 bytes. FIXME. */ return 0; #endif -- 2.39.5