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