all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#61677: 30.0.50; Display-Fill-Column-Indicator mode shifts with narrow characters near end of line
@ 2023-02-21 11:40 Adriel Dumas--Jondeau via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-02-21 15:00 ` Eli Zaretskii
  0 siblings, 1 reply; 5+ messages in thread
From: Adriel Dumas--Jondeau via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-02-21 11:40 UTC (permalink / raw)
  To: 61677

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


Starting from ~emacs -Q~:

1. Enable the Display-Full-Column-Indicator mode (~M-x di-i~).

2. Conveniently set fill-column value to the lowest (~C-x f 1~).

3. Set a font that properly displays narrow chars (~M-x s-fr-f~), e.g
   "-PfEd-DejaVu Serif-regular-normal-normal-*-*-*-*-*-*-0-iso10646-1".

4. Use a newline terminated line as the guide doesn't show up on the
   last line of the file (e.g ~C-p~, ~C-o~ and whatnot).

5. Insert some special characters, such as the narrow nobreak-space
   (~C-x 8 RET 202f~), up to three times.

Observed behavior: The guide on this line is slightly shifted to the
right in regards to the next and previous lines, and it get worse as
narrow chars are added.

Expected Behavior: The guide should stay properly aligned to the
fill-column value.

This is my first bug report, so I'm a bit overwhelmed and I'm really
sorry if this is a duplicate (If so, how can I tell so next time?)

I don't know the internals of display-fill-column-indicator-mode, but my
guts says that we should compensate this by using some another narrow
characters (without any face) to properly align to fill-column.

I don't know if it can be done accurately for every narrow characters of
every font as width may greatly vary between each of them, though.

I'm on Emacs 30.0.50, but I'm pretty sure this can be reproduced on most
of the previous recent emacs versions.

Thank you,

--
Adriel


In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.24.30, cairo version 1.16.0)
System Description: Guix System

Configured using:
 'configure
 CONFIG_SHELL=/gnu/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8/bin/bash
 SHELL=/gnu/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8/bin/bash
 --prefix=/gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87
 --enable-fast-install --with-pgtk --with-xwidgets --with-modules
 --with-cairo --with-native-compilation --disable-build-details'

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

Important settings:
  value of $EMACSLOADPATH: /home/leirda/.guix-home/profile/share/emacs/site-lisp:/gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp
  value of $EMACSNATIVELOADPATH: /home/leirda/.guix-home/profile/lib/emacs/native-site-lisp
  value of $LANG: en_US.utf8
  locale-coding-system: utf-8-unix

Major mode: ELisp/d

Load-path shadows:
/gnu/store/4hjddd63p2wnymjbi1x2wy56a5fcb13v-emacs-jsonrpc-1.0.16/share/emacs/site-lisp/jsonrpc-1.0.16/jsonrpc hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/jsonrpc
/gnu/store/8ssgcwh2wy8d9pihqdrm7cizq4ja1klz-emacs-external-completion-0.1/share/emacs/site-lisp/external-completion-0.1/external-completion hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/external-completion
/gnu/store/bz2079dzdhzvbv3p450ccm76dyhzj106-emacs-xref-1.6.1/share/emacs/site-lisp/xref-1.6.1/xref hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/progmodes/xref
/gnu/store/0ikj7v4vdl9n6z3jxihwlyh6h3nqyxmv-emacs-project-0.9.7/share/emacs/site-lisp/project-0.9.7/project hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/progmodes/project
/gnu/store/mmmhg3vg7hafr0yklvksim27rmrslb88-emacs-eglot-1.11/share/emacs/site-lisp/eglot-1.11/eglot hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/progmodes/eglot
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ox hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ox
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ox-texinfo hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ox-texinfo
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ox-publish hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ox-publish
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ox-org hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ox-org
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ox-odt hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ox-odt
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ox-md hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ox-md
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ox-man hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ox-man
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ox-latex hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ox-latex
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ox-koma-letter hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ox-koma-letter
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ox-icalendar hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ox-icalendar
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ox-html hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ox-html
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ox-beamer hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ox-beamer
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ox-ascii hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ox-ascii
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-timer hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-timer
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-table hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-table
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-src hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-src
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-refile hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-refile
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-protocol hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-protocol
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-plot hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-plot
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-persist hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-persist
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-pcomplete hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-pcomplete
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-num hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-num
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-mouse hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-mouse
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-mobile hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-mobile
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-macs hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-macs
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-macro hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-macro
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-loaddefs hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-loaddefs
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-list hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-list
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-lint hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-lint
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-keys hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-keys
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-inlinetask hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-inlinetask
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-indent hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-indent
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-id hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-id
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-habit hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-habit
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-goto hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-goto
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-footnote hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-footnote
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-fold hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-fold
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-fold-core hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-fold-core
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-feed hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-feed
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-faces hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-faces
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-entities hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-entities
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-element hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-element
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-duration hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-duration
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-datetree hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-datetree
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-cycle hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-cycle
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-ctags hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-ctags
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-crypt hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-crypt
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-compat hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-compat
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-colview hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-colview
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-clock hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-clock
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-capture hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-capture
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-attach hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-attach
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-archive hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-archive
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-agenda hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-agenda
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ol hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ol
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ol-gnus hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ol-gnus
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ol-bibtex hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ol-bibtex
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ol-bbdb hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ol-bbdb
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/oc hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/oc
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/oc-csl hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/oc-csl
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/oc-biblatex hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/oc-biblatex
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/oc-basic hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/oc-basic
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-tangle hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-tangle
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-shell hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-shell
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-sql hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-sql
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-ruby hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-ruby
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-python hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-python
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-octave hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-octave
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-lua hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-lua
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-lilypond hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-lilypond
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-latex hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-latex
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-julia hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-julia
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-java hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-java
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-haskell hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-haskell
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-gnuplot hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-gnuplot
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-exp hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-exp
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-core hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-core
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-comint hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-comint
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-clojure hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-clojure
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-R hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-R
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-C hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-C
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-version hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-version
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-tempo hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-tempo
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/org-attach-git hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/org-attach-git
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ol-w3m hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ol-w3m
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ol-rmail hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ol-rmail
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ol-mhe hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ol-mhe
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ol-man hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ol-man
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ol-irc hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ol-irc
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ol-info hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ol-info
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ol-eww hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ol-eww
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ol-eshell hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ol-eshell
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ol-doi hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ol-doi
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ol-docview hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ol-docview
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/oc-natbib hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/oc-natbib
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/oc-bibtex hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/oc-bibtex
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-table hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-table
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-sqlite hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-sqlite
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-screen hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-screen
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-sed hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-sed
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-scheme hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-scheme
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-sass hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-sass
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-ref hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-ref
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-processing hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-processing
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-plantuml hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-plantuml
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-perl hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-perl
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-org hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-org
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-ocaml hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-ocaml
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-maxima hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-maxima
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-matlab hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-matlab
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-makefile hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-makefile
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-lob hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-lob
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-lisp hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-lisp
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-js hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-js
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-groovy hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-groovy
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-fortran hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-fortran
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-forth hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-forth
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-eval hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-eval
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-eshell hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-eshell
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-emacs-lisp hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-emacs-lisp
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-dot hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-dot
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-ditaa hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-ditaa
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-css hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-css
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-calc hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-calc
/gnu/store/7vvbh1hb4cdbkvyh3zbjk8ikh72b2ksl-emacs-org-9.6.1/share/emacs/site-lisp/org-9.6.1/ob-awk hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/org/ob-awk
/gnu/store/1cwal336xhaldg6w71fskzkhyjgb7kb4-emacs-seq-2.23/share/emacs/site-lisp/seq-2.23/seq hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/emacs-lisp/seq
/gnu/store/ab25nrhs5nm7gr0jl6y870q6jbgs4vvc-emacs-faceup-0.0.1-1.6c92dad/share/emacs/site-lisp/faceup-0.0.1-1.6c92dad/faceup hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/emacs-lisp/faceup
/gnu/store/l6h2lw1zpy61rwvs1fv2wdnllb3yjwxr-emacs-eldoc-1.13.0/share/emacs/site-lisp/eldoc-1.13.0/eldoc hides /gnu/store/52l8km136bn59wvk9qxyycqy4c5s91pa-emacs-next-pgtk-29.0.60-0.ac7ec87/share/emacs/30.0.50/lisp/emacs-lisp/eldoc

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 686 bytes --]

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

* bug#61677: 30.0.50; Display-Fill-Column-Indicator mode shifts with narrow characters near end of line
  2023-02-21 11:40 bug#61677: 30.0.50; Display-Fill-Column-Indicator mode shifts with narrow characters near end of line Adriel Dumas--Jondeau via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-02-21 15:00 ` Eli Zaretskii
  2023-02-21 18:35   ` Adriel Dumas--Jondeau via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 5+ messages in thread
From: Eli Zaretskii @ 2023-02-21 15:00 UTC (permalink / raw)
  To: Adriel Dumas--Jondeau; +Cc: 61677

> Date: Tue, 21 Feb 2023 12:40:45 +0100
> From:  Adriel Dumas--Jondeau via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
> 
> 1. Enable the Display-Full-Column-Indicator mode (~M-x di-i~).
> 
> 2. Conveniently set fill-column value to the lowest (~C-x f 1~).
> 
> 3. Set a font that properly displays narrow chars (~M-x s-fr-f~), e.g
>    "-PfEd-DejaVu Serif-regular-normal-normal-*-*-*-*-*-*-0-iso10646-1".
> 
> 4. Use a newline terminated line as the guide doesn't show up on the
>    last line of the file (e.g ~C-p~, ~C-o~ and whatnot).
> 
> 5. Insert some special characters, such as the narrow nobreak-space
>    (~C-x 8 RET 202f~), up to three times.
> 
> Observed behavior: The guide on this line is slightly shifted to the
> right in regards to the next and previous lines, and it get worse as
> narrow chars are added.

AFAIU, you are using a font that is effectively a variable-pitch font:
not all of the characters have glyphs of the same width, some have
narrower glyphs.  Is that correct?

If so, the display-full-column-indicator feature is not prepared to
deal with such fonts.  The whole notion of "fill-column" only makes
sense with fixed-pitch fonts, because otherwise either column N will
mean different pixel coordinates depending on which characters are
shown in the screen line (and the vertical line of indicators will
appear broken, unaligned), or (if we forcibly align the indicators on
the same pixel coordinate) the indicator will show a different column
on each line, again depending on what characters are shown in that
line.

What happens in your case is that the layout calculations performed by
the display engine go awry because this font's glyphs have different
widths, something the current code doesn't expect.  It should be
possible to modify the layout calculations so that the indicators
align on display on the same pixel, but then the number of the column
where the indicator is shown in each line will be different, which
basically makes this feature useless for its purpose.

So I think we won't fix this issue.  Unless I'm missing something,
that is.

Caveat: I don't have that font, so I used a different variable-pitch
font to see what happens.

> I don't know the internals of display-fill-column-indicator-mode, but my
> guts says that we should compensate this by using some another narrow
> characters (without any face) to properly align to fill-column.

On GUI displays, we don't use characters, we use a special stretch
glyph whose width we calculate as needed.  So that's not the problem.
The problem is that different characters produce glyphs of different
widths, and the code is not prepared to deal with that situations
because fill-column indicator only makes sense with fonts of fixed
width.





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

* bug#61677: 30.0.50; Display-Fill-Column-Indicator mode shifts with narrow characters near end of line
  2023-02-21 15:00 ` Eli Zaretskii
@ 2023-02-21 18:35   ` Adriel Dumas--Jondeau via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-02-22 13:19     ` Eli Zaretskii
  0 siblings, 1 reply; 5+ messages in thread
From: Adriel Dumas--Jondeau via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-02-21 18:35 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 61677

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


Thank you for your answer and these crystal clear explanations!

I have a much better understanding of what's happening now :)

Eli Zaretskii <eliz@gnu.org> writes:

> AFAIU, you are using a font that is effectively a variable-pitch font:
> not all of the characters have glyphs of the same width, some have
> narrower glyphs.  Is that correct?

Yes, that's it! I didn't knew it was the “pitch” of the characters and
couldn't look it up online. Thank you for the pointer.

> Caveat: I don't have that font, so I used a different variable-pitch
> font to see what happens.

I assumed that this font should be available on most of systems as I
made nothing to get it installed. But this assumption is wrong.

I guess it should apply to any other variable-pitch font as well,
perhaps on different characters. Narrow nobreak-space should behave the
same on most of said fonts, though.

--- 8< ---

What I expect from display-fill-column-indicator is at least to be able
to tell at a glance whether the actual number of characters on a given
line goes beyond a certain point or not, independently from their size
with any given font. So having the indicator displayed even after I type
3 narrow nobreak-spaces at fill-column 1 bothers me a bit (as it should
disappear once it gets past the character count limit anyway). But I
also understand why we can't make it disappear based on the number of
characters, as the space between the text and the indicator wouldn't
represent the actual remaining empty characters in that case.

Whether this expectation is shared or not, and based on my current
knowledge, I think there's at least these three choices:

- Leaving things as is (The most straightforward and efficient way, and
  I would be absolutely okay with that)

- Is there any documentation somewhere about that? Adding a warning
  based on the current font pitch with a pointer towards a more detailed
  explanation on Display-Fill-Column-Indicator triggers (and maybe
  hooking it at frame-font changes). This would at least give some hints
  to users and would reduce the occurence of threads as the current one
  (Probably low effort unless there is doc to write about it).

- Modifying Display-Fill-Column-Indicator in order to display two
  vertical guides: the “global” vertical line that we currently have but
  with the catch that it should hold true for the current font pitch,
  pixel based, a single line at ~fill-column~ for normal characters,
  independent from the character count. A “character count” indicator,
  relative to each line, that may or may not be the same as the global
  one, with different glyph and color, doesn't show up if the same as
  the global one. It means the character count glyph may only be shown
  with a variable-pitch font on a line that contains narrowed or wide
  characters (This is the most controversial suggestion I'd say).

The benefit of the latter suggestion is that it still works the same
with fixed-pitch font (the character count should actually be the same
as the pixel size in this case), but it would be more expressive with
variable-pitch, thus fixing the inconsistencies that currently occur.

The caveat is it brokes the implicit rule that the indicator is about
the character count with variable-pitch font (as it would truly be about
taken physical space on the screen). But the fact that a new character
is displayed when it's not should (could?) make things clear.

I can make code suggestions for this last one (not right now though) if
nobody else is willing to, and if there's no real objection to it.

What do you think?

-- 
Adriel

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 686 bytes --]

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

* bug#61677: 30.0.50; Display-Fill-Column-Indicator mode shifts with narrow characters near end of line
  2023-02-21 18:35   ` Adriel Dumas--Jondeau via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-02-22 13:19     ` Eli Zaretskii
  2023-02-22 22:54       ` Adriel Dumas--Jondeau via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 5+ messages in thread
From: Eli Zaretskii @ 2023-02-22 13:19 UTC (permalink / raw)
  To: Adriel Dumas--Jondeau; +Cc: 61677

> From: Adriel Dumas--Jondeau <leirda@disroot.org>
> Cc: 61677@debbugs.gnu.org
> Date: Tue, 21 Feb 2023 19:35:21 +0100
> 
> Whether this expectation is shared or not, and based on my current
> knowledge, I think there's at least these three choices:
> 
> - Leaving things as is (The most straightforward and efficient way, and
>   I would be absolutely okay with that)
> 
> - Is there any documentation somewhere about that? Adding a warning
>   based on the current font pitch with a pointer towards a more detailed
>   explanation on Display-Fill-Column-Indicator triggers (and maybe
>   hooking it at frame-font changes). This would at least give some hints
>   to users and would reduce the occurence of threads as the current one
>   (Probably low effort unless there is doc to write about it).
> 
> - Modifying Display-Fill-Column-Indicator in order to display two
>   vertical guides: the “global” vertical line that we currently have but
>   with the catch that it should hold true for the current font pitch,
>   pixel based, a single line at ~fill-column~ for normal characters,
>   independent from the character count. A “character count” indicator,
>   relative to each line, that may or may not be the same as the global
>   one, with different glyph and color, doesn't show up if the same as
>   the global one. It means the character count glyph may only be shown
>   with a variable-pitch font on a line that contains narrowed or wide
>   characters (This is the most controversial suggestion I'd say).
> 
> The benefit of the latter suggestion is that it still works the same
> with fixed-pitch font (the character count should actually be the same
> as the pixel size in this case), but it would be more expressive with
> variable-pitch, thus fixing the inconsistencies that currently occur.
> 
> The caveat is it brokes the implicit rule that the indicator is about
> the character count with variable-pitch font (as it would truly be about
> taken physical space on the screen). But the fact that a new character
> is displayed when it's not should (could?) make things clear.
> 
> I can make code suggestions for this last one (not right now though) if
> nobody else is willing to, and if there's no real objection to it.
> 
> What do you think?

I decided to go with the second alternative, and documented these
caveats in the doc string of display-fill-column-indicator-mode and in
the Emacs manual (on the emacs-29 branch).  I think extending this
feature as you suggest in the last alternative would be too much.
However, if someone wants to work on this feature, I'm okay with
considering such an extension.

So I'm leaving this bug open for now.

Thanks.





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

* bug#61677: 30.0.50; Display-Fill-Column-Indicator mode shifts with narrow characters near end of line
  2023-02-22 13:19     ` Eli Zaretskii
@ 2023-02-22 22:54       ` Adriel Dumas--Jondeau via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 5+ messages in thread
From: Adriel Dumas--Jondeau via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-02-22 22:54 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 61677

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


Eli Zaretskii <eliz@gnu.org> writes:

> I decided to go with the second alternative, and documented these
> caveats in the doc string of display-fill-column-indicator-mode and in
> the Emacs manual (on the emacs-29 branch).  I think extending this
> feature as you suggest in the last alternative would be too much.
> However, if someone wants to work on this feature, I'm okay with
> considering such an extension.
>
> So I'm leaving this bug open for now.
>
> Thanks.

Thank you for this quick and considerate take!

I won't work either on the third one anytime soon but I'll come back
here when (if) I start to do so.

-- 
Adriel

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 686 bytes --]

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

end of thread, other threads:[~2023-02-22 22:54 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-21 11:40 bug#61677: 30.0.50; Display-Fill-Column-Indicator mode shifts with narrow characters near end of line Adriel Dumas--Jondeau via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-02-21 15:00 ` Eli Zaretskii
2023-02-21 18:35   ` Adriel Dumas--Jondeau via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-02-22 13:19     ` Eli Zaretskii
2023-02-22 22:54       ` Adriel Dumas--Jondeau via Bug reports for GNU Emacs, the Swiss army knife of text editors

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.