all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#58335: 28.2; Default font 'not available' when running dictionary
@ 2022-10-06 12:38 Alejandro Pérez Carballo
  2022-10-06 17:27 ` Eli Zaretskii
  0 siblings, 1 reply; 5+ messages in thread
From: Alejandro Pérez Carballo @ 2022-10-06 12:38 UTC (permalink / raw)
  To: 58335

I tried calling `dictionary` (just `M-x dictionary RET`) and got the following error:

    set-face-attribute: Font not available: #<font-spec nil nil default nil nil nil nil nil nil nil nil nil ((:name . "default") (:user-spec . "default"))>

I do not get this error if I simply run `emacs -Q` and then call `dictionary`. But adding just

    (set-face-attribute 'default nil :font "Input")

suffices to reproduce the error on my system (after calling `emacs -Q -l file.el`, where 'file.el' contains just that one line).

Interestingly, the problem only seems to arise with this particular font (which I just obtained from https://input.djr.com and hasn't given me any trouble). I tried using Arial, Fira Mono, Menlo, Monaco, and PT Mono, and none of them resulted in this problem. 

The backtrace is here:

```
Debugger entered--Lisp error: (error "Font not available" #<font-spec
  nil nil default nil nil nil nil nil nil nil nil nil ((:name .
  "default") (:user-spec . "default"))>)
  internal-set-lisp-face-attribute(dictionary-word-definition-face :font
  "default" #<frame *Minibuf-1* 0x7fedb205a230>)
  set-face-attribute(dictionary-word-definition-face #<frame *Minibuf-1*
  0x7fedb205a230> :font "default") apply(set-face-attribute
  dictionary-word-definition-face #<frame *Minibuf-1* 0x7fedb205a230>
  (:font "default")) face-spec-set-2(dictionary-word-definition-face
  #<frame *Minibuf-1* 0x7fedb205a230> (:font "default"))
  face-spec-recalc(dictionary-word-definition-face #<frame *Minibuf-1*
  0x7fedb205a230>) face-spec-set(dictionary-word-definition-face
  ((((supports (:family "DejaVu Serif"))) (:family "DejaVu Serif"))
  (((type x)) (:font "Sans Serif")) (t (:font "default")))
  face-defface-spec) custom-declare-face(dictionary-word-definition-face
  ((((supports (:family "DejaVu Serif"))) (:family "DejaVu Serif"))
  (((type x)) (:font "Sans Serif")) (t (:font "default"))) "The face
  that is used for displaying the definitio..." :group dictionary
  :version "28.1")
  byte-code("\300\301\302\303\304\305%\210\300\306\302\307\304\301%\210\310\311\312\313\314DD\315\304\301\316\317\320\321\322\323&\13\210\310\324\312\313\325DD\326\304\301\316\317\320\327\322..."
  [custom-declare-group dictionary nil "Client for accessing the dictd
  server based dictio..." :group hypermedia dictionary-proxy "Proxy
  configuration options for the dictionary cli..."
  custom-declare-variable dictionary-server funcall function
  #f(compiled-function () #<bytecode 0x1f400016fe914>) "This server is
  contacted for searching the diction..." :set dictionary-set-server-var
  :type (choice (const :tag "Automatic" nil) (const :tag "localhost"
  "localhost") (const :tag "dict.org" "dict.org") (string :tag
  "User-defined")) :version "28.1" dictionary-port #f(compiled-function
  () #<bytecode 0x1f4000164e954>) "The port of the dictionary
  server.\nThis port is pr..." number dictionary-identification
  #f(compiled-function () #<bytecode 0x146b32ea6ce40a76>) "This is the
  identification string that will be sen..." string
  dictionary-default-dictionary #f(compiled-function () #<bytecode
  0x1f400016f1854>) "The dictionary which is used for searching
  definit..." dictionary-default-strategy #f(compiled-function ()
  #<bytecode 0x1f400016f1d54>) "The default strategy for listing
  matching words." dictionary-default-popup-strategy
  #f(compiled-function () #<bytecode 0x1f40096442094>) "The default
  strategy for listing matching words wi..." (choice (const :tag "Exact
  match" "exact") (const :tag "Similar sounding" "soundex") (const :tag
  "Levenshtein distance one" "lev") (string :tag "User choice"))
  dictionary-create-buttons #f(compiled-function () #<bytecode
  0x1f400016fe5d4>) "Create some clickable buttons on top of the
  window..." boolean dictionary-link-dictionary #f(compiled-function ()
  #<bytecode 0x1f400016f1854>) "The dictionary which is used in
  links.\n* means to ..." (choice (const :tag "Link to all dictionaries"
  "*") (const :tag "Link only to the same dictionary" nil) (string :tag
  "User choice")) dictionary-mode-hook #f(compiled-function ()
  #<bytecode 0x1f400016fe914>) "Hook run in dictionary mode buffers."
  hook ...] 20) autoload-do-load((autoload "dictionary" 1071170 t nil)
  dictionary) command-execute(dictionary record)
  execute-extended-command(nil "dictionary" "diction")
  funcall-interactively(execute-extended-command nil "dictionary"
  "diction") call-interactively(execute-extended-command nil nil)
  command-execute(execute-extended-command)
```  


In GNU Emacs 28.2 (build 1, x86_64-apple-darwin21.6.0, NS appkit-2113.60 Version 12.5 (Build 21G72))
 of 2022-09-13 built on APCiMacwork.local
Windowing system distributor 'Apple', version 10.3.2113
System Description:  macOS 12.6

Configured using:
 'configure --disable-dependency-tracking --disable-silent-rules
 --enable-locallisppath=/usr/local/share/emacs/site-lisp
 --infodir=/usr/local/Cellar/emacs-plus@28/28.2/share/info/emacs
 --prefix=/usr/local/Cellar/emacs-plus@28/28.2 --with-xml2 --with-gnutls
 --without-dbus --without-imagemagick --with-modules --with-rsvg
 --with-ns --disable-ns-self-contained 'CFLAGS=-Os -w -pipe
 -march=nehalem -mmacosx-version-min=12
 -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk'
 'CPPFLAGS=-I/usr/local/opt/icu4c/include
 -I/usr/local/opt/openssl@1.1/include -I/usr/local/opt/readline/include
 -F/usr/local/Frameworks
 -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk'
 'LDFLAGS=-L/usr/local/opt/icu4c/lib -L/usr/local/opt/openssl@1.1/lib
 -L/usr/local/opt/readline/lib -L/usr/local/lib -F/usr/local/Frameworks
 -Wl,-headerpad_max_install_names
 -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk''

Configured features:
ACL GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NOTIFY KQUEUE NS
PDUMPER PNG RSVG THREADS TIFF TOOLKIT_SCROLL_BARS XIM ZLIB

Important settings:
  value of $LC_ALL: en_US.UTF-8
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util rmail
rmail-loaddefs auth-source cl-seq eieio eieio-core cl-macs
eieio-loaddefs password-cache json map text-property-search time-date
subr-x seq byte-opt gv bytecomp byte-compile cconv mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail
rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils face-remap
help-fns radix-tree cl-print debug backtrace help-mode find-func
dictionary-connection cl-loaddefs cl-lib cus-start cus-load iso-transl
tooltip eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel term/ns-win ns-win ucs-normalize
mule-util term/common-win tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode lisp-mode prog-mode register
page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer cl-generic cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button
loaddefs faces cus-face macroexp files window text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote threads kqueue cocoa ns lcms2
multi-tty make-network-process emacs)

Memory information:
((conses 16 81490 6464)
 (symbols 48 8123 1)
 (strings 32 22044 2012)
 (string-bytes 1 707325)
 (vectors 16 14893)
 (vector-slots 8 203042 14826)
 (floats 8 26 125)
 (intervals 56 1701 0)
 (buffers 992 12))





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#58335: 28.2; Default font 'not available' when running dictionary
  2022-10-06 12:38 bug#58335: 28.2; Default font 'not available' when running dictionary Alejandro Pérez Carballo
@ 2022-10-06 17:27 ` Eli Zaretskii
  2022-10-06 17:33   ` Alejandro Pérez Carballo
  0 siblings, 1 reply; 5+ messages in thread
From: Eli Zaretskii @ 2022-10-06 17:27 UTC (permalink / raw)
  To: Alejandro Pérez Carballo; +Cc: 58335

> From: Alejandro Pérez Carballo <apc@umass.edu>
> Date: Thu, 06 Oct 2022 08:38:09 -0400
> 
> I tried calling `dictionary` (just `M-x dictionary RET`) and got the following error:
> 
>     set-face-attribute: Font not available: #<font-spec nil nil default nil nil nil nil nil nil nil nil nil ((:name . "default") (:user-spec . "default"))>
> 
> I do not get this error if I simply run `emacs -Q` and then call `dictionary`. But adding just
> 
>     (set-face-attribute 'default nil :font "Input")
> 
> suffices to reproduce the error on my system (after calling `emacs -Q -l file.el`, where 'file.el' contains just that one line).

What happens if you invoke Emacs like this:

  emacs -Q -fn Input

I suspect that Input font is not good for Emacs, so it rejects it.

Nevertheless, I think the definition of
dictionary-word-definition-face is problematic: it shouldn't use font
names such as "default", because it will always fail like this:

> Debugger entered--Lisp error: (error "Font not available" #<font-spec
>   nil nil default nil nil nil nil nil nil nil nil nil ((:name .
>   "default") (:user-spec . "default"))>)





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#58335: 28.2; Default font 'not available' when running dictionary
  2022-10-06 17:27 ` Eli Zaretskii
@ 2022-10-06 17:33   ` Alejandro Pérez Carballo
  2022-10-06 18:06     ` Eli Zaretskii
  0 siblings, 1 reply; 5+ messages in thread
From: Alejandro Pérez Carballo @ 2022-10-06 17:33 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 58335

[-- Attachment #1: Type: text/plain, Size: 1505 bytes --]

Thanks for writing back. 

If I try

emacs -Q -fn Input

I get Emacs to open with Input as the default font just fine. 



I’ve been using Input with Emacs for over two years without any trouble. In what sense is Emacs rejecting it? 

> On Oct 6, 2022, at 1:27 PM, Eli Zaretskii <eliz@gnu.org> wrote:
> 
>> From: Alejandro Pérez Carballo <apc@umass.edu>
>> Date: Thu, 06 Oct 2022 08:38:09 -0400
>> 
>> I tried calling `dictionary` (just `M-x dictionary RET`) and got the following error:
>> 
>>    set-face-attribute: Font not available: #<font-spec nil nil default nil nil nil nil nil nil nil nil nil ((:name . "default") (:user-spec . "default"))>
>> 
>> I do not get this error if I simply run `emacs -Q` and then call `dictionary`. But adding just
>> 
>>    (set-face-attribute 'default nil :font "Input")
>> 
>> suffices to reproduce the error on my system (after calling `emacs -Q -l file.el`, where 'file.el' contains just that one line).
> 
> What happens if you invoke Emacs like this:
> 
>  emacs -Q -fn Input
> 
> I suspect that Input font is not good for Emacs, so it rejects it.
> 
> Nevertheless, I think the definition of
> dictionary-word-definition-face is problematic: it shouldn't use font
> names such as "default", because it will always fail like this:
> 
>> Debugger entered--Lisp error: (error "Font not available" #<font-spec
>>  nil nil default nil nil nil nil nil nil nil nil nil ((:name .
>>  "default") (:user-spec . "default"))>)


[-- Attachment #2.1: Type: text/html, Size: 2593 bytes --]

[-- Attachment #2.2: PastedGraphic-1.png --]
[-- Type: image/png, Size: 679715 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#58335: 28.2; Default font 'not available' when running dictionary
  2022-10-06 17:33   ` Alejandro Pérez Carballo
@ 2022-10-06 18:06     ` Eli Zaretskii
  2022-10-06 19:57       ` Alejandro Pérez Carballo
  0 siblings, 1 reply; 5+ messages in thread
From: Eli Zaretskii @ 2022-10-06 18:06 UTC (permalink / raw)
  To: Alejandro Pérez Carballo; +Cc: 58335

> From: Alejandro Pérez Carballo <apc@umass.edu>
> Date: Thu, 6 Oct 2022 13:33:49 -0400
> Cc: 58335@debbugs.gnu.org
> 
> If I try
> 
> emacs -Q -fn Input
> 
> I get Emacs to open with Input as the default font just fine. 
> 
> 
> 
> I’ve been using Input with Emacs for over two years without any trouble. In what sense is Emacs rejecting it? 

Not Emacs (forgive me my inaccurate wording), but dictionary.el: it
wants a serif font, AFAIU, whereas Input is a sans-serif font.

I don't understand why dictionary insists on a serif font.  But the
fallback used there should not use a non-existent font family name.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#58335: 28.2; Default font 'not available' when running dictionary
  2022-10-06 18:06     ` Eli Zaretskii
@ 2022-10-06 19:57       ` Alejandro Pérez Carballo
  0 siblings, 0 replies; 5+ messages in thread
From: Alejandro Pérez Carballo @ 2022-10-06 19:57 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 58335

I see. Somehow it accepts Arial, though… ¯\_(ツ)_/¯ 

At any rate, I think the real problem is what you point out—it should take as fallback whatever is the default face, and not a font called ‘default’!

> On Oct 6, 2022, at 2:06 PM, Eli Zaretskii <eliz@gnu.org> wrote:
> 
>> From: Alejandro Pérez Carballo <apc@umass.edu>
>> Date: Thu, 6 Oct 2022 13:33:49 -0400
>> Cc: 58335@debbugs.gnu.org
>> 
>> If I try
>> 
>> emacs -Q -fn Input
>> 
>> I get Emacs to open with Input as the default font just fine. 
>> 
>> 
>> 
>> I’ve been using Input with Emacs for over two years without any trouble. In what sense is Emacs rejecting it? 
> 
> Not Emacs (forgive me my inaccurate wording), but dictionary.el: it
> wants a serif font, AFAIU, whereas Input is a sans-serif font.
> 
> I don't understand why dictionary insists on a serif font.  But the
> fallback used there should not use a non-existent font family name.






^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-10-06 19:57 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-06 12:38 bug#58335: 28.2; Default font 'not available' when running dictionary Alejandro Pérez Carballo
2022-10-06 17:27 ` Eli Zaretskii
2022-10-06 17:33   ` Alejandro Pérez Carballo
2022-10-06 18:06     ` Eli Zaretskii
2022-10-06 19:57       ` Alejandro Pérez Carballo

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.