GNU bug report logs - #25216
26.0.50 [regression]; Curly quotes are not found in some sizes of ‘Terminus’ font

Previous Next

Package: emacs;

Reported by: Dmitry Alexandrov <321942 <at> gmail.com>

Date: Sat, 17 Dec 2016 01:04:02 UTC

Severity: normal

Tags: moreinfo

Found in version 26.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Eli Zaretskii <eliz <at> gnu.org>
To: Dmitry Alexandrov <321942 <at> gmail.com>
Cc: 25216 <at> debbugs.gnu.org
Subject: bug#25216: 26.0.50 [regression]; Curly quotes are not found in some sizes of ‘Terminus’ font
Date: Mon, 19 Dec 2016 05:42:59 +0200
> From: Dmitry Alexandrov <321942 <at> gmail.com>
> Cc: 25216 <at> debbugs.gnu.org
> Date: Mon, 19 Dec 2016 06:17:57 +0300
> 
> > It doesn't surprise me.  What I don't understand is why this happens.
> > Emacs explicitly tests the default font for supporting any symbol or
> > punctuation character it needs to display, before it looks for another
> > font.  See the function face_for_char in fontset.c.
> >
> >> Aha!  Thanks.  The exact problematic commit is ‘2276a19d’ [0].
> >> 
> >> By the way, how could I prove that without rebuilding the whole Emacs?  I tried:
> >> 
> >>    $ git show 2276a19^:lisp/international/fontset.el > /tmp/lisp/fontset.el
> >>    $ emacs --directory /tmp/lisp --quick --font '-*-terminus-medium-r-*-*-20-*-*-*-*-*-*-*'
> >> 
> >> Despite that:
> >> 
> >>    (locate-library "fontset")
> >>         ⇒ "/tmp/lisp/fontset.el"
> >> 
> >> I did not see any effect.
> >
> > You must rebuild Emacs or manually load fontset.el after changing it.
> > fontset.el is preloaded when Emacs is built.
> 
> So I need to use ‘temacs’?  Yes, that works, thank you.

If you want to rebuild Emacs, then yes, you will need to run the
command which dumps it after changing fontset.el.

> >> However, It might be even better if I could erase that rule, as if
> >> there were no lines about that range in ‘fontsel.el’. Is it
> >> possible?
> >
> > That would adversely affect all the users.  We arrived at that rule
> > after many complaints that symbol and punctuation characters are not
> > displayed at all, or displayed using variable-pitch fonts, so we made
> > the default fontset "smarter" about that by using fonts people
> > generally have installed and which are the default fonts in Emacs.
> 
> Well, I’m the only user on most my machines, so that’s probably bearable.

No, I meant all the users of Emacs, world wide.

> However, we apparently misunderstood each other — I did not ask how to patch ‘fontsel.el’ machine-wide (I hope, I do understand how to do that).  I meant, is it possible to remove elements from the default fontset *user-wide*?  ‘Terminus’ is not the only font I use, so that would be cleaner than appending it there.

You don't need (and cannot, AFAIK) to remove that.  What you need is
to prepend your rules, which will override what's there.  Like this:

 (set-fontset-font "fontset-default" '(#x2000 . #x2067) "Terminus" 'prepend)

Note the "prepend" part.




This bug report was last modified 5 years and 236 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.