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

From: Eli Zaretskii <[email-masked]>
Date: Sat, 17 Apr 2021 14:21:06 +0300

> Date: Sat, 17 Apr 2021 13:57:14 +0300
> From: Eli Zaretskii <[email-masked]>
> Cc: [email-masked]
> 
> > Got it! :-)  The commit I identified is indeed the culprit.  With 
> > USE_CAIRO, gui_init_fringe() is called in x_initialize(); without 
> > USE_CAIRO it isn't.  And gui_init_fringe() had a bug, which should now be 
> > fixed on Windows, too.  Patch attached.
> 
> Thanks, but is this really all that needs to be done?  How will
> gui_init_fringe be called in the non-Cairo builds?  And what about NS?

Answering myself: they don't need to call gui_init_fringe.  Since
gui_init_fringe returns immediately if the frame interface doesn't
provide a method for fringe initialization, I think we should call
gui_init_fringe unconditionally on X.

And in any case, the patch for gui_init_fringe is sub-optimal: it
unnecessarily loops over the standard bitmaps that were superseded.
It is better to leave the first loop go over the standard bitmaps,
whether superseded or not, and the second loop go over non-standard
bitmaps only.

Thanks.