Subject: 31.0.50; global-visual-wrap-prefix-mode misaligns org tables
From: Arthur Elsenaar <[email-masked]>
To: "[email-masked]" <[email-masked]>
Date: Sat, 19 Oct 2024 09:52:01 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

With emacs -q, an org file is loaded with this content:

:PROPERTIES:
:ID:       20241018T232141
:END:
#+title: test
#+date: [2024-10-18 Fri 23:22]
#+filetags: project

* Test 123

| head  | 1 | 2 | 3 | 4 |
|-------+---+---+---+---|
| apple |   |   |   |   |
| orange |   |   |   |   |
| pear  |   |   |   |   |
| banana |   |   |   |   |

Table cells are misaligned.
When one hits <tab> within a cell, the cells align. However when
global-visual-wrap-prefix-mode is enabled, the cells get
misaligned. It appears a character in the first column gets attributes
added that makes the character span more than one space.

In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.33, cairo version 1.16.0) of 2024-10-04 built on lae
Repository revision: 1094c3f91477e622e064fa52de7fd0f361e54d9b
Repository branch: master
System Description: Pop!_OS 22.04 LTS

Configured using:
 'configure --with-cairo --with-file-notification=inotify --with-gnutls
 --with-harfbuzz --with-mailutils --with-native-compilation --with-pgtk
 --with-tree-sitter=ifavailable --with-rsvg --with-xwidgets=no
 --with-x=yes --with-x-toolkit=yes --with-xinput2'

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

Important settings:
  value of $LC_MONETARY: en_GB.UTF-8
  value of $LC_NUMERIC: en_GB.UTF-8
  value of $LC_TIME: en_GB.UTF-8
  value of $LANG: en_GB.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Org

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

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug visual-wrap oc-basic cl-extra help-mode
org-element org-persist org-id org-refile org-element-ast inline
avl-tree generator ol-eww eww xdg url-queue mm-url ol-rmail ol-mhe
ol-irc ol-info ol-gnus nnselect gnus-art mm-uu mml2015 mm-view mml-smime
smime gnutls dig gnus-sum shr pixel-fill kinsoku url-file svg dom
gnus-group gnus-undo gnus-start gnus-dbus dbus compile comp-run
comp-common xml gnus-cloud nnimap nnmail browse-url url url-proxy
url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util url-parse auth-source cl-seq
eieio eieio-core cl-macs json map url-vars mail-source utf7 nnoo
parse-time gnus-spec gnus-int gnus-range message sendmail mailcap
yank-media puny rfc822 mml mml-sec password-cache epa derived epg
rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231
rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus
nnheader gnus-util text-property-search mail-utils range mm-util
mail-prsvr wid-edit ol-docview doc-view byte-opt gv bytecomp
byte-compile filenotify jka-compr image-mode exif dired dired-loaddefs
ol-bibtex bibtex iso8601 ol-bbdb ol-w3m ol-doi org-link-doi org ob
ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src sh-script smie
treesit executable ob-comint org-pcomplete pcomplete comint ansi-osc
ansi-color ring org-list org-footnote org-faces org-entities time-date
subr-x noutline outline icons org-version ob-emacs-lisp ob-core ob-eval
org-cycle org-table ol rx org-fold org-fold-core org-keys oc
org-loaddefs thingatpt find-func cal-menu calendar cal-loaddefs
org-compat org-macs format-spec cl-loaddefs cl-lib rmc iso-transl
tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel term/pgtk-win pgtk-win term/common-win
touch-screen pgtk-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode lisp-mode prog-mode register
page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer nadvice seq simple cl-generic indonesian philippine
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads dbusbind inotify dynamic-setting system-font-setting
font-render-setting cairo gtk pgtk lcms2 multi-tty move-toolbar
make-network-process native-compile emacs)

Memory information:
((conses 16 369829 25100) (symbols 48 21220 0)
 (strings 32 114566 3265) (string-bytes 1 3516689) (vectors 16 61904)
 (vector-slots 8 640205 12633) (floats 8 594 2) (intervals 56 1144 16)
 (buffers 992 17))