* bug#53924: 26.1; fontification sometimes fails for some characters despite available glyphs @ 2022-02-10 19:02 Greg A. Woods 2022-02-10 20:21 ` Eli Zaretskii [not found] ` <handler.53924.B.164452023325832.ack@debbugs.gnu.org> 0 siblings, 2 replies; 15+ messages in thread From: Greg A. Woods @ 2022-02-10 19:02 UTC (permalink / raw) To: 53924 [-- Attachment #1: Type: text/plain, Size: 54558 bytes --] Emacs fails to display all available glyphs for some fonts, and in some cases any available glyphs for some fonts. Whether this is Emacs' fault or some bug in the fonts themselves, I am as yet unsure. I also have a package called `unicode-fonts' installed (from MELPA), and it may somehow be involved, though I hope not, since it claims to avoid remapping the "Basic Latin" Unicode block (and others, including related "Latin*" blocks. For example the following works fine, e.g. when evaluated in the *scratch* buffer, i.e. it shows the sample text correctly rendered with glyphs from the desired font (visually obvious, but also as confirmed by `describe-char'): (insert (propertize "The quick brown fox\n" 'font-lock-face '(:family "valencia" :weight medium :slant r))) However changing the font family name as follows produces text in the default frame font (visually obvious, but also as confirmed by `describe-char'): (insert (propertize "The quick brown fox\n" 'font-lock-face '(:family "unifrakturmaguntia" :weight medium :slant r))) Interestingly `describe-char' claims in both cases that the texts have properties including the `font-lock-face' property with the correct font family named, as well as the `fontified' property with a value of t. Even more interestingly, expanding the sample text to include all iso8859-1 characters shows the correct glyphs for all but the ASCII characters! (visually obvious, but also as confirmed by `describe-char') Both fonts are confirmed to be correctly installed and available to the X11 server with both xfontsel and xlsfonts. The first font, "Valencia" is a TTF font installed from the UrbanRenewal fonts: https://www.kreativekorp.com/software/fonts/urbanrenewal.shtml $ file /opt/pkg/share/fonts/X11/TTF/Valencia.ttf /opt/pkg/share/fonts/X11/TTF/Valencia.ttf: TrueType Font data, 13 tables, 1st "FFTM", 14 names, Macintosh The second font, "UnifrakturMaguntia" is installed from: http://unifraktur.sourceforge.net/maguntia.html $ file /opt/pkg/share/fonts/X11/TTF/UnifrakturMaguntia.ttf /opt/pkg/share/fonts/X11/TTF/UnifrakturMaguntia.ttf: TrueType Font data, 18 tables, 1st "FFTM", 20 names, Macintosh, Copyright (c) 2010-2016 j. 'mach' wust, Gerrit Ansmann, Georg Duffner with Reserved Font Name Un However these are but two examples of several where either the ASCII subset, or all, characters from the font, are not rendered by Emacs. I use the following code to show me sample text in all available font families: (defun show-all-font-families (&optional sample-text) "Show SAMPLE-TEXT (by default `list-faces-sample-text') in 'roman', 'bold', 'italic', and 'bold italic' for each font family known to `font-family-list'. Note you can seem some strange results for fonts that don't have each of the requested weight and slant forms. Sometimes proportional glyphs will even be substituted for mono-spaced glyphs! Sometimes a glyph from a different font (the default font?) will be substituted even when the requested font is available with all the requested attributes, e.g. 'office code pro'. (Perhaps because it is _only_ avaliable with the requested attributes, but no others?) Also some proportional fonts will show up despite only mono-spaced fonts being selected. Perhaps spacing is ignored when requesting a font? Note even `x-list-fonts' warns that: Fonts Emacs can't use may or may not be excluded... N.B. WARNING: This code may try to display fonts that cannot be opened and as a result will crash Emacs! Worse yet it can get stuck rendering fonts and if killed cause the X11 server to go into a CPU-bound loop that may take hours to resolve! Kill it sooner than later! See the exclusion of the 'droid' fonts. (Derived from an example on the EmacsWiki.)" (interactive (and current-prefix-arg (list (read-string "Sample text:" ;; this default text is just ASCII ;; xxx should it be iso8859-1, but how to do that? "ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789 abcdefghijklmnopqrstuvwxyz `~!@#$%^&*()_+-={}|[]\\:\"\;'<>?,./")))) (let ((str (if sample-text sample-text list-faces-sample-text)) (font-families (cl-remove-duplicates (sort (font-family-list) (lambda(x y) (string> (upcase x) (upcase y)))) :test 'cl-equalp))) (with-help-window "*Font-Families*" (with-current-buffer standard-output (dolist (ff font-families) (let* ((fs (font-spec :family ff ;; xxx :spacing is (sometimes!) ignored! :weight 'medium :slant 'r ;:spacing 'm :registry 'iso10646-1)) (xlfd (font-xlfd-name fs))) ;; XXX the "droid*" fonts are broken??? (if (and (not (string-match "droid" ff)) (not (string-match "italic" ff)) ; xxx rarely in all other styles (not (string-match "bold" ff)) ; xxx rarely in all other styles (not (string-match ".pcf" ff)) ; xxx usually bitmap cursors (find-font fs) (font-info xlfd) (if (eq window-system 'x) (x-list-fonts xlfd) ; xxx hmmm... t)) ;; xxx XXX N.B.: without escaping the semicolons emacs can't ;; parse these expressions backwards!!! (insert "\; " ff ":" xlfd "\n\;\n" "\;\t" ff " (plain):\n\;\n" (propertize str 'font-lock-face `(:font ,fs :weight medium)) "\n\;\n\;\t" ff " [bold]:\n\;\n" (propertize str 'font-lock-face `(:family ,ff :weight bold)) "\n\;\n\;\t " ff " [italic]:\n\;\n" (propertize str 'font-lock-face `(:family ,ff :weight medium :slant italic)) "\n\;\n\;\t " ff " [bold italic]:\n\;\n" (propertize str 'font-lock-face `(:family ,ff :weight bold :slant italic)) "\n\;\n\f\n"))) (goto-char (point-min)) (if (fboundp 'form-feed-mode) (form-feed-mode nil))))))) (setq list-faces-sample-text ;; The first two lines are chars that must all be easily distinguisable as ;; unique for programming (except maybe the last two, the first of which ;; is the SOFT HYPHEN, which when displayed should probably look just like ;; the HYPHEN-MINUS that follows it). The sixth line is made up of the ;; ASCII punctuation characters gathered in value-order. The ;; seventh-ninth lines are value-order iso8859-1 characters 0x80-0xFF. "~`´¨'\"1lIi|¦!¡/DØ0Oo{[(<«»>)]},.;:?¿ ©®aª2²3³8BuµpP¶#¤£$¢¥°.·,¸±+=¬~_-- ABCDEFGHIJKLMNOPQRSTUVWXYZ /0123456789 abcdefghijklmnopqrstuvwxyz £©µÀÆÖÞßéöÿ !\"#$%&'()*+,-./:;<->?[\\]^_`{|}~ ¡¢£¤¥¦§¨©ª«¬-®¯°±²³´µ¶·¸¹º»¼½¾¿ ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß àáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ £ , , ") In GNU Emacs 26.1 (build 1, x86_64--netbsd, GTK+ Version 2.24.32) of 2021-11-10 built on b2 Windowing system distributor 'The X.Org Foundation', version 11.0.12011000 Recent messages: Mark set [3 times] Mark set [2 times] Use +,-,0 for further adjustment [2 times] [2 times] delete-window: Attempt to delete minibuffer or sole ordinary window Use +,-,0 for further adjustment Making completion list... [4 times] Configured using: 'configure --srcdir=/var/package-obj/root/editors/emacs26/work/emacs-26.1 --localstatedir=/var --disable-autodepend --without-dbus --x-includes=/usr/X11R7/include --x-libraries=/usr/X11R7/lib --without-gconf --without-imagemagick --without-xaw3d --with-x-toolkit=gtk2 --enable-static --enable-shared --disable-dependency-tracking --prefix=/usr/pkg --build=x86_64--netbsd --host=x86_64--netbsd --sysconfdir=/etc --localstatedir=/var --infodir=/usr/pkg/share/info --mandir=/usr/pkg/share/man 'CFLAGS=-O2 -g -D_FORTIFY_SOURCE=2 -pipe -I/usr/pkg/include -I/usr/include -I/usr/X11R7/include -I/usr/X11R7/include/libdrm -I/usr/X11R7/include/freetype2 -I/usr/pkg/include/glib/glib-2.0 -I/usr/pkg/include/glib/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include' 'CPPFLAGS=-DTERMINFO -I/usr/pkg/include -I/usr/include -I/usr/X11R7/include -I/usr/X11R7/include/libdrm -I/usr/X11R7/include/freetype2 -I/usr/pkg/include/glib/glib-2.0 -I/usr/pkg/include/glib/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include' 'LDFLAGS=-L/usr/pkg/lib -L/usr/lib -Wl,-R/usr/lib -Wl,-R/usr/pkg/lib -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib'' Configured features: XPM JPEG TIFF GIF PNG RSVG SOUND GSETTINGS NOTIFY ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK2 X11 THREADS Important settings: value of $LC_COLLATE: C value of $LC_CTYPE: en_US.UTF-8 value of $LC_NUMERIC: en_CA.UTF-8 value of $LC_TIME: C locale-coding-system: utf-8-unix Major mode: Help Minor modes in effect: form-feed-mode: t auto-image-file-mode: t timeclock-mode-line-display: t normal-erase-is-backspace-mode: t show-paren-mode: t diff-auto-refine-mode: t global-git-commit-mode: t magit-auto-revert-mode: t shell-dirtrack-mode: t override-global-mode: t display-time-mode: t tooltip-mode: t electric-indent-mode: t mouse-wheel-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 buffer-read-only: t column-number-mode: t line-number-mode: t transient-mark-mode: t Load-path shadows: /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/install hides /usr/local/share/emacs/site-lisp/apel/install /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/filename hides /usr/local/share/emacs/site-lisp/apel/filename /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/path-util hides /usr/local/share/emacs/site-lisp/apel/path-util /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/calist hides /usr/local/share/emacs/site-lisp/apel/calist /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/alist hides /usr/local/share/emacs/site-lisp/apel/alist /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/path-util hides /usr/local/share/emacs/site-lisp/apel-OLD/path-util /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/install hides /usr/local/share/emacs/site-lisp/apel-OLD/install /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/filename hides /usr/local/share/emacs/site-lisp/apel-OLD/filename /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/calist hides /usr/local/share/emacs/site-lisp/apel-OLD/calist /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/alist hides /usr/local/share/emacs/site-lisp/apel-OLD/alist /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/inv-23 hides /usr/local/share/emacs/site-lisp/emu/inv-23 /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/static hides /usr/local/share/emacs/site-lisp/emu/static /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/richtext hides /usr/local/share/emacs/site-lisp/emu/richtext /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/pym hides /usr/local/share/emacs/site-lisp/emu/pym /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/product hides /usr/local/share/emacs/site-lisp/emu/product /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/poem hides /usr/local/share/emacs/site-lisp/emu/poem /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/poem-e20_3 hides /usr/local/share/emacs/site-lisp/emu/poem-e20_3 /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/poem-e20 hides /usr/local/share/emacs/site-lisp/emu/poem-e20 /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/poe hides /usr/local/share/emacs/site-lisp/emu/poe /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/pcustom hides /usr/local/share/emacs/site-lisp/emu/pcustom /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/pces hides /usr/local/share/emacs/site-lisp/emu/pces /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/pces-e20 hides /usr/local/share/emacs/site-lisp/emu/pces-e20 /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/pces-20 hides /usr/local/share/emacs/site-lisp/emu/pces-20 /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/pccl hides /usr/local/share/emacs/site-lisp/emu/pccl /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/pccl-20 hides /usr/local/share/emacs/site-lisp/emu/pccl-20 /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/mule-caesar hides /usr/local/share/emacs/site-lisp/emu/mule-caesar /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/mcs-e20 hides /usr/local/share/emacs/site-lisp/emu/mcs-e20 /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/mcs-20 hides /usr/local/share/emacs/site-lisp/emu/mcs-20 /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/mcharset hides /usr/local/share/emacs/site-lisp/emu/mcharset /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/invisible hides /usr/local/share/emacs/site-lisp/emu/invisible /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/emu hides /usr/local/share/emacs/site-lisp/emu/emu /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/broken hides /usr/local/share/emacs/site-lisp/emu/broken /home/more/woods/.emacs.d/packages-26.1/apel-20201106.2221/apel-ver hides /usr/local/share/emacs/site-lisp/emu/apel-ver /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/qmtp hides /usr/local/share/emacs/site-lisp/flim/qmtp /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/smtp hides /usr/local/share/emacs/site-lisp/flim/smtp /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/sasl-scram hides /usr/local/share/emacs/site-lisp/flim/sasl-scram /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/sasl hides /usr/local/share/emacs/site-lisp/flim/sasl /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mime-conf hides /usr/local/share/emacs/site-lisp/flim/mime-conf /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mmexternal hides /usr/local/share/emacs/site-lisp/flim/mmexternal /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mmcooked hides /usr/local/share/emacs/site-lisp/flim/mmcooked /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mmbuffer hides /usr/local/share/emacs/site-lisp/flim/mmbuffer /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mmgeneric hides /usr/local/share/emacs/site-lisp/flim/mmgeneric /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mime-parse hides /usr/local/share/emacs/site-lisp/flim/mime-parse /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mime hides /usr/local/share/emacs/site-lisp/flim/mime /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/eword-encode hides /usr/local/share/emacs/site-lisp/flim/eword-encode /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/eword-decode hides /usr/local/share/emacs/site-lisp/flim/eword-decode /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mel-g hides /usr/local/share/emacs/site-lisp/flim/mel-g /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mel-u hides /usr/local/share/emacs/site-lisp/flim/mel-u /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mel-q hides /usr/local/share/emacs/site-lisp/flim/mel-q /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mel hides /usr/local/share/emacs/site-lisp/flim/mel /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mime-def hides /usr/local/share/emacs/site-lisp/flim/mime-def /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/lunit hides /usr/local/share/emacs/site-lisp/flim/lunit /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/luna hides /usr/local/share/emacs/site-lisp/flim/luna /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/std11 hides /usr/local/share/emacs/site-lisp/flim/std11 /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mel-q-ccl hides /usr/local/share/emacs/site-lisp/flim/mel-q-ccl /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/hmac-sha1 hides /usr/local/share/emacs/site-lisp/flim/hmac-sha1 /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/sha1 hides /usr/local/share/emacs/site-lisp/flim/sha1 /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/md5 hides /usr/local/share/emacs/site-lisp/flim/md5 /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/std11 hides /usr/local/share/emacs/site-lisp/flim-OLD/std11 /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/smtp hides /usr/local/share/emacs/site-lisp/flim-OLD/smtp /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/sha1 hides /usr/local/share/emacs/site-lisp/flim-OLD/sha1 /usr/local/share/emacs/site-lisp/flim/sha1-el hides /usr/local/share/emacs/site-lisp/flim-OLD/sha1-el /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/sasl hides /usr/local/share/emacs/site-lisp/flim-OLD/sasl /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/sasl-scram hides /usr/local/share/emacs/site-lisp/flim-OLD/sasl-scram /usr/local/share/emacs/site-lisp/flim/sasl-ntlm hides /usr/local/share/emacs/site-lisp/flim-OLD/sasl-ntlm /usr/local/share/emacs/site-lisp/flim/sasl-digest hides /usr/local/share/emacs/site-lisp/flim-OLD/sasl-digest /usr/local/share/emacs/site-lisp/flim/sasl-cram hides /usr/local/share/emacs/site-lisp/flim-OLD/sasl-cram /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/qmtp hides /usr/local/share/emacs/site-lisp/flim-OLD/qmtp /usr/local/share/emacs/site-lisp/flim/ntlm hides /usr/local/share/emacs/site-lisp/flim-OLD/ntlm /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mmgeneric hides /usr/local/share/emacs/site-lisp/flim-OLD/mmgeneric /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mmexternal hides /usr/local/share/emacs/site-lisp/flim-OLD/mmexternal /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mmbuffer hides /usr/local/share/emacs/site-lisp/flim-OLD/mmbuffer /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mime hides /usr/local/share/emacs/site-lisp/flim-OLD/mime /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mime-parse hides /usr/local/share/emacs/site-lisp/flim-OLD/mime-parse /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mime-def hides /usr/local/share/emacs/site-lisp/flim-OLD/mime-def /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mime-conf hides /usr/local/share/emacs/site-lisp/flim-OLD/mime-conf /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mel hides /usr/local/share/emacs/site-lisp/flim-OLD/mel /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mel-u hides /usr/local/share/emacs/site-lisp/flim-OLD/mel-u /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mel-q hides /usr/local/share/emacs/site-lisp/flim-OLD/mel-q /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mel-q-ccl hides /usr/local/share/emacs/site-lisp/flim-OLD/mel-q-ccl /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mel-g hides /usr/local/share/emacs/site-lisp/flim-OLD/mel-g /usr/local/share/emacs/site-lisp/flim/mel-b-el hides /usr/local/share/emacs/site-lisp/flim-OLD/mel-b-el /usr/local/share/emacs/site-lisp/flim/mel-b-ccl hides /usr/local/share/emacs/site-lisp/flim-OLD/mel-b-ccl /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mmcooked hides /usr/local/share/emacs/site-lisp/flim-OLD/mmcooked /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/md5 hides /usr/local/share/emacs/site-lisp/flim-OLD/md5 /usr/local/share/emacs/site-lisp/flim/md4 hides /usr/local/share/emacs/site-lisp/flim-OLD/md4 /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/lunit hides /usr/local/share/emacs/site-lisp/flim-OLD/lunit /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/luna hides /usr/local/share/emacs/site-lisp/flim-OLD/luna /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/hmac-sha1 hides /usr/local/share/emacs/site-lisp/flim-OLD/hmac-sha1 /usr/local/share/emacs/site-lisp/flim/hmac-md5 hides /usr/local/share/emacs/site-lisp/flim-OLD/hmac-md5 /usr/local/share/emacs/site-lisp/flim/hmac-def hides /usr/local/share/emacs/site-lisp/flim-OLD/hmac-def /usr/local/share/emacs/site-lisp/flim/hex-util hides /usr/local/share/emacs/site-lisp/flim-OLD/hex-util /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/eword-encode hides /usr/local/share/emacs/site-lisp/flim-OLD/eword-encode /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/eword-decode hides /usr/local/share/emacs/site-lisp/flim-OLD/eword-decode /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/mime-signature hides /usr/local/share/emacs/site-lisp/semi/mime-signature /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/mime-tnef hides /usr/local/share/emacs/site-lisp/semi/mime-tnef /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/mime-setup hides /usr/local/share/emacs/site-lisp/semi/mime-setup /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/mime-shr hides /usr/local/share/emacs/site-lisp/semi/mime-shr /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/mime-vcard hides /usr/local/share/emacs/site-lisp/semi/mime-vcard /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/mime-w3 hides /usr/local/share/emacs/site-lisp/semi/mime-w3 /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/mime-image hides /usr/local/share/emacs/site-lisp/semi/mime-image /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/mail-mime-setup hides /usr/local/share/emacs/site-lisp/semi/mail-mime-setup /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/semi-setup hides /usr/local/share/emacs/site-lisp/semi/semi-setup /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/mime-edit hides /usr/local/share/emacs/site-lisp/semi/mime-edit /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/mime-partial hides /usr/local/share/emacs/site-lisp/semi/mime-partial /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/mime-play hides /usr/local/share/emacs/site-lisp/semi/mime-play /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/mime-view hides /usr/local/share/emacs/site-lisp/semi/mime-view /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/semi-def hides /usr/local/share/emacs/site-lisp/semi/semi-def /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/mime-pgp hides /usr/local/share/emacs/site-lisp/semi/mime-pgp /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/signature hides /usr/local/share/emacs/site-lisp/semi/signature /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/signature hides /usr/local/share/emacs/site-lisp/semi-OLD/signature /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/semi-setup hides /usr/local/share/emacs/site-lisp/semi-OLD/semi-setup /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/semi-def hides /usr/local/share/emacs/site-lisp/semi-OLD/semi-def /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/mime-w3 hides /usr/local/share/emacs/site-lisp/semi-OLD/mime-w3 /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/mime-view hides /usr/local/share/emacs/site-lisp/semi-OLD/mime-view /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/mime-setup hides /usr/local/share/emacs/site-lisp/semi-OLD/mime-setup /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/mime-play hides /usr/local/share/emacs/site-lisp/semi-OLD/mime-play /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/mime-pgp hides /usr/local/share/emacs/site-lisp/semi-OLD/mime-pgp /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/mime-partial hides /usr/local/share/emacs/site-lisp/semi-OLD/mime-partial /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/mime-image hides /usr/local/share/emacs/site-lisp/semi-OLD/mime-image /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/mime-edit hides /usr/local/share/emacs/site-lisp/semi-OLD/mime-edit /home/more/woods/.emacs.d/packages-26.1/semi-20210613.948/mail-mime-setup hides /usr/local/share/emacs/site-lisp/semi-OLD/mail-mime-setup /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo hides /usr/local/share/emacs/site-lisp/wl/elmo /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-mime hides /usr/local/share/emacs/site-lisp/wl/wl-mime /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-e21 hides /usr/local/share/emacs/site-lisp/wl/wl-e21 /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-qs hides /usr/local/share/emacs/site-lisp/wl/wl-qs /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-batch hides /usr/local/share/emacs/site-lisp/wl/wl-batch /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-spam hides /usr/local/share/emacs/site-lisp/wl/wl-spam /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-acap hides /usr/local/share/emacs/site-lisp/wl/wl-acap /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-score hides /usr/local/share/emacs/site-lisp/wl/wl-score /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-template hides /usr/local/share/emacs/site-lisp/wl/wl-template /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-expire hides /usr/local/share/emacs/site-lisp/wl/wl-expire /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-fldmgr hides /usr/local/share/emacs/site-lisp/wl/wl-fldmgr /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-thread hides /usr/local/share/emacs/site-lisp/wl/wl-thread /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-refile hides /usr/local/share/emacs/site-lisp/wl/wl-refile /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-demo hides /usr/local/share/emacs/site-lisp/wl/wl-demo /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-highlight hides /usr/local/share/emacs/site-lisp/wl/wl-highlight /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-addrmgr hides /usr/local/share/emacs/site-lisp/wl/wl-addrmgr /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-address hides /usr/local/share/emacs/site-lisp/wl/wl-address /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-version hides /usr/local/share/emacs/site-lisp/wl/wl-version /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-util hides /usr/local/share/emacs/site-lisp/wl/wl-util /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-draft hides /usr/local/share/emacs/site-lisp/wl/wl-draft /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-vars hides /usr/local/share/emacs/site-lisp/wl/wl-vars /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-message hides /usr/local/share/emacs/site-lisp/wl/wl-message /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-action hides /usr/local/share/emacs/site-lisp/wl/wl-action /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-summary hides /usr/local/share/emacs/site-lisp/wl/wl-summary /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-folder hides /usr/local/share/emacs/site-lisp/wl/wl-folder /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl hides /usr/local/share/emacs/site-lisp/wl/wl /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-mime hides /usr/local/share/emacs/site-lisp/wl/elmo-mime /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/modb-standard hides /usr/local/share/emacs/site-lisp/wl/modb-standard /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/modb-legacy hides /usr/local/share/emacs/site-lisp/wl/modb-legacy /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/modb-entity hides /usr/local/share/emacs/site-lisp/wl/modb-entity /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/modb hides /usr/local/share/emacs/site-lisp/wl/modb /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elsp-spamoracle hides /usr/local/share/emacs/site-lisp/wl/elsp-spamoracle /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elsp-bsfilter hides /usr/local/share/emacs/site-lisp/wl/elsp-bsfilter /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elsp-sa hides /usr/local/share/emacs/site-lisp/wl/elsp-sa /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elsp-bogofilter hides /usr/local/share/emacs/site-lisp/wl/elsp-bogofilter /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-spam hides /usr/local/share/emacs/site-lisp/wl/elmo-spam /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-split hides /usr/local/share/emacs/site-lisp/wl/elmo-split /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-file hides /usr/local/share/emacs/site-lisp/wl/elmo-file /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-search hides /usr/local/share/emacs/site-lisp/wl/elmo-search /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-dop hides /usr/local/share/emacs/site-lisp/wl/elmo-dop /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-null hides /usr/local/share/emacs/site-lisp/wl/elmo-null /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-sendlog hides /usr/local/share/emacs/site-lisp/wl/elmo-sendlog /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-flag hides /usr/local/share/emacs/site-lisp/wl/elmo-flag /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-internal hides /usr/local/share/emacs/site-lisp/wl/elmo-internal /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-cache hides /usr/local/share/emacs/site-lisp/wl/elmo-cache /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-pipe hides /usr/local/share/emacs/site-lisp/wl/elmo-pipe /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-archive hides /usr/local/share/emacs/site-lisp/wl/elmo-archive /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-filter hides /usr/local/share/emacs/site-lisp/wl/elmo-filter /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-access hides /usr/local/share/emacs/site-lisp/wl/elmo-access /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-multi hides /usr/local/share/emacs/site-lisp/wl/elmo-multi /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-maildir hides /usr/local/share/emacs/site-lisp/wl/elmo-maildir /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-map hides /usr/local/share/emacs/site-lisp/wl/elmo-map /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-localnews hides /usr/local/share/emacs/site-lisp/wl/elmo-localnews /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-localdir hides /usr/local/share/emacs/site-lisp/wl/elmo-localdir /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-nntp hides /usr/local/share/emacs/site-lisp/wl/elmo-nntp /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-pop3 hides /usr/local/share/emacs/site-lisp/wl/elmo-pop3 /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-imap4 hides /usr/local/share/emacs/site-lisp/wl/elmo-imap4 /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-net hides /usr/local/share/emacs/site-lisp/wl/elmo-net /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-passwd hides /usr/local/share/emacs/site-lisp/wl/elmo-passwd /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-msgdb hides /usr/local/share/emacs/site-lisp/wl/elmo-msgdb /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-vars hides /usr/local/share/emacs/site-lisp/wl/elmo-vars /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-version hides /usr/local/share/emacs/site-lisp/wl/elmo-version /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-util hides /usr/local/share/emacs/site-lisp/wl/elmo-util /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-date hides /usr/local/share/emacs/site-lisp/wl/elmo-date /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-signal hides /usr/local/share/emacs/site-lisp/wl/elmo-signal /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/mmimap hides /usr/local/share/emacs/site-lisp/wl/mmimap /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/slp hides /usr/local/share/emacs/site-lisp/wl/slp /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/acap hides /usr/local/share/emacs/site-lisp/wl/acap /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/pldap hides /usr/local/share/emacs/site-lisp/wl/pldap /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-rss hides /usr/local/share/emacs/site-lisp/wl/elmo-rss /usr/local/share/emacs/site-lisp/wl/wl-complete hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-complete /usr/local/share/emacs/site-lisp/wl/wl-addrbook hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-addrbook /usr/local/share/emacs/site-lisp/wl/wl-mailto hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-mailto /usr/local/share/emacs/site-lisp/wl/im-wl hides /usr/local/share/emacs/site-lisp/wl-OLD/im-wl /usr/local/share/emacs/site-lisp/wl/rfc2368 hides /usr/local/share/emacs/site-lisp/wl-OLD/rfc2368 /usr/local/share/emacs/site-lisp/wl/ssl hides /usr/local/share/emacs/site-lisp/wl-OLD/ssl /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-version hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-version /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-vars hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-vars /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-util hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-util /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-thread hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-thread /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-template hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-template /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-summary hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-summary /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-spam hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-spam /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-score hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-score /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-refile hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-refile /usr/local/share/emacs/site-lisp/wl/wl-news hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-news /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-mime hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-mime /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-message hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-message /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-highlight hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-highlight /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-folder hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-folder /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-fldmgr hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-fldmgr /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-expire hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-expire /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-e21 hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-e21 /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-draft hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-draft /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-demo hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-demo /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-batch hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-batch /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-addrmgr hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-addrmgr /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-address hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-address /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-action hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-action /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl-acap hides /usr/local/share/emacs/site-lisp/wl-OLD/wl-acap /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/wl hides /usr/local/share/emacs/site-lisp/wl-OLD/wl /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/slp hides /usr/local/share/emacs/site-lisp/wl-OLD/slp /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/pldap hides /usr/local/share/emacs/site-lisp/wl-OLD/pldap /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/modb hides /usr/local/share/emacs/site-lisp/wl-OLD/modb /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/modb-standard hides /usr/local/share/emacs/site-lisp/wl-OLD/modb-standard /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/modb-legacy hides /usr/local/share/emacs/site-lisp/wl-OLD/modb-legacy /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/modb-entity hides /usr/local/share/emacs/site-lisp/wl-OLD/modb-entity /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/mmimap hides /usr/local/share/emacs/site-lisp/wl-OLD/mmimap /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elsp-spamoracle hides /usr/local/share/emacs/site-lisp/wl-OLD/elsp-spamoracle /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elsp-sa hides /usr/local/share/emacs/site-lisp/wl-OLD/elsp-sa /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elsp-bsfilter hides /usr/local/share/emacs/site-lisp/wl-OLD/elsp-bsfilter /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elsp-bogofilter hides /usr/local/share/emacs/site-lisp/wl-OLD/elsp-bogofilter /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-version hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-version /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-vars hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-vars /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-util hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-util /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-split hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-split /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-spam hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-spam /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-signal hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-signal /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-shimbun hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-shimbun /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-sendlog hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-sendlog /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-search hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-search /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-pop3 hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-pop3 /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-pipe hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-pipe /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-null hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-null /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-nntp hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-nntp /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-net hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-net /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-multi hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-multi /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-msgdb hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-msgdb /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-mime hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-mime /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-map hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-map /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-maildir hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-maildir /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-localnews hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-localnews /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-localdir hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-localdir /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-internal hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-internal /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-imap4 hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-imap4 /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-flag hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-flag /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-filter hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-filter /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-file hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-file /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-dop hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-dop /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-date hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-date /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-cache hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-cache /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-archive hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-archive /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/elmo-access hides /usr/local/share/emacs/site-lisp/wl-OLD/elmo-access /home/more/woods/.emacs.d/packages-26.1/wanderlust-20220103.800/acap hides /usr/local/share/emacs/site-lisp/wl-OLD/acap /usr/local/share/emacs/site-lisp/color-theme-el/color-theme hides /usr/local/share/emacs/site-lisp/color-theme-el/themes/color-theme /usr/local/share/emacs/site-lisp/color-theme-el/color-theme-library hides /usr/local/share/emacs/site-lisp/color-theme-el/themes/color-theme-library /usr/local/share/emacs/site-lisp/color-theme-el/color-theme-example hides /usr/local/share/emacs/site-lisp/color-theme-el/themes/color-theme-example /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/std11 hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/std11 /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/smtp hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/smtp /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/sha1 hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/sha1 /usr/local/share/emacs/site-lisp/flim/sha1-el hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/sha1-el /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/sasl hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/sasl /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/sasl-scram hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/sasl-scram /usr/local/share/emacs/site-lisp/flim/sasl-ntlm hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/sasl-ntlm /usr/local/share/emacs/site-lisp/flim/sasl-digest hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/sasl-digest /usr/local/share/emacs/site-lisp/flim/sasl-cram hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/sasl-cram /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/qmtp hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/qmtp /usr/local/share/emacs/site-lisp/flim/ntlm hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/ntlm /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mmgeneric hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/mmgeneric /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mmexternal hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/mmexternal /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mmcooked hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/mmcooked /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mmbuffer hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/mmbuffer /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mime hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/mime /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mime-parse hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/mime-parse /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mime-def hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/mime-def /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mime-conf hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/mime-conf /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mel hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/mel /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mel-u hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/mel-u /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mel-q hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/mel-q /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mel-q-ccl hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/mel-q-ccl /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/mel-g hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/mel-g /usr/local/share/emacs/site-lisp/flim/mel-b-el hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/mel-b-el /usr/local/share/emacs/site-lisp/flim/mel-b-ccl hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/mel-b-ccl /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/md5 hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/md5 /usr/local/share/emacs/site-lisp/flim/md4 hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/md4 /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/lunit hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/lunit /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/luna hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/luna /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/hmac-sha1 hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/hmac-sha1 /usr/local/share/emacs/site-lisp/flim/hmac-md5 hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/hmac-md5 /usr/local/share/emacs/site-lisp/flim/hmac-def hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/hmac-def /usr/local/share/emacs/site-lisp/flim/hex-util hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/hex-util /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/eword-encode hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/eword-encode /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/eword-decode hides /usr/local/share/emacs/site-lisp/flim-OLD/flim/eword-decode /home/more/woods/.emacs.d/packages-26.1/xcscope-20210719.828/xcscope hides /usr/pkg/share/emacs/site-lisp/xcscope /usr/local/share/emacs/site-lisp/flim/md4 hides /usr/pkg/share/emacs/26.1/lisp/md4 /usr/local/share/emacs/site-lisp/flim/hex-util hides /usr/pkg/share/emacs/26.1/lisp/hex-util /home/more/woods/.emacs.d/packages-26.1/flim-20210529.1253/sasl hides /usr/pkg/share/emacs/26.1/lisp/net/sasl /usr/local/share/emacs/site-lisp/flim/sasl-ntlm hides /usr/pkg/share/emacs/26.1/lisp/net/sasl-ntlm /usr/local/share/emacs/site-lisp/flim/sasl-digest hides /usr/pkg/share/emacs/26.1/lisp/net/sasl-digest /usr/local/share/emacs/site-lisp/flim/sasl-cram hides /usr/pkg/share/emacs/26.1/lisp/net/sasl-cram /usr/local/share/emacs/site-lisp/flim/ntlm hides /usr/pkg/share/emacs/26.1/lisp/net/ntlm /usr/local/share/emacs/site-lisp/flim/hmac-md5 hides /usr/pkg/share/emacs/26.1/lisp/net/hmac-md5 /usr/local/share/emacs/site-lisp/flim/hmac-def hides /usr/pkg/share/emacs/26.1/lisp/net/hmac-def /usr/local/share/emacs/site-lisp/wl/rfc2368 hides /usr/pkg/share/emacs/26.1/lisp/mail/rfc2368 /usr/local/share/emacs/site-lisp/wl-OLD/utf7 hides /usr/pkg/share/emacs/26.1/lisp/international/utf7 /usr/local/share/emacs/site-lisp/semi-OLD/smime hides /usr/pkg/share/emacs/26.1/lisp/gnus/smime /home/more/woods/.emacs.d/packages-26.1/nadvice-0.3/nadvice hides /usr/pkg/share/emacs/26.1/lisp/emacs-lisp/nadvice /home/more/woods/.emacs.d/packages-26.1/let-alist-1.0.6/let-alist hides /usr/pkg/share/emacs/26.1/lisp/emacs-lisp/let-alist /usr/local/share/emacs/site-lisp/semi-OLD/pgg hides /usr/pkg/share/emacs/26.1/lisp/obsolete/pgg /usr/local/share/emacs/site-lisp/semi-OLD/pgg-pgp5 hides /usr/pkg/share/emacs/26.1/lisp/obsolete/pgg-pgp5 /usr/local/share/emacs/site-lisp/semi-OLD/pgg-pgp hides /usr/pkg/share/emacs/26.1/lisp/obsolete/pgg-pgp /usr/local/share/emacs/site-lisp/semi-OLD/pgg-parse hides /usr/pkg/share/emacs/26.1/lisp/obsolete/pgg-parse /usr/local/share/emacs/site-lisp/semi-OLD/pgg-gpg hides /usr/pkg/share/emacs/26.1/lisp/obsolete/pgg-gpg /usr/local/share/emacs/site-lisp/semi-OLD/pgg-def hides /usr/pkg/share/emacs/26.1/lisp/obsolete/pgg-def Features: (shadow sort flyspell mail-extr emacsbug apropos mode-local eieio-opt speedbar sb-image ezimage dframe debug cl-print face-remap cus-edit cus-start cus-load pp wid-edit descr-text help-fns radix-tree misearch multi-isearch todo-mode sgml-mode dom dns python tramp-sh tramp tramp-compat tramp-loaddefs trampver ucs-normalize json go-mode find-file ffap etags s vc-filewise form-feed elec-pair image-file x-face-e21 timeclock cal-bahai holidays hol-loaddefs cal-persia cal-coptic cal-mayan cal-islam cal-hebrew cal-french cal-china cal-iso lunar cal-julian vc-fossil solar cal-dst appt diary-lib diary-loaddefs cal-menu calendar cal-loaddefs hippie-exp xref project warnings vc-dir vc-sccs vc-rcs vc vc-dispatcher cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs pcvs vc-cvs pcvs-parse pcvs-info pcvs-defs ewoc ispell view find-func browse-url paren persistent-soft list-utils pcache eieio-base font-utils unicode-fonts ucs-utils foldout sh-script smie executable forge-list forge-commands forge-semi forge-bitbucket buck forge-gogs gogs forge-gitea gtea forge-gitlab glab forge-github ghub-graphql treepy map gsexp ghub let-alist forge-notify forge-revnote forge-pullreq forge-issue forge-topic yaml parse-time bug-reference forge-post markdown-mode color thingatpt noutline outline forge-repo forge forge-core forge-db closql emacsql-sqlite advice emacsql emacsql-compiler url-http tls gnutls url-auth url-gw nsm url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap magit-submodule magit-obsolete magit-popup magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log which-func imenu magit-diff smerge-mode diff-mode git-commit log-edit message sendmail rmc puny dired dired-loaddefs rfc822 mml mml-sec epa epg gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log magit-core magit-autorevert autorevert filenotify magit-margin magit-transient magit-process with-editor shell pcomplete server magit-mode transient cl-extra edmacro kmacro help-mode format-spec magit-git magit-section magit-utils crm subr-x dash grep compile comint ansi-color ring jka-compr flex-mode derived use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core finder-inf rx cl w3m-load info package easymenu epg-config url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib time time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type 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 elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame 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 charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote kqueue dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 933326 140314) (symbols 48 60779 1) (miscs 40 905 1767) (strings 32 240843 19309) (string-bytes 1 6360005) (vectors 16 98748) (vector-slots 8 2764072 111020) (floats 8 942 1081) (intervals 56 65308 1048) (buffers 992 34)) -- Greg A. Woods <gwoods@acm.org> Kelowna, BC +1 250 762-7675 RoboHack <woods@robohack.ca> Planix, Inc. <woods@planix.com> Avoncote Farms <woods@avoncote.ca> [-- Attachment #2: OpenPGP Digital Signature --] [-- Type: application/pgp-signature, Size: 195 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#53924: 26.1; fontification sometimes fails for some characters despite available glyphs 2022-02-10 19:02 bug#53924: 26.1; fontification sometimes fails for some characters despite available glyphs Greg A. Woods @ 2022-02-10 20:21 ` Eli Zaretskii 2022-02-10 23:34 ` Greg A. Woods [not found] ` <handler.53924.B.164452023325832.ack@debbugs.gnu.org> 1 sibling, 1 reply; 15+ messages in thread From: Eli Zaretskii @ 2022-02-10 20:21 UTC (permalink / raw) To: Greg A. Woods; +Cc: 53924 > Date: Thu, 10 Feb 2022 11:02:19 -0800 > From: "Greg A. Woods" <woods@robohack.ca> > > Emacs fails to display all available glyphs for some fonts, and in some > cases any available glyphs for some fonts. Thanks, but why do you consider that a problem? You are trying to use arbitrary fonts available on your system, and Emacs sometimes finds them inappropriate for its purposes, or incapable of displaying some characters. That's completely normal. Not every font is good enough for Emacs. Also, please try this in a newer Emacs. v26 is very old and no longer developed; Emacs 28 is in pretest. ^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#53924: 26.1; fontification sometimes fails for some characters despite available glyphs 2022-02-10 20:21 ` Eli Zaretskii @ 2022-02-10 23:34 ` Greg A. Woods 2022-02-11 7:15 ` Eli Zaretskii 0 siblings, 1 reply; 15+ messages in thread From: Greg A. Woods @ 2022-02-10 23:34 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 53924 [-- Attachment #1: Type: text/plain, Size: 2757 bytes --] At Thu, 10 Feb 2022 22:21:50 +0200, Eli Zaretskii <eliz@gnu.org> wrote: Subject: Re: bug#53924: 26.1; fontification sometimes fails for some characters despite available glyphs > > > Date: Thu, 10 Feb 2022 11:02:19 -0800 > > From: "Greg A. Woods" <woods@robohack.ca> > > > > Emacs fails to display all available glyphs for some fonts, and in some > > cases any available glyphs for some fonts. > > Thanks, but why do you consider that a problem? You are trying to use > arbitrary fonts available on your system, and Emacs sometimes finds > them inappropriate for its purposes, or incapable of displaying some > characters. That's completely normal. Not every font is good enough > for Emacs. Yes, indeed I do consider it a problem -- something is sometimes swapping glyphs that should not be doing so, and doing so inconsistently for some reason. I don't consider all the fonts available to be "good enough for Emacs", quite the contrary, but I do believe Emacs should be able to show me text rendered with any and all available glyphs from these fonts upon request. If Xterm can, why can't Emacs? The exception of course is if there's something actually wrong with the font, or its encoding, or some such non-Emacs problem. I would expect such problems to show up in xfontsel though. One more clue I've noticed -- the inconsistent results only occur for proportional fonts -- not for mono-spaced fonts, and I have noticed that I have one or two fonts which appear to be mono-spaced, and which have the word "mono" in their family name, but which xfontsel and xlsfonts insists are proportional fonts. I'm no expert at font definitions and encodings -- I'm just trying to get some consistent results that at least match what I can see with xfontsel. Note I'm working only with TTF fonts, primarily on a high-res display (218dpi), and though I have the standard X11 fonts installed on the machine running Emacs, all the fonts I am seeing problems with are installed only on the X11 server machine, a desktop macOS with XQuartz running in full-screen mode. One more possibly relevant observation: I don't see this problem with Emacs built using the "nextstep" toolkit and running on native macOS. There even when the font has a strange encoding (e.g. for symbol fonts), or no ASCII glyphs at all, I see either the symbols in their place, or empty boxes. > Also, please try this in a newer Emacs. v26 is very old and no longer > developed; Emacs 28 is in pretest. As soon as I can, but for now v26 is what is available in all my production working environments. -- Greg A. Woods <gwoods@acm.org> Kelowna, BC +1 250 762-7675 RoboHack <woods@robohack.ca> Planix, Inc. <woods@planix.com> Avoncote Farms <woods@avoncote.ca> [-- Attachment #2: OpenPGP Digital Signature --] [-- Type: application/pgp-signature, Size: 195 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#53924: 26.1; fontification sometimes fails for some characters despite available glyphs 2022-02-10 23:34 ` Greg A. Woods @ 2022-02-11 7:15 ` Eli Zaretskii 2022-02-11 21:56 ` Greg A. Woods 2022-02-13 6:06 ` Greg A. Woods 0 siblings, 2 replies; 15+ messages in thread From: Eli Zaretskii @ 2022-02-11 7:15 UTC (permalink / raw) To: Greg A. Woods; +Cc: 53924 > Date: Thu, 10 Feb 2022 15:34:05 -0800 > From: "Greg A. Woods" <woods@robohack.ca> > CC: 53924@debbugs.gnu.org > > Yes, indeed I do consider it a problem -- something is sometimes > swapping glyphs that should not be doing so, and doing so inconsistently > for some reason. It might look inconsistent from your POV, but Emacs has its own ideas about this, and they are consistent as soon as one understands the code and its design ideas. > I don't consider all the fonts available to be "good enough for Emacs", > quite the contrary, but I do believe Emacs should be able to show me > text rendered with any and all available glyphs from these fonts upon > request. If Xterm can, why can't Emacs? Emacs is not xterm. Emacs doesn't examine each and every glyph of a font when it decides when to use it, because that would be prohibitively expensive on systems that have many fonts available. AFAIK, xterm uses a static arrangement of fonts, and does not by itself look for fonts suitable for a given character outside of the set of fonts specified to it externally. Well, that's not how Emacs works, not at all. So there's little surprise the results might be different for some fonts. > The exception of course is if there's something actually wrong with the > font, or its encoding, or some such non-Emacs problem. I would expect > such problems to show up in xfontsel though. How can xfontsel know which problems are relevant to Emacs use of fonts and Emacs display engine in general? > One more possibly relevant observation: I don't see this problem with > Emacs built using the "nextstep" toolkit and running on native macOS. > There even when the font has a strange encoding (e.g. for symbol fonts), > or no ASCII glyphs at all, I see either the symbols in their place, or > empty boxes. So maybe what you see is specific to that OS (NetBSD, AFAIU). FWIW, I don't see what we can do about this bug report. ^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#53924: 26.1; fontification sometimes fails for some characters despite available glyphs 2022-02-11 7:15 ` Eli Zaretskii @ 2022-02-11 21:56 ` Greg A. Woods 2022-02-13 6:06 ` Greg A. Woods 1 sibling, 0 replies; 15+ messages in thread From: Greg A. Woods @ 2022-02-11 21:56 UTC (permalink / raw) To: Eli Zaretskii; +Cc: GNU Emacs Bug reports [-- Attachment #1: Type: text/plain, Size: 3121 bytes --] At Fri, 11 Feb 2022 09:15:09 +0200, Eli Zaretskii <eliz@gnu.org> wrote: Subject: Re: bug#53924: 26.1; fontification sometimes fails for some characters despite available glyphs > > It might look inconsistent from your POV, but Emacs has its own ideas > about this, and they are consistent as soon as one understands the > code and its design ideas. The inconsistency I'm observing seems to be within Emacs itself, or perhaps in the way it uses the GTK2 toolkit (gbdfed, also using GTK2, does not have any problem, either directly on the problem fonts, or via fetching them from the X11 server). I probably shouldn't have mentioned Xterm since, as you say, it has an even more restrictive view of how to manage fonts, and specifically can't deal with proportional fonts at all. So Emacs+GTK2 can display some fonts perfectly, but not others, despite the fact the underlying system (i.e. X11) and its related tools (e.g. xfontsel, xfd, gbdfed, etc.) can display and find (xlsfonts) all those fonts with no problem. There's also nothing whatsoever in any available documentation I can find which even remotely suggests that what I expect Emacs to do will not happen for some reason. If you can point me to any such documentation, that would be excellent. If not then this is a real bug, though as I've said I'm not sure the bug is in Emacs -- it could well be some otherwise hidden defect in the fonts, their encodings, and/or how they are loaded by the X11 server. I just can't find anything whatsoever, so far, to point responsibility to anything other than Emacs, and specifically in an Emacs built with the GTK2 toolkit. Have you run the function I supply to see how it fares in your environment with your available font families? > How can xfontsel know which problems are relevant to Emacs use of > fonts and Emacs display engine in general? It doesn't of course -- but it (and the other related tools, including gbdfed) demonstrates that the font, and its encoding, and the underlying X11 display engine, are all perfectly happy to load and correctly display the glyphs for the problem fonts. What could possibly be different about a font that would lead Emacs+GTK2 to ignore some/all of the available glyphs for the ASCII characters in that font (but not ignore them in the Emacs+nextstep variant)? > So maybe what you see is specific to that OS (NetBSD, AFAIU). I would think that's literally impossible. The Emacs code is all very portable (and is indeed running on NetBSD), as is the font handling and most of the X11 server itself (which is running on macOS) -- the only thing that's unique in my specific test scenario (the macOS part) is demonstrably not a problem because it is all perfectly happy to display all available fonts in all other contexts, both in native macOS as well as in the X11 server running on it (e.g. Emacs+nextstep in native macOS, or gbdfed, and all the X11 font tools running on macOS). -- Greg A. Woods <gwoods@acm.org> Kelowna, BC +1 250 762-7675 RoboHack <woods@robohack.ca> Planix, Inc. <woods@planix.com> Avoncote Farms <woods@avoncote.ca> [-- Attachment #2: OpenPGP Digital Signature --] [-- Type: application/pgp-signature, Size: 195 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#53924: 26.1; fontification sometimes fails for some characters despite available glyphs 2022-02-11 7:15 ` Eli Zaretskii 2022-02-11 21:56 ` Greg A. Woods @ 2022-02-13 6:06 ` Greg A. Woods 2022-02-13 11:53 ` Eli Zaretskii 1 sibling, 1 reply; 15+ messages in thread From: Greg A. Woods @ 2022-02-13 6:06 UTC (permalink / raw) To: GNU Emacs Bug Reports [-- Attachment #1: Type: text/plain, Size: 9834 bytes --] New code, ancient bug, and a possibly related crash..... First the ancient typo/bug: fontset.el contains an errant definition for xlfd-regexp-spacing-subnum (with the value '8'). git-blame suggests this typo has lurked for 20 years! It should of course be '9': (defconst xlfd-regexp-spacing-subnum 9) ; fix a 20-year-old typo! Second, an update of my `show-all-font-families', now with working support to optionally show just the mono-spaced fonts, but be warned it can cause crashes: (defvar sample-text-history nil "History list for commands that read sample text.") (require 'faces) (add-to-history 'sample-text-history list-faces-sample-text) (defvar ascii-sample-text ;; this default text is just ASCII ;; xxx should it be iso8859-1, but how to do that? ;; `encode-coding-string' ? "ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789 abcdefghijklmnopqrstuvwxyz `~!@#$%^&*()_+-={}|[]\\:\"\;'<>?,./" "all the ASCII printable characters for sample text.") (defun show-all-font-families (&optional sample-text mono-only) "Show SAMPLE-TEXT (by default `list-faces-sample-text') in 'roman', 'bold', 'italic', and 'bold italic' for each font family known to `font-family-list'. If MONO-ONLY, include ':spacing m' in the `font-spec' parameters. Interactively, a negative prefix does the same. Note you can seem some strange results for fonts that don't have each of the requested weight and slant forms. Sometimes proportional glyphs will even be substituted for mono-spaced glyphs! Sometimes a glyph from a different font (the default font?) will be substituted even when the requested font is available with all the requested attributes, e.g. 'office code pro'. (Perhaps because it is _only_ avaliable with the requested attributes, but no others?) Also some proportional fonts will show up despite only mono-spaced fonts being selected. Perhaps spacing is ignored when requesting a font? Note even `x-list-fonts' warns that: Fonts Emacs can't use may or may not be excluded... N.B. WARNING: This code may try to display fonts that cannot be opened and as a result will crash Emacs! Worse yet it can get stuck rendering fonts and if killed cause the X11 server to go into a CPU-bound loop that may take hours to resolve! Kill it sooner than later! This is particularly true for Emacs-26.1 when the MONO-ONLY parameter is non-nil. See also the exclusion of the 'droid' fonts. Derived from an example on the EmacsWiki." (interactive (list ;; optional `sample-text': (if current-prefix-arg (read-string "Sample text:" ascii-sample-text 'sample-text-history)) ;; optional `mono-only': (cond ((eq current-prefix-arg '-) t) ((and (numberp current-prefix-arg) (< current-prefix-arg 0)) t) ((and (listp current-prefix-arg) (numberp (car current-prefix-arg)) (< (car current-prefix-arg) 0)) t) (t nil)))) (let ((str (if sample-text sample-text list-faces-sample-text)) (font-families (cl-remove-duplicates (sort (font-family-list) (lambda(x y) (string> (upcase x) (upcase y)))) :test 'cl-equalp))) (with-help-window "*Font Families*" (with-current-buffer standard-output (dolist (ff font-families) (let* ((fs (font-spec :family ff :weight 'medium :slant 'r ;; xxx :spacing is confusing ;; see below for additional test to confirm! (if mono-only :spacing) (if mono-only 'm) :registry 'iso10646-1)) (fl (list-fonts fs)) (fe (car fl)) ; usually the cdr is non-scalable? (xlfd (if fe (font-xlfd-name fe) (font-xlfd-name fs))) ; xxx font may not be useable (fn (if (eq window-system 'x) (condition-case nil (x-resolve-font-name xlfd) (error (message "Invalid font family: %s" ff) nil)) nil)) (xlfd-fields (if fn (x-decompose-font-name fn) ; xxx not really an X11 function nil)) ) ;; XXX the "droid*" fonts are broken??? (if (and (not (string-match "droid" ff)) (not (string-equal "nil" ff)) ; xxx never a useful font (not (string-match "italic" ff)) ; xxx rarely in all other styles (not (string-match "bold" ff)) ; xxx rarely in all other styles (not (string-match ".pcf" ff)) ; xxx usually bitmap cursors ;; ;; xxx some fonts, e.g. "inconsolata" (which xfontsel says ;; is both 'm' and 'p'), will return the "wrong" spacing in ;; the XLFD if the request has a wild-card (i.e. :spacing ;; unspecified), but then it can't be found with ;; `font-info' with the explicit ":spacing 'p". ;; ;; XXX this test is needed though as it might sometimes ;; prevent crashes in the case where this spacing confusion ;; happens. ;; (condition-case nil (if (font-info xlfd) ; xxx can this also return nil? t (message "Can't get font info for: %s" xlfd) nil) (error (message "Bad font: %s" xlfd) nil)) (if mono-only (if xlfd-fields ;; because `x-resolve-font-name' sometimes ignores ;; `:spacing' we must confirm the font matches ;; xxx `xlfd-regexp-spacing-subnum' is WRONG, for 20 years! (if (string-equal (aref xlfd-fields 9) "m") t (message "Font not actually monospaced: %s" xlfd) nil) ;; xxx try `font-get' on `fe', but that doesn't seem to ;; work properly for getting `:spacing'!?!?!?!? (if (eq window-system 'x) (message "Can't resolve X font for: %s" xlfd))) t)) ;; xxx XXX N.B.: without escaping the semicolons emacs can't ;; parse these expressions backwards!!! (insert "\; " ff ":" xlfd "\n\;\n" "\;\t" ff " (plain):\n\;\n" (propertize str 'font-lock-face `(:family ,ff :weight medium :slant r)) "\n\;\n\;\t" ff " [bold]:\n\;\n" (propertize str 'font-lock-face `(:family ,ff :weight bold :slant r)) "\n\;\n\;\t " ff " [italic]:\n\;\n" (propertize str 'font-lock-face `(:family ,ff :weight medium :slant italic)) "\n\;\n\;\t " ff " [bold italic]:\n\;\n" (propertize str 'font-lock-face `(:family ,ff :weight bold :slant italic)) "\n\;\n\f\n") (message "Not showing font-family: %s" ff))) (goto-char (point-min)) (setq case-fold-search t) (if (fboundp 'form-feed-mode) (form-feed-mode nil))))))) Finally a crash (working on reproducing it with GDB in the source tree, but my gdb is having trouble with the emacs .gdbinit): Reading symbols from /usr/pkg/bin/emacs-26.1... [New process 12954] [New process 1873] Core was generated by `emacs'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007cdaa53676aa in _lwp_kill () from /usr/lib/libc.so.12 [Current thread is 1 (process 12954)] (gdb) bt #0 0x00007cdaa53676aa in _lwp_kill () from /usr/lib/libc.so.12 #1 0x00000000004dc6ac in terminate_due_to_signal (sig=sig@entry=11, backtrace_limit=backtrace_limit@entry=40) at emacs.c:394 #2 0x00000000004f2d13 in handle_fatal_signal (sig=sig@entry=11) at sysdep.c:1769 #3 0x00000000004f2f53 in deliver_thread_signal (sig=sig@entry=11, handler=0x4f2d05 <handle_fatal_signal>) at sysdep.c:1743 #4 0x00000000004f2fa6 in deliver_fatal_thread_signal (sig=11) at sysdep.c:1781 #5 handle_sigsegv (sig=11, siginfo=<optimized out>, arg=<optimized out>) at sysdep.c:1866 #6 <signal handler called> #7 0x00000000005ad68d in fontset_find_font (fontset=fontset@entry=364, c=c@entry=180, face=face@entry=0x7cdaad2db4c0, charset_id=charset_id@entry=-1, fallback=fallback@entry=false) at fontset.c:550 #8 0x00000000005adfd3 in fontset_font (fontset=fontset@entry=364, c=c@entry=180, face=face@entry=0x7cdaad2db4c0, id=-1) at fontset.c:760 #9 0x00000000005ae365 in face_for_char (f=0x7cdaafbf2c30, face=face@entry=0x7cdaad2db4c0, c=180, pos=<optimized out>, object=<optimized out>) at fontset.c:990 #10 0x000000000043e186 in FACE_FOR_CHAR (object=<optimized out>, pos=<optimized out>, character=<optimized out>, face=0x7cdaad2db4c0, f=<optimized out>) at dispextern.h:1818 #11 get_next_display_element (it=it@entry=0x7f7fffe82f90) at xdisp.c:7303 #12 0x000000000044790b in display_line (it=it@entry=0x7f7fffe82f90, cursor_vpos=cursor_vpos@entry=0) at xdisp.c:21409 #13 0x000000000044ab97 in try_window (window=window@entry=137278716771333, pos=..., flags=flags@entry=0) at xdisp.c:17627 #14 0x000000000045e783 in redisplay_window (window=137278716771333, just_this_one_p=just_this_one_p@entry=false) at xdisp.c:16811 #15 0x0000000000461d78 in redisplay_window_0 (window=window@entry=137278716771333) at xdisp.c:14831 #16 0x0000000000547c1f in internal_condition_case_1 ( bfun=bfun@entry=0x461d4f <redisplay_window_0>, arg=137278716771333, handlers=<optimized out>, hfun=hfun@entry=0x42929e <redisplay_window_error>) at eval.c:1356 #17 0x000000000042d9ae in redisplay_windows (window=137278716771333) at xdisp.c:14811 #18 0x000000000044f61d in redisplay_internal () at xdisp.c:14300 #19 0x000000000045133e in redisplay () at xdisp.c:13518 #20 0x00000000004e58eb in read_char (commandflag=commandflag@entry=1, map=map@entry=137278680449907, prev_event=0, used_mouse_menu=used_mouse_menu@entry=0x7f7fffe883cb, end_time=end_time@entry=0x0) at keyboard.c:2480 #21 0x00000000004e8b6c in read_key_sequence (keybuf=keybuf@entry=0x7f7fffe884b0, prompt=prompt@entry=0, dont_downcase_last=dont_downcase_last@entry=false, can_return_switch_frame=can_return_switch_frame@entry=true, --Type <RET> for more, q to quit, c to continue without paging--q Quit (gdb) -- Greg A. Woods <gwoods@acm.org> Kelowna, BC +1 250 762-7675 RoboHack <woods@robohack.ca> Planix, Inc. <woods@planix.com> Avoncote Farms <woods@avoncote.ca> [-- Attachment #2: OpenPGP Digital Signature --] [-- Type: application/pgp-signature, Size: 195 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#53924: 26.1; fontification sometimes fails for some characters despite available glyphs 2022-02-13 6:06 ` Greg A. Woods @ 2022-02-13 11:53 ` Eli Zaretskii 2022-02-15 2:01 ` Greg A. Woods 0 siblings, 1 reply; 15+ messages in thread From: Eli Zaretskii @ 2022-02-13 11:53 UTC (permalink / raw) To: Greg A. Woods; +Cc: 53924 > Date: Sat, 12 Feb 2022 22:06:09 -0800 > From: "Greg A. Woods" <woods@robohack.ca> > > First the ancient typo/bug: > > fontset.el contains an errant definition for xlfd-regexp-spacing-subnum > (with the value '8'). git-blame suggests this typo has lurked for 20 > years! > > It should of course be '9': > > (defconst xlfd-regexp-spacing-subnum 9) ; fix a 20-year-old typo! Thanks, fixed for the upcoming Emacs 28. Fortunately, this defconst were not used anywhere (which might explain how the typo survived for so long). > (font-families (cl-remove-duplicates > (sort (font-family-list) > (lambda(x y) (string> (upcase x) (upcase y)))) > :test 'cl-equalp))) This is not recommended as a way to get useful fonts. My suggestion is to use the following instead: (delete-dups (x-list-fonts "-*-*-medium-r-normal-*-*-*-*-*-*-iso10646-1" 'default (selected-frame))) Indeed, using x-list-fonts indiscriminately could very well include fonts that Emacs cannot use or even those which will crash Emacs. > Finally a crash (working on reproducing it with GDB in the source tree, > but my gdb is having trouble with the emacs .gdbinit): > > Reading symbols from /usr/pkg/bin/emacs-26.1... > [New process 12954] > [New process 1873] > Core was generated by `emacs'. > Program terminated with signal SIGSEGV, Segmentation fault. > #0 0x00007cdaa53676aa in _lwp_kill () from /usr/lib/libc.so.12 > [Current thread is 1 (process 12954)] > (gdb) bt > #0 0x00007cdaa53676aa in _lwp_kill () from /usr/lib/libc.so.12 > #1 0x00000000004dc6ac in terminate_due_to_signal (sig=sig@entry=11, > backtrace_limit=backtrace_limit@entry=40) at emacs.c:394 > #2 0x00000000004f2d13 in handle_fatal_signal (sig=sig@entry=11) at sysdep.c:1769 > #3 0x00000000004f2f53 in deliver_thread_signal (sig=sig@entry=11, > handler=0x4f2d05 <handle_fatal_signal>) at sysdep.c:1743 > #4 0x00000000004f2fa6 in deliver_fatal_thread_signal (sig=11) at sysdep.c:1781 > #5 handle_sigsegv (sig=11, siginfo=<optimized out>, arg=<optimized out>) > at sysdep.c:1866 > #6 <signal handler called> > #7 0x00000000005ad68d in fontset_find_font (fontset=fontset@entry=364, c=c@entry=180, > face=face@entry=0x7cdaad2db4c0, charset_id=charset_id@entry=-1, > fallback=fallback@entry=false) at fontset.c:550 > #8 0x00000000005adfd3 in fontset_font (fontset=fontset@entry=364, c=c@entry=180, > face=face@entry=0x7cdaad2db4c0, id=-1) at fontset.c:760 > #9 0x00000000005ae365 in face_for_char (f=0x7cdaafbf2c30, > face=face@entry=0x7cdaad2db4c0, c=180, pos=<optimized out>, object=<optimized out>) > at fontset.c:990 > #10 0x000000000043e186 in FACE_FOR_CHAR (object=<optimized out>, pos=<optimized out>, > character=<optimized out>, face=0x7cdaad2db4c0, f=<optimized out>) > at dispextern.h:1818 > #11 get_next_display_element (it=it@entry=0x7f7fffe82f90) at xdisp.c:7303 > #12 0x000000000044790b in display_line (it=it@entry=0x7f7fffe82f90, > cursor_vpos=cursor_vpos@entry=0) at xdisp.c:21409 Is this with the above Lisp program that tries all the fonts collected by font-family-list, or is this with some other recipe to reproduce the crash? Also, was that in "emacs -Q"? ^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#53924: 26.1; fontification sometimes fails for some characters despite available glyphs 2022-02-13 11:53 ` Eli Zaretskii @ 2022-02-15 2:01 ` Greg A. Woods 2022-02-15 14:21 ` Eli Zaretskii 0 siblings, 1 reply; 15+ messages in thread From: Greg A. Woods @ 2022-02-15 2:01 UTC (permalink / raw) To: Eli Zaretskii; +Cc: GNU Emacs Bug Reports [-- Attachment #1: Type: text/plain, Size: 8116 bytes --] At Sun, 13 Feb 2022 13:53:27 +0200, Eli Zaretskii <eliz@gnu.org> wrote: Subject: Re: bug#53924: 26.1; fontification sometimes fails for some characters despite available glyphs > > > (font-families (cl-remove-duplicates > > (sort (font-family-list) > > (lambda(x y) (string> (upcase x) (upcase y)))) > > :test 'cl-equalp))) > > This is not recommended as a way to get useful fonts. Perhaps you can explain that better or differently so I can try to understand? I chose font-family-list because it is (supposedly) window-system agnostic. Indeed it works fine on macOS too, and it transparently even does approximately the right thing on a TTY. > My suggestion > is to use the following instead: > > (delete-dups > (x-list-fonts "-*-*-medium-r-normal-*-*-*-*-*-*-iso10646-1" > 'default (selected-frame))) BTW, delete-dups is wrong, but I finally found seq-uniq (to avoid cl-lib): (seq-uniq (sort (font-family-list) (lambda(x y) (string> (upcase x) (upcase y)))) (lambda(x y) (string= (upcase x) (upcase y)))) > Indeed, using x-list-fonts indiscriminately could very well include > fonts that Emacs cannot use or even those which will crash Emacs. Indeed -- that's another reason why I chose not to use x-list-fonts! > Is this with the above Lisp program that tries all the fonts collected > by font-family-list, or is this with some other recipe to reproduce > the crash? Also, was that in "emacs -Q"? It turns out the crash happens with one font in particular, "Inconsolata". I have some cleanup of the versions of that font in particular that I need to do to be sure I know which one is being used. I can also now confirm the same crash occurs with both GTK+2.0 and with the Lucid (xaw3d) toolkits, and in both 26.1 and today's Git "master". The strange behaviour with glyph selection in some fonts also occurs with the Lucid toolkit, and on today's Git "master". The Lucid toolkit though seems to do font-scaling bass-ackwards w.r.t. handling display resolution, and it also chooses "fixed" as the default base font, which is not scalable (though that makes the effects of the incorrect glyph choices extremely obvious on a hi-res display since the bad glyphs are now 1/4 the size they should be). -- Greg A. Woods <gwoods@acm.org> Kelowna, BC +1 250 762-7675 RoboHack <woods@robohack.ca> Planix, Inc. <woods@planix.com> Avoncote Farms <woods@avoncote.ca> Latest show-all-font-families: (defun show-all-font-families (&optional sample-text mono-only) "Show SAMPLE-TEXT (by default `list-faces-sample-text') in 'roman', 'bold', 'italic', and 'bold italic' for each font family known to `font-family-list'. If MONO-ONLY, include ':spacing m' in the `font-spec' parameters. Interactively, a negative prefix does the same. Note you can seem some strange results for fonts that don't have each of the requested weight and slant forms. Sometimes proportional glyphs will even be substituted for mono-spaced glyphs! Sometimes a glyph from a different font (the default font?) will be substituted even when the requested font is available with all the requested attributes, e.g. 'office code pro'. (Perhaps because it is _only_ avaliable with the requested attributes, but no others?) Also some proportional fonts will show up despite only mono-spaced fonts being selected. Perhaps spacing is ignored when requesting a font? Note even `x-list-fonts' warns that: Fonts Emacs can't use may or may not be excluded... N.B. WARNING: This code may try to display fonts that cannot be opened and as a result will crash Emacs! Worse yet it can get stuck rendering fonts and if killed cause the X11 server to go into a CPU-bound loop that may take hours to resolve! Kill it sooner than later! This is particularly true for Emacs-26.1 when the MONO-ONLY parameter is non-nil. See also the exclusion of the 'droid' fonts. Derived from an example on the EmacsWiki." (interactive (list ;; optional `sample-text': (if current-prefix-arg (read-string "Sample text: " ascii-sample-text 'sample-text-history)) ;; optional `mono-only': (cond ((eq current-prefix-arg '-) t) ((and (numberp current-prefix-arg) (< current-prefix-arg 0)) t) ((and (listp current-prefix-arg) (numberp (car current-prefix-arg)) (< (car current-prefix-arg) 0)) t) (t nil)))) (let ((str (if sample-text sample-text list-faces-sample-text)) (font-families (seq-uniq ;; note: the list is reversed so that font text is ;; inserted in the demo buffer the right order (sort (font-family-list) (lambda(x y) (string> (upcase x) (upcase y)))) (lambda(x y) (string= (upcase x) (upcase y)))))) (with-help-window "*Font Families*" (with-current-buffer standard-output (dolist (ff font-families) (let* ((fs (font-spec :family ff ; :weight 'medium :slant 'r ;; xxx :spacing is confusing ;; see below for additional test to confirm! (if mono-only :spacing) (if mono-only 'm) :dpi (round (/ (display-pixel-height) (/ (display-mm-height) 25.4))) :registry 'iso10646-1)) (fl (list-fonts fs)) (fe (car fl)) ; usually the cdr is non-scalable? (xlfd (if fe (font-xlfd-name fe) (font-xlfd-name fs))) ; xxx font may not be useable (fn (if (eq window-system 'x) (condition-case nil (x-resolve-font-name xlfd) (error (message "Invalid font family: %s" ff) nil)) nil)) (xlfd-fields (if fn (x-decompose-font-name fn) ; xxx not really an X11 function nil)) ) ;; XXX the "droid*" fonts are broken??? (if (and (not (string-match "droid" ff)) (not (string-equal "inconsolata" ff)) ; xxx may crash Emacs!!! (not (string-equal "nil" ff)) ; xxx never a useful font ; (not (string-match "italic" ff)) ; xxx rarely in all other styles ; (not (string-match "bold" ff)) ; xxx rarely in all other styles (not (string-match ".pcf" ff)) ; xxx usually bitmap cursors ;; ;; xxx some fonts, e.g. "inconsolata" (which xfontsel says ;; is both 'm' and 'p'), will return the "wrong" spacing in ;; the XLFD if the request has a wild-card (i.e. :spacing ;; unspecified), but then it can't be found with ;; `font-info' with the explicit ":spacing 'p". ;; (condition-case nil (if (font-info xlfd) ; xxx can this also return nil? t (message "Can't get font info for: %s" xlfd) nil) (error (message "Bad font: %s" xlfd) nil)) (if mono-only (if xlfd-fields ;; because `x-resolve-font-name' sometimes ignores ;; `:spacing' we must confirm the font matches ;; xxx `xlfd-regexp-spacing-subnum' is WRONG, for 20 years! (if (string-equal (aref xlfd-fields 9) "m") t (message "Font not actually monospaced: %s" xlfd) nil) ;; xxx try `font-get' on `fe', but that doesn't seem to ;; work properly for getting `:spacing'!?!?!?!? (if (eq window-system 'x) (message "Can't resolve X font for: %s" xlfd))) t)) (progn (message "Inserting text for font: %s" xlfd) ;; xxx XXX N.B.: without escaping the semicolons emacs can't ;; parse these expressions backwards!!! (insert "\; " ff ":" xlfd "\n\;\n" "\;\t" ff " (plain):\n\;\n" (propertize str 'font-lock-face `(:family ,ff :weight medium :slant r)) "\n\;\n\;\t" ff " [bold]:\n\;\n" (propertize str 'font-lock-face `(:family ,ff :weight bold :slant r)) "\n\;\n\;\t " ff " [italic]:\n\;\n" (propertize str 'font-lock-face `(:family ,ff :weight medium :slant italic)) "\n\;\n\;\t " ff " [bold italic]:\n\;\n" (propertize str 'font-lock-face `(:family ,ff :weight bold :slant italic)) "\n\;\n\f\n")) (message "Not showing font-family: %s" ff))) (goto-char (point-min)) (setq case-fold-search t) (if (fboundp 'form-feed-mode) (form-feed-mode nil))))))) [-- Attachment #2: OpenPGP Digital Signature --] [-- Type: application/pgp-signature, Size: 195 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#53924: 26.1; fontification sometimes fails for some characters despite available glyphs 2022-02-15 2:01 ` Greg A. Woods @ 2022-02-15 14:21 ` Eli Zaretskii 2022-02-15 22:04 ` Greg A. Woods 2022-02-16 2:32 ` Greg A. Woods 0 siblings, 2 replies; 15+ messages in thread From: Eli Zaretskii @ 2022-02-15 14:21 UTC (permalink / raw) To: Greg A. Woods; +Cc: 53924 > Date: Mon, 14 Feb 2022 18:01:43 -0800 > From: "Greg A. Woods" <woods@robohack.ca> > Cc: GNU Emacs Bug Reports <53924@debbugs.gnu.org> > > > > (font-families (cl-remove-duplicates > > > (sort (font-family-list) > > > (lambda(x y) (string> (upcase x) (upcase y)))) > > > :test 'cl-equalp))) > > > > This is not recommended as a way to get useful fonts. > > Perhaps you can explain that better or differently so I can try to > understand? Certainly. Which part(s) would you like me to explain better? > I chose font-family-list because it is (supposedly) window-system > agnostic. Indeed it works fine on macOS too, and it transparently even > does approximately the right thing on a TTY. font-family-list yields a list that includes fonts that are not necessarily appropriate for Emacs. As does x-list-fonts, if run with just one argument. > > My suggestion > > is to use the following instead: > > > > (delete-dups > > (x-list-fonts "-*-*-medium-r-normal-*-*-*-*-*-*-iso10646-1" > > 'default (selected-frame))) > > BTW, delete-dups is wrong, but I finally found seq-uniq (to avoid > cl-lib): I don't see why delete-dups would be wrong here, but that's a tangent. > (seq-uniq > (sort (font-family-list) > (lambda(x y) (string> (upcase x) (upcase y)))) > (lambda(x y) (string= (upcase x) (upcase y)))) The problem with this is that it doesn't filter out fonts that are too small for the frame, and fonts that cannot be used for the 'default' face. So the result is still unsafe. > > Indeed, using x-list-fonts indiscriminately could very well include > > fonts that Emacs cannot use or even those which will crash Emacs. > > Indeed -- that's another reason why I chose not to use x-list-fonts! But font-family-list is not better. In fact, it's worse, because it doesn't support the filtering x-list-fonts does when used with 3 arguments, and when the font XLFD pattern is set up to produce only fonts that can be safely used in Emacs for the 'default' face. > > Is this with the above Lisp program that tries all the fonts collected > > by font-family-list, or is this with some other recipe to reproduce > > the crash? Also, was that in "emacs -Q"? > > It turns out the crash happens with one font in particular, > "Inconsolata". I have some cleanup of the versions of that font in > particular that I need to do to be sure I know which one is being used. > > I can also now confirm the same crash occurs with both GTK+2.0 and with > the Lucid (xaw3d) toolkits, and in both 26.1 and today's Git "master". Can you show a simple Emacs -Q invocation with that font which crashes? Then I think I or someone else could look into the reasons. ^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#53924: 26.1; fontification sometimes fails for some characters despite available glyphs 2022-02-15 14:21 ` Eli Zaretskii @ 2022-02-15 22:04 ` Greg A. Woods 2022-02-16 2:32 ` Greg A. Woods 1 sibling, 0 replies; 15+ messages in thread From: Greg A. Woods @ 2022-02-15 22:04 UTC (permalink / raw) To: Eli Zaretskii; +Cc: GNU Emacs Bug Reports [-- Attachment #1: Type: text/plain, Size: 6872 bytes --] At Tue, 15 Feb 2022 16:21:43 +0200, Eli Zaretskii <eliz@gnu.org> wrote: Subject: Re: bug#53924: 26.1; fontification sometimes fails for some characters despite available glyphs > > Can you show a simple Emacs -Q invocation with that font which > crashes? Then I think I or someone else could look into the reasons. I'll work on that. In the mean time here's another crash in the exact same spot, but this time triggered a new way, while trying to zoom the "*Font Families*" window created by my test function with text-scale-adjust (C-x C-+). Before zooming all the sample text for all fonts in the window was viewable without any problem. I still can't figure out, I think because of the inline function, exactly which line within fontset_find_font() where the crash happens. Perhaps I should rebuild with -O0? (this is Emacs from yesterday's Git master, with the Lucid toolkit) (gdb) source ../src/.gdbinit SIGINT is used by the debugger. Are you sure you want to change it? (y or n) [answered Y; input not from terminal] DISPLAY = very.local:0 TERM = xterm-256color Breakpoint 1 at 0xdcd800: file ../../src/emacs.c, line 408. Breakpoint 2 at 0x4c7bdd: file ../../src/xterm.c, line 13072. ../src/.gdbinit:1375: Error in sourced command file: Scripting in the "Python" language is not supported in this copy of GDB. (gdb) run Starting program: /work/woods/m-emacs/build-x86_64-nb9.99.81/src/emacs-29.0.50.1 [New LWP 17054 of process 7937] [New process 7937] Thread 1 "" received signal SIGSEGV, Segmentation fault. fontset_find_font (fontset=fontset@entry=0xacb, c=c@entry=180, face=face@entry=0x7f04f5ec82c0, charset_id=charset_id@entry=-1, fallback=fallback@entry=false) at ../../src/lisp.h:757 757 return lisp_h_XLP (o); (gdb) pp fontset #<INVALID_LISP_OBJECT 0x00000acb> (gdb) pp face #<INVALID_LISP_OBJECT 0x7f04f5ec82c0> (gdb) print fontset $1 = (Lisp_Object) 0xacb (gdb) print face $2 = (struct face *) 0x7f04f5ec82c0 (gdb) print *fontset $4 = <incomplete type> (gdb) print *face $3 = {lface = {0x63f0, 0x7f05110cd184, 0x7f0515df8dc4, 0xb2e0, 0x26e, 0xa170, 0x7f05133441b0, 0x0, 0x0, 0x7f0515e54404, 0x7f0515e54424, 0x0, 0x0, 0x0, 0x0, 0x7f0512221465, 0x0, 0x7f0511de0864, 0xf480, 0x0}, id = 4121, gc = 0x0, stipple = 0, foreground = 0, background = 16777215, underline_color = 0, overline_color = 0, strike_through_color = 0, box_color = 0, font = 0x0, fontset = -1, box_vertical_line_width = 0, box_horizontal_line_width = 0, underline_pixels_above_descent_line = 0, box = FACE_NO_BOX, underline = FACE_NO_UNDERLINE, use_box_color_for_shadows_p = false, overline_p = false, strike_through_p = false, foreground_defaulted_p = false, background_defaulted_p = false, underline_defaulted_p = false, overline_color_defaulted_p = false, strike_through_color_defaulted_p = false, box_color_defaulted_p = false, underline_at_descent_line_p = false, tty_bold_p = false, tty_italic_p = false, tty_underline_p = false, tty_reverse_p = false, tty_strike_through_p = false, colors_copied_bitwise_p = false, overstrike = false, hash = 34914959679024, next = 0x7f04fbd65a40, prev = 0x0, ascii_face = 0x7f04f5ec82c0, extra = 0x0} (gdb) info locals vec = <optimized out> font_group = <optimized out> i = <optimized out> charset_matched = 0 found_index = <optimized out> f = <optimized out> rfont_def = <optimized out> (gdb) bt #0 fontset_find_font (fontset=fontset@entry=0xacb, c=c@entry=180, face=face@entry=0x7f04f5ec82c0, charset_id=charset_id@entry=-1, fallback=fallback@entry=false) at ../../src/lisp.h:757 #1 0x00000000005ee5dd in fontset_font (fontset=fontset@entry=0xacb, c=c@entry=180, face=face@entry=0x7f04f5ec82c0, id=-1) at ../../src/fontset.c:766 #2 0x00000000005eec55 in face_for_char (f=0x7f051297e9e0, face=face@entry=0x7f04f5ec82c0, c=180, pos=<optimized out>, object=<optimized out>) at ../../src/fontset.c:996 #3 0x0000000000436fd2 in FACE_FOR_CHAR (object=<optimized out>, pos=<optimized out>, character=<optimized out>, face=0x7f04f5ec82c0, f=<optimized out>) at ../../src/dispextern.h:1908 #4 get_next_display_element (it=it@entry=0x7f7fffb88b10) at ../../src/xdisp.c:8012 #5 0x000000000043e326 in display_line (it=it@entry=0x7f7fffb88b10, cursor_vpos=cursor_vpos@entry=0) at ../../src/xdisp.c:24105 #6 0x00000000004437fa in try_window (window=window@entry=0x7f0508317cfd, pos=..., flags=flags@entry=1) at ../../src/xdisp.c:20009 #7 0x0000000000461bc8 in redisplay_window (window=0x7f0508317cfd, just_this_one_p=just_this_one_p@entry=false) at ../../src/xdisp.c:19416 #8 0x0000000000463881 in redisplay_window_0 (window=window@entry=0x7f0508317cfd) at ../../src/xdisp.c:17061 #9 0x0000000000572a8e in internal_condition_case_1 ( bfun=bfun@entry=0x463858 <redisplay_window_0>, arg=arg@entry=0x7f0508317cfd, handlers=<optimized out>, hfun=hfun@entry=0x417fee <redisplay_window_error>) at ../../src/eval.c:1503 #10 0x000000000041ab68 in redisplay_windows (window=0x7f0508317cfd) at ../../src/xdisp.c:17041 #11 0x000000000044cb8f in redisplay_internal () at ../../src/xdisp.c:16509 #12 0x000000000044df61 in redisplay () at ../../src/xdisp.c:15719 #13 0x0000000000502cb8 in read_char (commandflag=commandflag@entry=1, map=map@entry=0x7f051157e083, prev_event=0x0, used_mouse_menu=used_mouse_menu@entry=0x7f7fffb8dbfb, end_time=end_time@entry=0x0) at ../../src/keyboard.c:2586 #14 0x000000000050448f in read_key_sequence (keybuf=keybuf@entry=0x7f7fffb8dd10, prompt=prompt@entry=0x0, dont_downcase_last=dont_downcase_last@entry=false, can_return_switch_frame=can_return_switch_frame@entry=true, fix_current_buffer=fix_current_buffer@entry=true, prevent_redisplay=prevent_redisplay@entry=false) at ../../src/keyboard.c:9778 #15 0x0000000000505f82 in command_loop_1 () at ../../src/lisp.h:1153 #16 0x0000000000572a08 in internal_condition_case ( bfun=bfun@entry=0x505d75 <command_loop_1>, handlers=handlers@entry=0x90, hfun=hfun@entry=0x4fa596 <cmd_error>) at ../../src/eval.c:1479 #17 0x00000000004f3f97 in command_loop_2 (handlers=handlers@entry=0x90) at ../../src/keyboard.c:1137 #18 0x000000000057296e in internal_catch (tag=tag@entry=0xe9d0, --Type <RET> for more, q to quit, c to continue without paging-- func=func@entry=0x4f3f81 <command_loop_2>, arg=arg@entry=0x90) at ../../src/eval.c:1210 #19 0x00000000004f3f50 in command_loop () at ../../src/lisp.h:1153 #20 0x00000000004fa1da in recursive_edit_1 () at ../../src/keyboard.c:724 #21 0x00000000004fa4ef in Frecursive_edit () at ../../src/keyboard.c:807 #22 0x0000000000dd55d7 in main (argc=2, argv=0x7f7fffb8e098) at ../../src/emacs.c:2430 (gdb) -- Greg A. Woods <gwoods@acm.org> Kelowna, BC +1 250 762-7675 RoboHack <woods@robohack.ca> Planix, Inc. <woods@planix.com> Avoncote Farms <woods@avoncote.ca> [-- Attachment #2: OpenPGP Digital Signature --] [-- Type: application/pgp-signature, Size: 195 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#53924: 26.1; fontification sometimes fails for some characters despite available glyphs 2022-02-15 14:21 ` Eli Zaretskii 2022-02-15 22:04 ` Greg A. Woods @ 2022-02-16 2:32 ` Greg A. Woods 2022-02-16 3:36 ` Eli Zaretskii 2022-02-16 22:14 ` Lars Ingebrigtsen 1 sibling, 2 replies; 15+ messages in thread From: Greg A. Woods @ 2022-02-16 2:32 UTC (permalink / raw) To: Eli Zaretskii; +Cc: GNU Emacs Bug Reports [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain; charset=ISO10646-1, Size: 411 bytes --] \x1e^~éeÊØb²g¬±¨\x1ezw(uë)®^®\¢¶ÈhºW[z×±·úej)âØ^!#µÓ®:ÕÈZ®ÇÂ+a\x04\x04ë§rb\x04nérÊ¢Ø^uæî\a«³\br^[h¶\x17¬r¶r\x16î}÷«jwbÇ«¶Ø^~æ±·¥£\vazs1zö¥nçßzºÞ¶êçK\br^[h¶\x17§{\x01hÑZ)bzÆî}÷«jwlrº%ÉhÂ\º.\x18\rê^اᣠ'èÛ2¢èZ½è§²Ö¥çZØhÁ©ÝÂ\x16)Ý¡úÞ²«që2¢êìÊË^ÈZ½ëaÇ(ºWmjGªº+^jZ'ئxí «]¡ë'¶Úâ\a«iÊÚ²^[kÊ "\x06ÚrKh¶\x17z\b§)àw+y«\x1e¶\x17{^[lq©^Â+a à±\væ§vÇ+¢Ymº.\x16 j)Ó+,y鬶Þ&'\x1aºÇ ç+jÈ_¢¹jÙ^jËpØm ᢶf¬µêïz»"¢r!j÷º)mºÈ§Ø^ç"vÚ(H [-- Attachment #2: OpenPGP Digital Signature --] [-- Type: application/pgp-signature, Size: 195 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#53924: 26.1; fontification sometimes fails for some characters despite available glyphs 2022-02-16 2:32 ` Greg A. Woods @ 2022-02-16 3:36 ` Eli Zaretskii 2022-02-16 21:55 ` Greg A. Woods 2022-02-16 22:14 ` Lars Ingebrigtsen 1 sibling, 1 reply; 15+ messages in thread From: Eli Zaretskii @ 2022-02-16 3:36 UTC (permalink / raw) To: Greg A. Woods; +Cc: 53924 > Date: Tue, 15 Feb 2022 18:32:23 -0800 > From: "Greg A. Woods" <woods@robohack.ca> > CC: GNU Emacs Bug Reports <53924@debbugs.gnu.org> > > Hopefully this message encodes properly, it should be text/plain, in > the ISO10646-1 charset, with BASE64 encoding. > > Run "emacs -q" in the debugger, switch to the *scratch* buffer and > insert the forms below, then: > > M-x eval-buffer <return> > > Switch to the new *Font Families* buffer and scroll slowly through it. > Depending on how many fonts you have installed, and how, and what kind > of resources your system(s) have, this could take quite a long time. > > If that doesn't trigger a crash try going back to the beginning, > increase the text scale with C-u C-x C-+ and scroll through again. > > This seems to reliably cause the crash for me, at least with the Git > master version I have built using the lucid toolkit.. Like I said before: please try to figure out which font causes the crashes, and post a recipe with that font alone. Otherwise, trying to reproduce this is a huge waste of time, because the results depend critically on the fonts actually installed on the system. Thanks. ^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#53924: 26.1; fontification sometimes fails for some characters despite available glyphs 2022-02-16 3:36 ` Eli Zaretskii @ 2022-02-16 21:55 ` Greg A. Woods 0 siblings, 0 replies; 15+ messages in thread From: Greg A. Woods @ 2022-02-16 21:55 UTC (permalink / raw) To: Eli Zaretskii; +Cc: GNU Emacs Bug Reports [-- Attachment #1: Type: text/plain, Size: 3998 bytes --] At Wed, 16 Feb 2022 05:36:24 +0200, Eli Zaretskii <eliz@gnu.org> wrote: Subject: Re: bug#53924: 26.1; fontification sometimes fails for some characters despite available glyphs > > > Date: Tue, 15 Feb 2022 18:32:23 -0800 > > From: "Greg A. Woods" <woods@robohack.ca> > > CC: GNU Emacs Bug Reports <53924@debbugs.gnu.org> > > > > Hopefully this message encodes properly, it should be text/plain, in > > the ISO10646-1 charset, with BASE64 encoding. > > > > Run "emacs -q" in the debugger, switch to the *scratch* buffer and > > insert the forms below, then: > > > > M-x eval-buffer <return> > > > > Switch to the new *Font Families* buffer and scroll slowly through it. > > Depending on how many fonts you have installed, and how, and what kind > > of resources your system(s) have, this could take quite a long time. > > > > If that doesn't trigger a crash try going back to the beginning, > > increase the text scale with C-u C-x C-+ and scroll through again. > > > > This seems to reliably cause the crash for me, at least with the Git > > master version I have built using the lucid toolkit.. > > Like I said before: please try to figure out which font causes the > crashes, and post a recipe with that font alone. Otherwise, trying to > reproduce this is a huge waste of time, because the results depend > critically on the fonts actually installed on the system. Sorry, I really can't be bothered to waste more of my own time on this aspect of the problem until I know that you, or someone else, has at least tried the very simple test I've provided. It is really very simple, and it really would be useful if someone other than myself, in my limited test environment, can try it out to see what happens. I've even already identified suspect fonts (e.g. in comments in the code I supplied), and if you don't have them google will almost instantly tell you where you can find them to try for yourself. Any crash is very bad of course, but, the main issue central to this bug report remains, which is the question of why Emacs chooses to use the frame's default font for ASCII characters when displaying some fonts but not others (even simultaneously with both fonts rendered in the same frame), even when all fonts appear (via other tools) to have all necessary glyphs for all these same ASCII characters. The algorithms for this choice do not seem to be very well documented outside of the code itself, and the code is extremely convoluted and non-modular. If there's something "odd" or otherwise wrong/different with the fonts that don't display properly, that's fine, I just want to know exactly what the problem is. However without knowing even what could be wrong it's impossible to identify and perhaps fix or otherwise change these differences using other tools. My only other available test environment is native macOS with Emacs using the "nextstep" toolkit. There it seems Emacs has very a different and quite opposite "opinion" about ASCII vs. other Unicode characters (than under X11) -- the macOS native version is happy to show empty boxes for ASCII characters if the font has none, but it always cobbles together other Unicode glyphs, e.g. in my sample text, from a variety of other fonts if the requested font has no glyphs for them. I have not seen any crashes in the native macOS environment either. Anyway this X11 font display issue seems to be central to Emacs' ability to accurately display things like web pages and other formatted documents in a more WYSIWYG manner. It also doesn't make a very good demo if Emacs can't even show samples of all available fonts in a given environment. The crash, which for example might be triggered by an attempt to use one of the more problematic fonts in displaying a formatted web page or document, is still secondary to my main issue. -- Greg A. Woods <gwoods@acm.org> Kelowna, BC +1 250 762-7675 RoboHack <woods@robohack.ca> Planix, Inc. <woods@planix.com> Avoncote Farms <woods@avoncote.ca> [-- Attachment #2: OpenPGP Digital Signature --] [-- Type: application/pgp-signature, Size: 195 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#53924: 26.1; fontification sometimes fails for some characters despite available glyphs 2022-02-16 2:32 ` Greg A. Woods 2022-02-16 3:36 ` Eli Zaretskii @ 2022-02-16 22:14 ` Lars Ingebrigtsen 1 sibling, 0 replies; 15+ messages in thread From: Lars Ingebrigtsen @ 2022-02-16 22:14 UTC (permalink / raw) To: Greg A. Woods; +Cc: GNU Emacs Bug Reports "Greg A. Woods" <woods@robohack.ca> writes: > Run "emacs -q" in the debugger, switch to the *scratch* buffer and > insert the forms below, then: > M-x eval-buffer <return> This segfaults Emacs 26.1, but not Emacs 29. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 15+ messages in thread
[parent not found: <handler.53924.B.164452023325832.ack@debbugs.gnu.org>]
* bug#53924: 26.1; fontification sometimes fails for some characters despite available glyphs [not found] ` <handler.53924.B.164452023325832.ack@debbugs.gnu.org> @ 2022-02-10 22:42 ` Greg A. Woods 0 siblings, 0 replies; 15+ messages in thread From: Greg A. Woods @ 2022-02-10 22:42 UTC (permalink / raw) To: 53924 [-- Attachment #1: Type: text/plain, Size: 432 bytes --] Sorry, some debug code crept into my test function. The first call to `propertize' was: (propertize str 'font-lock-face `(:font ,fs :weight medium)) but should be: (propertize str 'font-lock-face `(:family ,ff :weight medium)) -- Greg A. Woods <gwoods@acm.org> Kelowna, BC +1 250 762-7675 RoboHack <woods@robohack.ca> Planix, Inc. <woods@planix.com> Avoncote Farms <woods@avoncote.ca> [-- Attachment #2: OpenPGP Digital Signature --] [-- Type: application/pgp-signature, Size: 195 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2022-02-16 22:14 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-02-10 19:02 bug#53924: 26.1; fontification sometimes fails for some characters despite available glyphs Greg A. Woods 2022-02-10 20:21 ` Eli Zaretskii 2022-02-10 23:34 ` Greg A. Woods 2022-02-11 7:15 ` Eli Zaretskii 2022-02-11 21:56 ` Greg A. Woods 2022-02-13 6:06 ` Greg A. Woods 2022-02-13 11:53 ` Eli Zaretskii 2022-02-15 2:01 ` Greg A. Woods 2022-02-15 14:21 ` Eli Zaretskii 2022-02-15 22:04 ` Greg A. Woods 2022-02-16 2:32 ` Greg A. Woods 2022-02-16 3:36 ` Eli Zaretskii 2022-02-16 21:55 ` Greg A. Woods 2022-02-16 22:14 ` Lars Ingebrigtsen [not found] ` <handler.53924.B.164452023325832.ack@debbugs.gnu.org> 2022-02-10 22:42 ` Greg A. Woods
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.