bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#47832: 28.0.50; define-fringe-bitmap and emacs --daemon


From: Gregory Heytings
Subject: bug#47832: 28.0.50; define-fringe-bitmap and emacs --daemon
Date: Tue, 25 May 2021 12:44:34 +0000


diff --git a/src/fringe.c b/src/fringe.c
index 65c9a84..47615f5 100644
--- a/src/fringe.c
+++ b/src/fringe.c
@@ -1776,14 +1776,15 @@ gui_init_fringe (struct redisplay_interface *rif)
   for (bt = NO_FRINGE_BITMAP + 1; bt < MAX_STANDARD_FRINGE_BITMAPS; bt++)
     {
       struct fringe_bitmap *fb = &standard_bitmaps[bt];
-      rif->define_fringe_bitmap (bt, fb->bits, fb->height, fb->width);
+      if (!fringe_bitmaps[bt])
+        rif->define_fringe_bitmap (bt, fb->bits, fb->height, fb->width);
     }

   /* Set up user-defined fringe bitmaps that might have been defined
      before the frame of this kind was initialized.  This can happen
      if Emacs is started as a daemon and the init files define fringe
      bitmaps.  */
-  for ( ; bt < max_used_fringe_bitmap; bt++)
+  for (bt = NO_FRINGE_BITMAP + 1; bt < max_used_fringe_bitmap; bt++)
     {
       struct fringe_bitmap *fb = fringe_bitmaps[bt];
       if (fb)

Why does the second for-loop go again over the bitmaps that the first one already processed? Or what am I missing?


Each loop processes its "own" bitmaps. In the first loop define_fringe_bitmap is called only if (!fringe_bitmaps[bt]), in the second loop it is called only if (fringe_bitmaps[bt]). IOW, the first loop processes the standard bitmaps that are not overridden by user-defined bitmaps, and the second loop processes user-defined bitmaps.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]