Subject: RE: bug#17457: 24.4.50; REGRESSION: "Invalid font name: -outline-Lucida Console-normal-normal-normal-mono"

From: Drew Adams <[email-masked]>
Date: Sun, 11 May 2014 10:19:58 -0700 (PDT)

> There must be some other factor at work here, because I don't
> understand how you get your truncated spec.

Yes, sorry.  This is what I was doing, with var FONT as input:

(save-match-data
 (let ((xlfd-regexp  "\\`\\(-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*\\)\
-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*\\'"))
   (or (not (string-match xlfd-regexp font))
       (setq font  (replace-match "\\1" nil nil font)))))

I truncated it because I am not interested in anything except the
first 6 fields of the XLFD string.  And previously, or so I thought,
`font-info' worked OK with such a truncated font spec.

(And - see below - I thought that allowed me to get font info for
some fonts that otherwise did not give info.  I did not realize that
`font-info' was in fact giving me incorrect info for those fonts.)

I then filtered out the case of a literal (string= font "-*-*-*-*-*-*"),
then passed the FONT to `font-info'.

I have fixed my code now so that the main feature works.  But `font-info'
still complains about some of the fonts I have.  I've wrapped the
`font-info' call in an `ignore-errors' to ignore that, but this means that
I cannot get font info for those few fonts.  So be it.

FYI, here are some problematic fonts.  It is no doubt the addition of
extra fields that makes them invalid.

-outline-MingLiU-ExtB-normal-normal-normal-serif-*-*-*-*-p-*-big5-0
-outline-MingLiU-ExtB-normal-normal-normal-serif-*-*-*-*-p-*-iso10646-1
-outline-MingLiU-ExtB-normal-normal-normal-serif-*-*-*-*-p-*-iso8859-1
-outline-MingLiU_HKSCS-ExtB-normal-normal-normal-serif-*-*-*-*-p-*-big5-0
-outline-MingLiU_HKSCS-ExtB-normal-normal-normal-serif-*-*-*-*-p-*-iso10646-1
-outline-MingLiU_HKSCS-ExtB-normal-normal-normal-serif-*-*-*-*-p-*-iso8859-1
-outline-PMingLiU-ExtB-normal-normal-normal-serif-*-*-*-*-p-*-big5-0
-outline-PMingLiU-ExtB-normal-normal-normal-serif-*-*-*-*-p-*-iso10646-1
-outline-PMingLiU-ExtB-normal-normal-normal-serif-*-*-*-*-p-*-iso8859-1
-outline-SimSun-ExtB-normal-normal-normal-mono-*-*-*-*-c-*-gb2312.1980-0
-outline-SimSun-ExtB-normal-normal-normal-mono-*-*-*-*-c-*-iso10646-1
-outline-SimSun-ExtB-normal-normal-normal-mono-*-*-*-*-c-*-iso8859-1

All of those fonts seem to work OK outside of Emacs.  But yes, Emacs
now rejects them - this raises the same invalid font error:

M-x set-frame-font
    -outline-MingLiU-ExtB-normal-normal-normal-serif-*-*-*-*-p-*-big5-0

Is Emacs doing the right thing here and other applications (e.g. Outlook)
are wrong?

If you see no bug wrt this, OK.  In any case, I will close the current bug.
Thanks for taking a look.