unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#70993: set-fontset-font doesn't use specified font for some scripts
@ 2024-05-17  3:30 Rodrigo Morales
  2024-05-17  7:10 ` Eli Zaretskii
  2024-05-18  6:17 ` Rodrigo Morales
  0 siblings, 2 replies; 6+ messages in thread
From: Rodrigo Morales @ 2024-05-17  3:30 UTC (permalink / raw)
  To: 70993


I downloaded the font =cozette.bdf= from https://github.com/slavfox/Cozette/releases/tag/v.1.24.1 . This is a bitmap font that define glyphs for a small set of characters since it is intended for programming.

I launched emacs using =emacs -Q=. I opened the file =/tmp/a.txt=. The contents of that file are shown below.

#+HEADER: :tangle /tmp/a.txt
#+BEGIN_SRC text
The following lines were retrieved from the HELLO buffer which is
opened by calling view-hello-file in GNU Emacs 29.3.
Brahmi (𑀩𑁆𑀭𑀸𑀳𑁆𑀫𑀻)	𑀦𑀫𑀲𑁆𑀢𑁂
Egyptian Hieroglyphs (𓂋𓏤𓈖𓆎𓅓‌𓏏𓊖)	𓅓𓊵𓏏𓊪, 𓇍𓇋𓂻𓍘𓇋
Amharic (አማርኛ)	ሠላም
Tagbanwa (ᝦᝪᝯ)	ᝫᝩᝬᝥ ᝣᝮᝧᝯ
Chinese (中文,普通话,汉语)	你好
#+END_SRC

I called =what-cursor-position= with a prefix argument in the first character of the word from each script to take note of the font that is used by default:

Brahmi: ftcrhb:-GOOG-Noto Sans Brahmi-regular-normal-normal-*-12-*-*-*-*-0-iso10646-1 (#x2E)
Egyptian Hieroglyphs: ftcrhb:-GOOG-Noto Sans Egyptian Hieroglyphs-regular-normal-normal-*-12-*-*-*-*-0-iso10646-1 (#x15D)
Amharic: ftcrhb:-GOOG-Noto Sans Ethiopic-regular-normal-normal-*-12-*-*-*-*-0-iso10646-1 (#x2B)
Tagbanwa: ftcrhb:-GOOG-Noto Sans Tagbanwa-regular-normal-normal-*-12-*-*-*-*-0-iso10646-1 (#x0D)
Chinese: ftcrhb:-GOOG-Noto Sans CJK KR-regular-normal-normal-*-12-*-*-*-*-0-iso10646-1 (#x2703)

I then evaluated the following sexp to force the use of the =Cozette= font in the scripts that are shown in that file. Sidenote: I am aware that =Cozette= doesn't define glyphs for these script symbols. The reason I'm reporting this bug is that the current behavior is not consistent.

#+BEGIN_SRC elisp
(progn
  (set-fontset-font t 'brahmi (font-spec :family "Cozette"))
  (set-fontset-font t 'egyptian (font-spec :family "Cozette"))
  (set-fontset-font t 'ethiopic (font-spec :family "Cozette"))
  (set-fontset-font t 'tagbanwa (font-spec :family "Cozette"))
  (set-fontset-font t 'han (font-spec :family "Cozette")))
#+END_SRC

Upon evaluation, the font changed for the Brahmi and Egyptian Hieroglyphs characters. Because =Cozette= doesn't define glyphs for characters in those scripts, a hexadecimal character code in a box is shown for those scripts. As for Amharic, Tagbanwa and Chinese characters, the font didn't change. I called =what-cursor-position= with a prefix argument in each line to take note of the fonts:

Brahmi: no font available
Egyptian Hieroglyphs: no font available
Amharic: ftcrhb:-GOOG-Noto Sans Ethiopic-regular-normal-normal-*-12-*-*-*-*-0-iso10646-1 (#x2B)
Tagbanwa: ftcrhb:-GOOG-Noto Sans Tagbanwa-regular-normal-normal-*-12-*-*-*-*-0-iso10646-1 (#x12)
Chinese: ftcrhb:-GOOG-Noto Sans CJK KR-regular-normal-normal-*-12-*-*-*-*-0-iso10646-1 (#x2703)

This is not consistent behavior because even though we forced the use of a single font for all scripts in the file in the sexp shown above, Emacs tried to use "Cozette" in the lines containing the Brahmi and Egyptian Hieroglyphs characters (group A) and because no glyph was found, it displayed the hexadecimal character code in a box, while Emacs didn't change the font in the lines containing Amharic, Tagbanwa and Chinese characters (group B), so it didn't display hexadecimal character code in a box as happened in (group A).

The consistent behavior would be that characters of all scripts shown in the file /tmp/a.txt display a hexadecimal character code in a box after evaluation of the sexp shown above because Cozette version 1.24.1 (the font used to reproduce the bug) doesn't define glyphs for those scripts. I think some people might think that the current behavior happens because Emacs uses a fallback font, but this still shouldn't happen because I had explicitly set the use of a single font for those scripts (I didn't pass =prepend= or =append= as the 5th parameter of set-fontset-font) so Emacs should honour that and don't assume that I want to use fallback fonts. Users that want to handle fallback fonts should explicitly pass 'prepend or 'append as the 5th parameter to set-fontset-font.

In GNU Emacs 29.3 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.41,
cairo version 1.18.0)
Windowing system distributor 'The X.Org Foundation', version 11.0.12101004
System Description: Ubuntu 22.04.4 LTS

Configured using:
 'configure
 CONFIG_SHELL=/gnu/store/v9p25q9l5nnaixkhpap5rnymmwbhf9rp-bash-minimal-5.1.16/bin/bash
 SHELL=/gnu/store/v9p25q9l5nnaixkhpap5rnymmwbhf9rp-bash-minimal-5.1.16/bin/bash
 --prefix=/gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3
 --enable-fast-install --with-cairo --with-modules
 --with-native-compilation=aot --disable-build-details'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES
NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3
THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER X11 XDBE XIM XINPUT2 XPM
GTK3 ZLIB

Important settings:
  value of $EMACSLOADPATH: /home/rodrigo/.guix-home/profile/share/emacs/site-lisp:/gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp:/gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp:/gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp
  value of $EMACSNATIVELOADPATH: /home/rodrigo/.guix-home/profile/lib/emacs/native-site-lisp
  value of $LC_MONETARY: en_US.UTF-8
  value of $LC_NUMERIC: en_US.UTF-8
  value of $LC_TIME: en_US.UTF-8
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Text

Minor modes in effect:
  tooltip-mode: t
  global-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
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/gnu/store/v8r6az9568lv4p8srgamrmsm92krn130-emacs-transient-0.6.0/share/emacs/site-lisp/transient-0.6.0/transient hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/transient
/gnu/store/b3dv0m30c3aqjcf3qdvfl67faw3zp8fy-emacs-use-package-2.4.4/share/emacs/site-lisp/use-package-2.4.4/use-package-ensure hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/use-package/use-package-ensure
/gnu/store/b3dv0m30c3aqjcf3qdvfl67faw3zp8fy-emacs-use-package-2.4.4/share/emacs/site-lisp/use-package-2.4.4/use-package-core hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/use-package/use-package-core
/gnu/store/b3dv0m30c3aqjcf3qdvfl67faw3zp8fy-emacs-use-package-2.4.4/share/emacs/site-lisp/use-package-2.4.4/use-package-ensure-system-package hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/use-package/use-package-ensure-system-package
/gnu/store/b3dv0m30c3aqjcf3qdvfl67faw3zp8fy-emacs-use-package-2.4.4/share/emacs/site-lisp/use-package-2.4.4/use-package-delight hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/use-package/use-package-delight
/gnu/store/b3dv0m30c3aqjcf3qdvfl67faw3zp8fy-emacs-use-package-2.4.4/share/emacs/site-lisp/use-package-2.4.4/use-package-jump hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/use-package/use-package-jump
/gnu/store/b3dv0m30c3aqjcf3qdvfl67faw3zp8fy-emacs-use-package-2.4.4/share/emacs/site-lisp/use-package-2.4.4/use-package-bind-key hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/use-package/use-package-bind-key
/gnu/store/b3dv0m30c3aqjcf3qdvfl67faw3zp8fy-emacs-use-package-2.4.4/share/emacs/site-lisp/use-package-2.4.4/use-package-diminish hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/use-package/use-package-diminish
/gnu/store/b3dv0m30c3aqjcf3qdvfl67faw3zp8fy-emacs-use-package-2.4.4/share/emacs/site-lisp/use-package-2.4.4/use-package hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/use-package/use-package
/gnu/store/b3dv0m30c3aqjcf3qdvfl67faw3zp8fy-emacs-use-package-2.4.4/share/emacs/site-lisp/use-package-2.4.4/bind-key hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/use-package/bind-key
/gnu/store/b3dv0m30c3aqjcf3qdvfl67faw3zp8fy-emacs-use-package-2.4.4/share/emacs/site-lisp/use-package-2.4.4/use-package-lint hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/use-package/use-package-lint
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-forth hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-forth
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-cycle hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-cycle
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ol-bibtex hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ol-bibtex
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-sql hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-sql
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-R hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-R
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-macs hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-macs
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-js hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-js
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-tangle hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-tangle
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-faces hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-faces
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ol-doi hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ol-doi
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-python hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-python
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-mobile hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-mobile
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ox-odt hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ox-odt
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-refile hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-refile
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-clock hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-clock
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-sass hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-sass
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-lilypond hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-lilypond
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-keys hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-keys
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-core hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-core
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-loaddefs hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-loaddefs
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-fold hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-fold
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/oc-natbib hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/oc-natbib
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-scheme hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-scheme
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-org hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-org
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-table hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-table
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-sed hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-sed
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ol-rmail hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ol-rmail
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ol-mhe hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ol-mhe
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-fold-core hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-fold-core
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-compat hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-compat
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ox hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ox
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-attach-git hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-attach-git
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-indent hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-indent
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-makefile hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-makefile
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-protocol hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-protocol
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ox-icalendar hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ox-icalendar
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-css hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-css
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-src hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-src
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-footnote hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-footnote
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-sqlite hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-sqlite
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ol-eww hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ol-eww
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ox-man hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ox-man
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-ruby hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-ruby
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-element hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-element
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ox-beamer hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ox-beamer
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ol-w3m hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ol-w3m
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ox-md hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ox-md
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-habit hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-habit
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-eval hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-eval
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-latex hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-latex
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-inlinetask hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-inlinetask
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ox-ascii hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ox-ascii
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-screen hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-screen
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-crypt hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-crypt
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-capture hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-capture
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-entities hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-entities
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ox-org hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ox-org
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-tempo hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-tempo
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ox-publish hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ox-publish
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-julia hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-julia
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/oc-basic hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/oc-basic
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-java hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-java
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-goto hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-goto
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/oc hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/oc
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-matlab hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-matlab
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-macro hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-macro
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-dot hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-dot
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-ctags hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-ctags
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ol hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ol
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-lob hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-lob
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ol-docview hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ol-docview
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ol-info hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ol-info
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-archive hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-archive
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-ocaml hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-ocaml
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-timer hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-timer
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-emacs-lisp hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-emacs-lisp
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-table hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-table
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ol-man hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ol-man
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-perl hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-perl
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-clojure hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-clojure
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-shell hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-shell
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ol-bbdb hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ol-bbdb
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-id hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-id
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-lua hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-lua
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-calc hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-calc
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-datetree hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-datetree
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ox-html hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ox-html
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-colview hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-colview
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-mouse hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-mouse
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ol-irc hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ol-irc
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-ditaa hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-ditaa
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-processing hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-processing
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-eshell hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-eshell
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ol-gnus hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ol-gnus
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-pcomplete hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-pcomplete
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-plantuml hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-plantuml
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-fortran hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-fortran
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-num hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-num
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-groovy hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-groovy
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-list hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-list
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ox-latex hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ox-latex
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-lint hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-lint
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-version hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-version
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-comint hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-comint
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-lisp hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-lisp
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ox-koma-letter hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ox-koma-letter
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-plot hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-plot
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-attach hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-attach
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ox-texinfo hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ox-texinfo
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-ref hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-ref
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-awk hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-awk
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-feed hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-feed
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/oc-bibtex hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/oc-bibtex
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-persist hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-persist
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/oc-csl hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/oc-csl
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-maxima hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-maxima
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/oc-biblatex hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/oc-biblatex
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-C hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-C
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-haskell hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-haskell
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-exp hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-exp
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-agenda hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-agenda
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-octave hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-octave
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ol-eshell hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ol-eshell
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/org-duration hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/org-duration
/gnu/store/031352359pz52775hfcm6kr4qlckkrx1-emacs-org-9.6.28/share/emacs/site-lisp/org-9.6.28/ob-gnuplot hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/org/ob-gnuplot
/gnu/store/kkjkvl02mpbi1xb4f655wsfs8d35cyav-emacs-let-alist-1.0.6/share/emacs/site-lisp/let-alist-1.0.6/let-alist hides /gnu/store/bpalqnfh1y0hy1921lpxx5a6yr6b5ksi-emacs-29.3/share/emacs/29.3/lisp/emacs-lisp/let-alist

Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068
epg-config gnus-util text-property-search mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils time-date subr-x
cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric
uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/x-win x-win term/common-win x-dnd 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 nadvice seq simple cl-generic
indonesian philippine 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 abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind inotify lcms2
dynamic-setting system-font-setting font-render-setting cairo
move-toolbar gtk x-toolkit xinput2 x multi-tty make-network-process
native-compile emacs)

Memory information:
((conses 16 67127 4840)
 (symbols 48 5422 0)
 (strings 32 19301 3205)
 (string-bytes 1 778958)
 (vectors 16 18480)
 (vector-slots 8 641128 12566)
 (floats 8 22 20)
 (intervals 56 259 0)
 (buffers 984 12))





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

* bug#70993: set-fontset-font doesn't use specified font for some scripts
  2024-05-17  3:30 bug#70993: set-fontset-font doesn't use specified font for some scripts Rodrigo Morales
@ 2024-05-17  7:10 ` Eli Zaretskii
  2024-05-17 14:57   ` Rodrigo Morales
  2024-05-18  6:17 ` Rodrigo Morales
  1 sibling, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2024-05-17  7:10 UTC (permalink / raw)
  To: Rodrigo Morales; +Cc: 70993

> Date: Thu, 16 May 2024 22:30:56 -0500
> From: Rodrigo Morales <me@rodrigomorales.site>
> 
> 
> I downloaded the font =cozette.bdf= from https://github.com/slavfox/Cozette/releases/tag/v.1.24.1 . This is a bitmap font that define glyphs for a small set of characters since it is intended for programming.
> 
> I launched emacs using =emacs -Q=. I opened the file =/tmp/a.txt=. The contents of that file are shown below.
> 
> #+HEADER: :tangle /tmp/a.txt
> #+BEGIN_SRC text
> The following lines were retrieved from the HELLO buffer which is
> opened by calling view-hello-file in GNU Emacs 29.3.
> Brahmi (𑀩𑁆𑀭𑀸𑀳𑁆𑀫𑀻)	𑀦𑀫𑀲𑁆𑀢𑁂
> Egyptian Hieroglyphs (𓂋𓏤𓈖𓆎𓅓‌𓏏𓊖)	𓅓𓊵𓏏𓊪, 𓇍𓇋𓂻𓍘𓇋
> Amharic (አማርኛ)	ሠላም
> Tagbanwa (ᝦᝪᝯ)	ᝫᝩᝬᝥ ᝣᝮᝧᝯ
> Chinese (中文,普通话,汉语)	你好
> #+END_SRC
> 
> I called =what-cursor-position= with a prefix argument in the first character of the word from each script to take note of the font that is used by default:
> 
> Brahmi: ftcrhb:-GOOG-Noto Sans Brahmi-regular-normal-normal-*-12-*-*-*-*-0-iso10646-1 (#x2E)
> Egyptian Hieroglyphs: ftcrhb:-GOOG-Noto Sans Egyptian Hieroglyphs-regular-normal-normal-*-12-*-*-*-*-0-iso10646-1 (#x15D)
> Amharic: ftcrhb:-GOOG-Noto Sans Ethiopic-regular-normal-normal-*-12-*-*-*-*-0-iso10646-1 (#x2B)
> Tagbanwa: ftcrhb:-GOOG-Noto Sans Tagbanwa-regular-normal-normal-*-12-*-*-*-*-0-iso10646-1 (#x0D)
> Chinese: ftcrhb:-GOOG-Noto Sans CJK KR-regular-normal-normal-*-12-*-*-*-*-0-iso10646-1 (#x2703)
> 
> I then evaluated the following sexp to force the use of the =Cozette= font in the scripts that are shown in that file. Sidenote: I am aware that =Cozette= doesn't define glyphs for these script symbols. The reason I'm reporting this bug is that the current behavior is not consistent.
> 
> #+BEGIN_SRC elisp
> (progn
>   (set-fontset-font t 'brahmi (font-spec :family "Cozette"))
>   (set-fontset-font t 'egyptian (font-spec :family "Cozette"))
>   (set-fontset-font t 'ethiopic (font-spec :family "Cozette"))
>   (set-fontset-font t 'tagbanwa (font-spec :family "Cozette"))
>   (set-fontset-font t 'han (font-spec :family "Cozette")))
> #+END_SRC
> 
> Upon evaluation, the font changed for the Brahmi and Egyptian Hieroglyphs characters. Because =Cozette= doesn't define glyphs for characters in those scripts, a hexadecimal character code in a box is shown for those scripts. As for Amharic, Tagbanwa and Chinese characters, the font didn't change. I called =what-cursor-position= with a prefix argument in each line to take note of the fonts:
> 
> Brahmi: no font available
> Egyptian Hieroglyphs: no font available
> Amharic: ftcrhb:-GOOG-Noto Sans Ethiopic-regular-normal-normal-*-12-*-*-*-*-0-iso10646-1 (#x2B)
> Tagbanwa: ftcrhb:-GOOG-Noto Sans Tagbanwa-regular-normal-normal-*-12-*-*-*-*-0-iso10646-1 (#x12)
> Chinese: ftcrhb:-GOOG-Noto Sans CJK KR-regular-normal-normal-*-12-*-*-*-*-0-iso10646-1 (#x2703)
> 
> This is not consistent behavior because even though we forced the use of a single font for all scripts in the file in the sexp shown above, Emacs tried to use "Cozette" in the lines containing the Brahmi and Egyptian Hieroglyphs characters (group A) and because no glyph was found, it displayed the hexadecimal character code in a box, while Emacs didn't change the font in the lines containing Amharic, Tagbanwa and Chinese characters (group B), so it didn't display hexadecimal character code in a box as happened in (group A).
> 
> The consistent behavior would be that characters of all scripts shown in the file /tmp/a.txt display a hexadecimal character code in a box after evaluation of the sexp shown above because Cozette version 1.24.1 (the font used to reproduce the bug) doesn't define glyphs for those scripts. I think some people might think that the current behavior happens because Emacs uses a fallback font, but this still shouldn't happen because I had explicitly set the use of a single font for those scripts (I didn't pass =prepend= or =append= as the 5th parameter of set-fontset-font) so Emacs should honour that and don't assume that I want to use fallback fonts. Users that want to handle fallback fonts should explicitly pass 'prepend or 'append as the 5th parameter to set-fontset-font.

I think you need to evaluate those set-fontset-font expressions
_before_ displaying any characters from the corresponding scripts
(i.e., at the very beginning of the Emacs session), to get reliable
results.  That's because some scripts require characters to be
composed on display, and Emacs caches these compositions together with
the font used to display those characters.  Changing the fontset after
some character compositions were already cached will not change the
font recorded in the cached compositions.

IOW, set-fontset-font cannot be reliably used in the middle of an
Emacs session.





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

* bug#70993: set-fontset-font doesn't use specified font for some scripts
  2024-05-17  7:10 ` Eli Zaretskii
@ 2024-05-17 14:57   ` Rodrigo Morales
  2024-05-17 15:55     ` Eli Zaretskii
  0 siblings, 1 reply; 6+ messages in thread
From: Rodrigo Morales @ 2024-05-17 14:57 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 70993

Eli Zaretskii <eliz@gnu.org> writes:

> I think you need to evaluate those set-fontset-font expressions
> _before_ displaying any characters from the corresponding scripts
> (i.e., at the very beginning of the Emacs session), to get reliable
> results.

I tried setting the font for those scripts in an empty
~/.config/emacs/init.el but the hexadecimal code inside a box was not
shown.

I cleaned the file =~/.config/emacs/init.el= in my system and inserted
the following sexp:

#+HEADER: :tangle ~/.config/emacs/init.el
#+BEGIN_SRC elisp
(set-fontset-font t 'brahmi (font-spec :family "Cozette"))
(set-fontset-font t 'egyptian (font-spec :family "Cozette"))
(set-fontset-font t 'ethiopic (font-spec :family "Cozette"))
(set-fontset-font t 'tagbanwa (font-spec :family "Cozette"))
(set-fontset-font t 'han (font-spec :family "Cozette"))
#+END_SRC

I then launched =emacs= without the =-Q= flag so that
=~/.config/emacs/init.el= is read. Afterwards, I opened the file
=/tmp/a.txt= which contained the same content as in my first message in
this bug report.

#+HEADER: :tangle /tmp/a.txt
#+BEGIN_SRC text
The following lines were retrieved from the HELLO buffer which is
opened by calling view-hello-file in GNU Emacs 29.3.
Brahmi (𑀩𑁆𑀭𑀸𑀳𑁆𑀫𑀻)	𑀦𑀫𑀲𑁆𑀢𑁂
Egyptian Hieroglyphs (𓂋𓏤𓈖𓆎𓅓‌𓏏𓊖)	𓅓𓊵𓏏𓊪, 𓇍𓇋𓂻𓍘𓇋
Amharic (አማርኛ)	ሠላም
Tagbanwa (ᝦᝪᝯ)	ᝫᝩᝬᝥ ᝣᝮᝧᝯ
Chinese (中文,普通话,汉语)	你好
#+END_SRC

The lines containing the scripts Brahmi and Egyptian Hieroglyphs showed
the hexadecimal code inside a box, while the lines containing the
scripts Amharic, Tagbanwa and Chinese didn't show the hexadecimal code
inside a box. Here's the font reported by what-cursor-position when
called with a prefix argument in each line:

Brahmi: no font available
Egyptian Hieroglyphs: no font available
Amharic: ftcrhb:-GOOG-Noto Sans Ethiopic-regular-normal-normal-*-12-*-*-*-*-0-iso10646-1 (#x2B)
Tagbanwa: ftcrhb:-GOOG-Noto Sans Tagbanwa-regular-normal-normal-*-12-*-*-*-*-0-iso10646-1 (#x12)
Chinese: ftcrhb:-GOOG-Noto Sans CJK KR-regular-normal-normal-*-12-*-*-*-*-0-iso10646-1 (#x2703)

> That's because some scripts require characters to be composed on
> display, and Emacs caches these compositions together with the font
> used to display those characters.  Changing the fontset after some
> character compositions were already cached will not change the font
> recorded in the cached compositions.
>
> IOW, set-fontset-font cannot be reliably used in the middle of an
> Emacs session.

This is a significant limitation for users that feel the need to
regularly change the font for a given script in the middle of an Emacs
session (e.g. users of the package
[[https://github.com/tumashu/cnfonts][cnfonts]], the package primarily
uses set-fontset-font for setting the font for the scripts 'kana, 'han,
'cjk-misc, 'bopomofo and 'hangul). As for me, I usually change the font
for the script 'han because I'm studying Asian languages and the glyphs
for a unique code point can be significantly different when using
different fonts, see more information in table "Same code point,
different language tags" in
https://en.wikipedia.org/wiki/Variant_Chinese_characters

I lack knowledge on how Emacs internals work to set the font for
specific scripts and how glyphs for each character are chosen so I don't
know how difficult this would be to implement but I believe that given
that Emacs is called an extensible and customizable text editor in
https://www.gnu.org/software/emacs/, set-fontset-font should have a
reliable and consistent behavior when it is run in the middle of an
Emacs session. Thus, giving users the freedom to change the font for any
script at any time reliably and making Emacs more customizable. Please
let me know your thoughts.





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

* bug#70993: set-fontset-font doesn't use specified font for some scripts
  2024-05-17 14:57   ` Rodrigo Morales
@ 2024-05-17 15:55     ` Eli Zaretskii
  0 siblings, 0 replies; 6+ messages in thread
From: Eli Zaretskii @ 2024-05-17 15:55 UTC (permalink / raw)
  To: Rodrigo Morales; +Cc: 70993

> From: Rodrigo Morales <me@rodrigomorales.site>
> CC: <70993@debbugs.gnu.org>
> Date: Fri, 17 May 2024 09:57:47 -0500
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> (set-fontset-font t 'brahmi (font-spec :family "Cozette"))
> (set-fontset-font t 'egyptian (font-spec :family "Cozette"))
> (set-fontset-font t 'ethiopic (font-spec :family "Cozette"))
> (set-fontset-font t 'tagbanwa (font-spec :family "Cozette"))
> (set-fontset-font t 'han (font-spec :family "Cozette"))

Fir Chinese characters, you need to do the same for cjk-misc charset
as well.  Not sure it will help you though.

In any case, it sounds like Emacs rejects the Cozette font for some
scripts.  Why that happens, I don't know, sorry.  Can you set font-log
to nil before you visit your a.txt file, and then post the value of
font-log after the file is displayed?  That could perhaps tell us
something about the cause of this behavior.

In general, the Emacs font search and the related features are
designed to find good fonts for displaying each character, whereas you
are trying to do the opposite: force Emacs to choose a font that can
NOT display characters.  The doc string of set-fontset-font explains
how to set up a fontset so that certain characters have no font: use
nil for the FONT-SPEC argument.  So if you want Amharic and Chinese
characters to display as glyphless characters, use this:

  (set-fontset-font t 'han nil)
  (set-fontset-font t 'ethiopic nil)

> > That's because some scripts require characters to be composed on
> > display, and Emacs caches these compositions together with the font
> > used to display those characters.  Changing the fontset after some
> > character compositions were already cached will not change the font
> > recorded in the cached compositions.
> >
> > IOW, set-fontset-font cannot be reliably used in the middle of an
> > Emacs session.
> 
> This is a significant limitation for users that feel the need to
> regularly change the font for a given script in the middle of an Emacs
> session (e.g. users of the package
> [[https://github.com/tumashu/cnfonts][cnfonts]], the package primarily
> uses set-fontset-font for setting the font for the scripts 'kana, 'han,
> 'cjk-misc, 'bopomofo and 'hangul). As for me, I usually change the font
> for the script 'han because I'm studying Asian languages and the glyphs
> for a unique code point can be significantly different when using
> different fonts, see more information in table "Same code point,
> different language tags" in
> https://en.wikipedia.org/wiki/Variant_Chinese_characters
> 
> I lack knowledge on how Emacs internals work to set the font for
> specific scripts and how glyphs for each character are chosen so I don't
> know how difficult this would be to implement but I believe that given
> that Emacs is called an extensible and customizable text editor in
> https://www.gnu.org/software/emacs/, set-fontset-font should have a
> reliable and consistent behavior when it is run in the middle of an
> Emacs session. Thus, giving users the freedom to change the font for any
> script at any time reliably and making Emacs more customizable. Please
> let me know your thoughts.

This is indeed a limitation for someone who modifies the fontsets a
lot during a session, but unless someone submits patches to lift it,
it will remain a limitation, sorry.





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

* bug#70993: set-fontset-font doesn't use specified font for some scripts
  2024-05-17  3:30 bug#70993: set-fontset-font doesn't use specified font for some scripts Rodrigo Morales
  2024-05-17  7:10 ` Eli Zaretskii
@ 2024-05-18  6:17 ` Rodrigo Morales
  2024-05-18  8:05   ` Eli Zaretskii
  1 sibling, 1 reply; 6+ messages in thread
From: Rodrigo Morales @ 2024-05-18  6:17 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 70993

Eli Zaretskii <eliz@gnu.org> writes:

> In any case, it sounds like Emacs rejects the Cozette font for some
> scripts.  Why that happens, I don't know, sorry.  Can you set font-log
> to nil before you visit your a.txt file, and then post the value of
> font-log after the file is displayed?  That could perhaps tell us
> something about the cause of this behavior.

I performed two experiments. I emptied ~/.config/emacs/init.el and
inserted the sexps showed in the first code block below. The content of
=/tmp/a.txt= is shown in the second code block below.

#+HEADER: :tangle ~/.config/emacs/init.el
#+BEGIN_SRC elisp
(set-fontset-font t 'brahmi (font-spec :family "Cozette"))
(set-fontset-font t 'egyptian (font-spec :family "Cozette"))
(set-fontset-font t 'ethiopic (font-spec :family "Cozette"))
(set-fontset-font t 'tagbanwa (font-spec :family "Cozette"))
(set-fontset-font t 'han (font-spec :family "Cozette"))
#+END_SRC

#+HEADER: :tangle /tmp/a.txt
#+BEGIN_SRC text
The following lines were retrieved from the HELLO buffer which is
opened by calling view-hello-file in GNU Emacs 29.3.
Brahmi (𑀩𑁆𑀭𑀸𑀳𑁆𑀫𑀻)	𑀦𑀫𑀲𑁆𑀢𑁂
Egyptian Hieroglyphs (𓂋𓏤𓈖𓆎𓅓‌𓏏𓊖)	𓅓𓊵𓏏𓊪, 𓇍𓇋𓂻𓍘𓇋
Amharic (አማርኛ)	ሠላም
Tagbanwa (ᝦᝪᝯ)	ᝫᝩᝬᝥ ᝣᝮᝧᝯ
Chinese (中文,普通话,汉语)	你好
#+END_SRC

1. I launched =emacs= without the =-Q= flag so that
   =~/.config/emacs/init.el= is read. Then, I evaluated =(setq
   font-log nil)=. Then, I evaluated =(find-file
   "/tmp/a.txt")=. Brahmi and Egyptian Hieroglyphs were shown as
   hexadecimal codes inside boxes. Amharic, Tagbanwa and Chinese
   characters were shown using other fonts. Then, I evaluated
   =(describe-variable 'font-log)=. The content of the =*Help*= buffer
   can be found here:
   http://web.archive.org/web/20240518060947/http://0x0.st/XPqh.txt

2. I launched =EMACS_FONT_LOG=1 emacs= without the =-Q= flag so that
   =~/.config/emacs/init.el= is read. Then, I evaluated =(find-file
   "/tmp/a.txt")=. Brahmi and Egyptian Hieroglyphs were shown as
   hexadecimal codes inside boxes. Amharic, Tagbanwa and Chinese
   characters were shown using other fonts. Then, I evaluated
   =(describe-variable 'font-log)=. The content of the =*Help*= buffer
   can be found here:
   http://web.archive.org/web/20240518061129/http://0x0.st/XPq7.txt

> In general, the Emacs font search and the related features are
> designed to find good fonts for displaying each character, whereas you
> are trying to do the opposite: force Emacs to choose a font that can
> NOT display characters.  The doc string of set-fontset-font explains
> how to set up a fontset so that certain characters have no font: use
> nil for the FONT-SPEC argument.  So if you want Amharic and Chinese
> characters to display as glyphless characters, use this:
>
>   (set-fontset-font t 'han nil)
>   (set-fontset-font t 'ethiopic nil)

I tried what you suggested. However, this didn't make Amharic and
Chinese characters to be shown as glyphless characters. See bug#71025.

> This is indeed a limitation for someone who modifies the fontsets a
> lot during a session, but unless someone submits patches to lift it,
> it will remain a limitation, sorry.

No problem. I will work on a patch when time allows. My initial thought
was that Emacs mantainers assumed that most users don't need to call
set-fontset-font in the middle of an Emacs session, so any user that
tries to do this shouldn't be taken into consideration and those users
need to adapt themselves to that constraint, this way of thinking goes
against the goal of Emacs of being a customizable text editor. However,
your last message proved my initial thoughts wrong.





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

* bug#70993: set-fontset-font doesn't use specified font for some scripts
  2024-05-18  6:17 ` Rodrigo Morales
@ 2024-05-18  8:05   ` Eli Zaretskii
  0 siblings, 0 replies; 6+ messages in thread
From: Eli Zaretskii @ 2024-05-18  8:05 UTC (permalink / raw)
  To: Rodrigo Morales; +Cc: 70993

> From: Rodrigo Morales <me@rodrigomorales.site>
> CC: <70993@debbugs.gnu.org>
> Date: Sat, 18 May 2024 01:17:33 -0500
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > In any case, it sounds like Emacs rejects the Cozette font for some
> > scripts.  Why that happens, I don't know, sorry.  Can you set font-log
> > to nil before you visit your a.txt file, and then post the value of
> > font-log after the file is displayed?  That could perhaps tell us
> > something about the cause of this behavior.
> 
> I performed two experiments. I emptied ~/.config/emacs/init.el and
> inserted the sexps showed in the first code block below. The content of
> =/tmp/a.txt= is shown in the second code block below.
> 
> #+HEADER: :tangle ~/.config/emacs/init.el
> #+BEGIN_SRC elisp
> (set-fontset-font t 'brahmi (font-spec :family "Cozette"))
> (set-fontset-font t 'egyptian (font-spec :family "Cozette"))
> (set-fontset-font t 'ethiopic (font-spec :family "Cozette"))
> (set-fontset-font t 'tagbanwa (font-spec :family "Cozette"))
> (set-fontset-font t 'han (font-spec :family "Cozette"))
> #+END_SRC
> 
> #+HEADER: :tangle /tmp/a.txt
> #+BEGIN_SRC text
> The following lines were retrieved from the HELLO buffer which is
> opened by calling view-hello-file in GNU Emacs 29.3.
> Brahmi (𑀩𑁆𑀭𑀸𑀳𑁆𑀫𑀻)	𑀦𑀫𑀲𑁆𑀢𑁂
> Egyptian Hieroglyphs (𓂋𓏤𓈖𓆎𓅓‌𓏏𓊖)	𓅓𓊵𓏏𓊪, 𓇍𓇋𓂻𓍘𓇋
> Amharic (አማርኛ)	ሠላም
> Tagbanwa (ᝦᝪᝯ)	ᝫᝩᝬᝥ ᝣᝮᝧᝯ
> Chinese (中文,普通话,汉语)	你好
> #+END_SRC
> 
> 1. I launched =emacs= without the =-Q= flag so that
>    =~/.config/emacs/init.el= is read. Then, I evaluated =(setq
>    font-log nil)=. Then, I evaluated =(find-file
>    "/tmp/a.txt")=. Brahmi and Egyptian Hieroglyphs were shown as
>    hexadecimal codes inside boxes. Amharic, Tagbanwa and Chinese
>    characters were shown using other fonts. Then, I evaluated
>    =(describe-variable 'font-log)=. The content of the =*Help*= buffer
>    can be found here:
>    http://web.archive.org/web/20240518060947/http://0x0.st/XPqh.txt

Did you also make Cozette the default font?  If not, why not?  I
thought your intent was to use the same font for all the characters,
including ASCII?  Emacs will use the default font for any non-ASCII
characters that the default font supports, so if you want all of them
to use Cozette, you should start Emacs as "emacs -fn Cozette", or use
add-to-list to customize the 'font' parameter in default-frame-alist.





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

end of thread, other threads:[~2024-05-18  8:05 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-17  3:30 bug#70993: set-fontset-font doesn't use specified font for some scripts Rodrigo Morales
2024-05-17  7:10 ` Eli Zaretskii
2024-05-17 14:57   ` Rodrigo Morales
2024-05-17 15:55     ` Eli Zaretskii
2024-05-18  6:17 ` Rodrigo Morales
2024-05-18  8:05   ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).