GNU bug report logs - #54646
29.0.50; set-fontset-font and font clipping issues

Previous Next

Package: emacs;

Reported by: Visuwesh <visuweshm <at> gmail.com>

Date: Thu, 31 Mar 2022 03:38:01 UTC

Severity: normal

Merged with 73752

Found in versions 29.0.50, 29.4

Fixed in version 30.1

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

Bug is archived. No further changes may be made.

Full log


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Visuwesh <visuweshm <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 29.0.50; set-fontset-font and font clipping issues
Date: Thu, 31 Mar 2022 09:07:30 +0530
[Message part 1 (text/plain, inline)]
I have the following line [1] in my init.el to make Emacs use "Kurinto
Seri" for the Tamil script,

    (set-fontset-font t 'tamil "Kurinto Seri")

and this leads to font "clipping" issues.  The text is shaped properly
in that it combines the diacritics but I see "clipping" problems
instead.  See screenshot below:

[screenshot_202203310850.png (image/png, inline)]
[Message part 3 (text/plain, inline)]
I type C-x C-+, then the clipping problem goes away until I increase the
font size again a bit and the problem gets worse:

[screenshot_202203310853.png (image/png, inline)]
[Message part 5 (text/plain, inline)]
I cannot seem to reproduce this from emacs -Q, nor do I see this issue
when I start Emacs up (I use the daemon if that makes a difference [2]).
It naturally shows up after using Emacs for a while, sometimes reopening
the frame fixes the clipping problems, sometimes I have to reevaluate
the set-fontset-font form to fix it.  And this issue isn't font-specific
as well: I had the same problem with "Noto Serif."  I would highly any
hints towards nailing the problem down; I'm really out of ideas.

If I didn't make it clear, there are no such problems if I don't modify
the default fontset.

[1] I also modify the default fontset for other scripts,

      (set-fontset-font t 'mathematical "Kurinto Mono" nil 'prepend)
      (set-fontset-font t 'mathematical "Latin Modern Math" nil 'append)
      (set-fontset-font t 'symbol "Latin Modern Math" nil 'append)
      (set-fontset-font t 'emoji "Kurinto Mono")
      (set-fontset-font t 'emoji "Kurinto Sans" nil 'append)
      (set-fontset-font t 'emoji "DejaVu Sans" nil 'append)

    and I set the language and the locale environment to Tamil and
    ta_IN.utf8 respectively, before modifying the fontset.

[2] Modifying the fontset in `server-after-make-frame-hook' does not
    make a difference.  I don't see the issue when I do not use the
    daemon but I believe I haven't run the non-daemon session long
    enough.

In GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo version 1.16.0, Xaw scroll bars)
Repository revision: ca3858563c7ba8ee3caa82fbd2b7c386ea60c0d3
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12013000
System Description: NixOS 21.11 (Porcupine)

Configured using:
 'configure
 --prefix=/nix/store/iqqk7iqfwmfc6r78xg2knyq7hww2mhs4-emacs-git-20220225.0
 --disable-build-details --with-modules --with-x-toolkit=lucid
 --with-xft --with-cairo --with-native-compilation'

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

Important settings:
  value of $EMACSLOADPATH: 
  value of $EMACSNATIVELOADPATH: /nix/store/5gh4w50dhchhcyjm6ysh17h7y4i5vasf-emacs-packages-deps/share/emacs/native-lisp::
  value of $LC_MONETARY: ta_IN.UTF-8
  value of $LC_NUMERIC: ta_IN.UTF-8
  value of $LANG: en_GB.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Group

Minor modes in effect:
  semantic-minor-modes-format: ((:eval (if (or semantic-highlight-edits-mode semantic-show-unmatched-syntax-mode)  S)))
  gnus-agent-group-mode: t
  gnus-undo-mode: t
  recentf-mode: t
  shell-dirtrack-mode: t
  eros-mode: t
  pdf-occur-global-minor-mode: t
  minibuffer-depth-indicate-mode: t
  repeat-mode: t
  display-time-mode: t
  display-battery-mode: t
  straight-use-package-mode: t
  straight-package-neutering-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tab-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  undelete-frame-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  indent-tabs-mode: t
  transient-mark-mode: t

Load-path shadows:
/home/viz/.nix-profile/share/emacs/site-lisp/site-start hides /nix/store/5gh4w50dhchhcyjm6ysh17h7y4i5vasf-emacs-packages-deps/share/emacs/site-lisp/site-start
/home/viz/lib/emacs/straight/build/map/map hides /nix/store/iqqk7iqfwmfc6r78xg2knyq7hww2mhs4-emacs-git-20220225.0/share/emacs/29.0.50/lisp/emacs-lisp/map
/home/viz/lib/emacs/straight/build/let-alist/let-alist hides /nix/store/iqqk7iqfwmfc6r78xg2knyq7hww2mhs4-emacs-git-20220225.0/share/emacs/29.0.50/lisp/emacs-lisp/let-alist

Features:
(shadow emacsbug sendmail ecomplete vc ind-util shortdoc smerge-mode
diff find-dired dired-aux gnus-dired flow-fill notifications xref
timezone shr-color descr-text url-http url-gw url-cache url-auth
pdf-sync pdf-outline pdf-links pdf-history icomplete tabify
writegood-mode org-agenda cal-islam holidays hol-loaddefs mule-util
cal-move flyspell ispell org-pdftools pdf-annot facemenu org-noter
goto-addr org-indent org-element avl-tree generator org-capture doct
org-refile ob-C cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles
cc-align cc-engine cc-vars cc-defs ob-shell ob-racket async ob-async
tempo ol-eww eww xdg url-queue mm-url ol-rmail ol-mhe ol-irc ol-info
ol-gnus nnselect ol-docview doc-view ol-bibtex ol-bbdb ol-w3m ol-doi
org-link-doi org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro
org-footnote org-src ob-comint org-pcomplete org-list org-faces
org-entities org-version ob-emacs-lisp ob-core ob-eval org-table
oc-basic bibtex ol org-keys oc org-compat org-macs org-loaddefs
mm-archive sort gnus-cite mail-extr textsec uni-scripts idna-mapping
ucs-normalize uni-confusable textsec-check gnus-bcklg gnus-async qp
gnus-ml gnutls network-stream nsm nndraft nnmh nnfolder nnmaildir
nnagent nnml nnnil gnus-agent gnus-srvr gnus-score score-mode nnvirtual
gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig nntp
gnus-cache gnus-sum shr pixel-fill kinsoku url-file url-dired svg dom
gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud nnimap nnmail
mail-source utf7 netrc nnoo gnus-spec gnus-int gnus-range message
yank-media rmc puny rfc822 mml mml-sec epa epg rfc6068 epg-config
mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045
ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus nnheader
gnus-util mail-utils range mm-util mail-prsvr tramp-cmds rfc2104
tramp-cache tramp-sh tramp tramp-loaddefs trampver tramp-integration
cus-start files-x tramp-compat parse-time iso8601 ls-lisp shell-command+
view executable time-stamp pulse color cl-print help-fns misearch
multi-isearch reveal noutline outline recentf tree-widget vc-git
diff-mode vc-dispatcher cursor-sensor face-remap shell pcomplete server
paredit edmacro kmacro eros time-date checkdoc flymake-proc flymake
project thingatpt hl-todo wordel-autoloads sokoban-autoloads
ement-autoloads ts-autoloads map-autoloads plz-autoloads nov-autoloads
esxml-autoloads kv-autoloads transmission-autoloads lua-mode-autoloads
nix-mode-autoloads magit-section-autoloads dash-autoloads
racket-mode-autoloads eros-autoloads flymake-shellcheck-autoloads
writegood-mode-autoloads avy avy-autoloads siege-mode-autoloads
paredit-autoloads puni-autoloads expand-region-autoloads
filladapt-autoloads compose quail scroll-other-window
org-pdftools-autoloads org-noter-autoloads math-delimiters-autoloads
doct-autoloads ob-async-autoloads async-autoloads
emacs-ob-racket-autoloads valign-autoloads org-starless-autoloads
cdlatex-autoloads auctex-autoloads tex-site easy-mmode pdf-occur
ibuf-ext ibuffer ibuffer-loaddefs tablist advice tablist-filter
semantic/wisent/comp semantic/wisent semantic/wisent/wisent
semantic/util-modes semantic/util semantic semantic/tag semantic/lex
semantic/fw mode-local find-func cedet pdf-isearch let-alist pdf-misc
imenu pdf-tools package browse-url url url-proxy url-privacy url-expand
url-methods url-history url-cookie url-domsuf url-util mailcap
url-handlers url-parse auth-source eieio eieio-core eieio-loaddefs json
map url-vars compile comint ansi-color ring cus-edit wid-edit pdf-view
password-cache jka-compr pdf-cache pdf-info tq pdf-util pdf-macs
image-mode dired-x dired dired-loaddefs exif pdf-tools-autoloads
let-alist-autoloads tablist-autoloads derived mb-depth cus-load repeat
visual-fill-autoloads olivetti-autoloads hl-todo-autoloads time
format-spec battery dbus filenotify xml disp-table lacarte-autoloads
shell-command-plus-autoloads icalendar diary-lib diary-loaddefs cal-menu
calendar cal-loaddefs filecache flymake-grammarly-autoloads
grammarly-autoloads websocket-autoloads finder-inf request-autoloads
s-autoloads chemtable-autoloads comp comp-cstr warnings rx autoload
radix-tree lisp-mnt saveplace-pdf-view saveplace bookmark
text-property-search pp saveplace-pdf-view-autoloads pcase
straight-autoloads info cl-seq cl-extra help-mode straight cl-macs
cl-loaddefs cl-lib vz-nh-theme seq gv subr-x byte-opt bytecomp
byte-compile cconv iso-transl tooltip 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 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 keymap
hashtable-print-readable backquote threads dbusbind inotify
dynamic-setting system-font-setting font-render-setting cairo x-toolkit
x multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 1396059 197130)
 (symbols 48 51447 4)
 (strings 32 326304 31436)
 (string-bytes 1 73415709)
 (vectors 16 135734)
 (vector-slots 8 3276991 368443)
 (floats 8 9251 1289)
 (intervals 56 69814 2502)
 (buffers 992 63))

This bug report was last modified 253 days ago.

Previous Next


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