Subject: Re: bug#20727: 24.5; Font fallback doesn't work for the Emoji range

From: Eli Zaretskii <[email-masked]>
Date: Tue, 09 Jun 2015 19:48:43 +0300

> From: Andy Moreton <[email-masked]>
> Date: Tue, 09 Jun 2015 17:29:30 +0100
> 
> >> After this change, Emacs uses Batang Che for the box drawing characters,
> >> unless I add code to reverse the effects of the patch.
> >
> > Not sure how that happened: AFAIK, my change mentioned neither Batang
> > Che nor DejaVu Mono.  Do you have in your customizations some setup
> > for fontsets that cover these characters?  If so, could you please
> > show these customizations?
> 
> All I have is to choose DejaVu Mono as the default font. Your changes
> made the defqault fontset choose Symbola and FreeMono for symbols and
> box drawing characters, but my system does not have thiose fonts, so it
> chose something else instead.

What I cannot understand is why it chose Batang Che, when it chose
DejaVu Mono before.  Before my changes, it should have examined Batang
Che before DejaVu Mono, so if it was "good" after my changes, it
should have been good before them.  AFAICS, fonts are generally
examined in the same order.

Probably some additional surprise lurking in the font-selection code.

> > Anyway, I found and fixed an unintended consequence of my change,
> > please try the latest master.  Now, if the font used for ASCII face,
> > which AFAIU is the same as the frame's default font, has a glyph for
> > punctuation and other symbol characters, Emacs will use the default
> > font, instead of searching for another font.
> 
> Thanks Eli, this changes restores the original behaviour.

It actually introduces behavior that was never there to begin with
(except as a not-entirely-correct variation in the NS build).  But at
least now I can explain what Emacs does, and why ;-)

> The only font-related customisation I have is:
> 
>   (set-face-attribute 'default nil        :font "DejaVu Sans Mono-9")
>   (set-face-attribute 'variable-pitch nil :font "Arial-10")
> 
>     (setq default-frame-alist
>           (append `((background-color . "gray85")
>                     (font             .  "DejaVu Sans Mono-9")
>                     ))
>                   default-frame-alist))
> 
> I don't have any fontset customisation at all, but the earlier change
> still made emacs choose a different font for symbols.

Strange.