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

From: Andy Moreton <[email-masked]>
Date: Tue, 09 Jun 2015 17:29:30 +0100

On Tue 09 Jun 2015, Eli Zaretskii wrote:

>> From: Andy Moreton <[email-masked]>
>> Date: Tue, 09 Jun 2015 12:48:16 +0100
>> 
>> On Mon 08 Jun 2015, Eli Zaretskii wrote:
>> 
>> >> From: Andreas Schwab <[email-masked]>
>> >> Cc: Vasilij Schneidermann <[email-masked]>,  [email-masked]
>> >> Date: Mon, 08 Jun 2015 16:52:48 +0200
>> >> 
>> >> Eli Zaretskii <[email-masked]> writes:
>> >> 
>> >> > The problem is that most such fonts are not free.  Is Symbola free?
>> >> 
>> >> http://users.teilar.gr/~g1951d/
>> >> "free for any use"
>> >
>> > Thanks, I pushed a change that I hope will improve the default
>> > fontset's coverage of the various symbol characters.
>> 
>> This has caused a regression for me on the mingw64 build of emacs.
>> 
>> I use various box drawing characters in gnus to show threading, and
>> these normally come from DejaVu Mono (the default font).
>> 
>> 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.

>> Can you please improve the patch to avoid overriding the default font
>> with fonts that don't exist
>
> Maybe I'm missing something, but my patch didn't override the default
> font in any way that I'm aware of.  In fact, Emacs doesn't (well,
> didn't until now, see below) consult the default font when it needs to
> display characters such as box drawing; it always searches for the
> proper font regardless of the coverage of the default font.  At least
> that's AFAIU the code: this area in Emacs is notoriously
> under-documented.
>
> 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.

>> or at least make it easier for the user to choose the fonts chosen
>> for the symbol-subgroup and box drawing characters without copying
>> the character ranges.
>
> Not sure what that means; how did you choose your fonts until now?  I
> think this again hints on some font-related customizations you did, in
> which case please show them.  My changes targeted the users who don't
> do any fontset customizations and don't know how to do that; the
> assumption was that whoever does customize their fontsets can easily
> adapt.  Is that wrong?

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.

    AndyM