Subject: 29.0.50; Off-by-one alignment with ls-lisp

From: Rudolf Adamkovič <[email-masked]>
Date: Fri, 11 Feb 2022 09:47:54 +0100

It seems that `ls-lisp' does not always align human readable output
correctly.  This causes misaligned output in Dired.

An example configuration:

(with-eval-after-load 'dired
  (require 'ls-lisp)
  (setq-default dired-listing-switches
                (string-join '("--all"
                               "--group-directories-first"
                               "--human-readable"
                               "--no-group"))))

An example of the misalignment:

[…]
-rw-rw-rw-  1 salutis   2.2k 12-02 11:47 citations-20211202.bibtex
-rw-r--r--  1 salutis   378M 12-27 11:15 debian-11.2.0-amd64-netinst.iso
-rw-r--r--  1 salutis 1016.1k 12-23 17:05 default
-rw-r--r--  1 salutis   5.2M 12-23 00:00 dejavu-fonts-ttf-2.37.tar.bz2
-rw-r--r--  1 salutis 115.1k 01-06 21:15 ethics.pdf
[…]

Expected:  The file "default" aligned with other files.
Actual:    The file "default" misaligned with other files.

Thank you.

Rudy

In GNU Emacs 29.0.50 (build 5, x86_64-apple-darwin21.2.0, NS appkit-2113.20 Version 12.1 (Build 21C52))
 of 2022-02-06 built on Workstation.local
Repository revision: bff8354ec4d63a5073c12fc531f8584ed06f0ebc
Repository branch: master
Windowing system distributor 'Apple', version 10.3.2113
System Description:  macOS 12.1

Configured using:
 'configure --with-json --with-native-compilation'

Configured features:
ACL DBUS GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP
NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS WEBP XIM ZLIB

Important settings:
  value of $LC_ALL: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Dired by name

Minor modes in effect:
  hl-line-mode: t
  dired-omit-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  TeX-PDF-mode: t
  shell-dirtrack-mode: t
  corfu-global-mode: t
  corfu-mode: t
  vertico-mouse-mode: t
  vertico-mode: t
  marginalia-mode: t
  global-diff-hl-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  global-hl-todo-mode: t
  electric-pair-mode: t
  global-subword-mode: t
  subword-mode: t
  save-place-mode: t
  global-auto-revert-mode: t
  delete-selection-mode: t
  savehist-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-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
  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:
/Users/salutis/.emacs.d/elpa/transient-20220130.1941/transient hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/transient

Features:
(shadow sort bbdb-message mail-extr emacsbug sendmail rng-xsd xsd-regexp
rng-cmpct rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse
rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode nxml-outln
nxml-rap sgml-mode facemenu nxml-util nxml-enc xmltok rect
consult-vertico consult recentf tree-widget tramp-cmds goto-addr vc-mtn
vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs bug-reference vterm
tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat
ls-lisp color term ehelp vterm-module term/xterm xterm dired-aux hl-line
dired-x char-fold orderless magit-extras sh-script smie executable
face-remap magit-bookmark magit-submodule magit-obsolete 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
git-commit log-edit add-log magit-core magit-autorevert magit-margin
magit-transient magit-process with-editor server magit-mode transient
magit-git magit-section magit-utils dash cdlatex preview tex-buf
font-latex latex latex-flymake flymake-proc flymake tex-ispell tex-style
tex crm texmathp tex-mode compile shell flyspell ispell image-file
image-converter disp-table cursor-sensor project
display-fill-column-indicator paredit edmacro kmacro bbdb bbdb-site
timezone modus-vivendi-theme modus-operandi-theme modus-themes corfu
vertico-mouse vertico marginalia pdf-loader diff-hl log-view pcvs-util
vc-dir ewoc vc diminish yasnippet hl-todo fortune lingua-franca
elec-pair ob-sqlite ob-sql ob-C cc-mode cc-fonts cc-guess cc-menus
cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs ob-R org-clock
cap-words superword subword saveplace autorevert filenotify comp
comp-cstr warnings delsel savehist exec-path-from-shell finder-inf
elfeed-link elfeed-show elfeed-search elfeed-csv elfeed elfeed-curl
elfeed-log xml-query bookmark pp elfeed-db elfeed-lib vc-git diff-mode
vc-dispatcher ffap org-element avl-tree generator ol-eww eww xdg
url-queue thingatpt mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus
nnselect gnus-search eieio-opt speedbar ezimage dframe gnus-art mm-uu
mml2015 mm-view mml-smime smime dig gnus-sum shr pixel-fill kinsoku svg
dom gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap
nnmail mail-source utf7 netrc nnoo parse-time gnus-spec gnus-int
gnus-range message yank-media rmc puny rfc822 mml mml-sec 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 jka-compr image-mode exif dired
dired-loaddefs ol-bibtex ol-bbdb ol-w3m ol-doi org-link-doi cl-extra org
ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote
org-src ob-comint org-pcomplete pcomplete comint ansi-color org-list
org-faces org-entities noutline outline easy-mmode org-version
ob-emacs-lisp ob-core ob-eval org-table oc-basic bibtex iso8601
time-date ol rx org-keys oc org-compat advice org-macs org-loaddefs
format-spec find-func cal-menu calendar cal-loaddefs tex-site
geiser-impl help-fns radix-tree help-mode geiser-custom geiser-base ring
info package browse-url url url-proxy url-privacy url-expand url-methods
url-history url-cookie url-domsuf url-util mailcap url-handlers
url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache json map url-vars seq gv subr-x byte-opt bytecomp
byte-compile cconv cl-loaddefs cl-lib iso-transl tooltip eldoc paren
electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd
fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow
isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer cl-generic cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget keymap hashtable-print-readable backquote threads
dbusbind kqueue cocoa ns lcms2 multi-tty make-network-process
native-compile emacs)

Memory information:
((conses 16 911664 54613)
 (symbols 48 62632 5)
 (strings 32 250024 10965)
 (string-bytes 1 7804729)
 (vectors 16 97690)
 (vector-slots 8 2444937 84538)
 (floats 8 674 635)
 (intervals 56 8708 4083)
 (buffers 992 26))

-- 
"Mathematics takes us still further from what is human into the region
of absolute necessity, to which not only the actual world, but every
possible world, must conform."
-- Bertrand Russell, 1902

Rudolf Adamkovič <[email-masked]> [he/him]
Studenohorská 25
84103 Bratislava
Slovakia