GNU bug report logs - #78800
30.1; dired-re-perms is valid only with modes in ls-lisp-verbosity

Previous Next

Package: emacs;

Reported by: johanwclaesson <at> gmail.com

Date: Sun, 15 Jun 2025 14:00:06 UTC

Severity: normal

Found in version 30.1

To reply to this bug, email your comments to 78800 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#78800; Package emacs. (Sun, 15 Jun 2025 14:00:06 GMT) Full text and rfc822 format available.

Acknowledgement sent to johanwclaesson <at> gmail.com:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 15 Jun 2025 14:00:07 GMT) Full text and rfc822 format available.

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

From: Johan Claesson <johanwclaesson <at> bahnhof.se>
To: bug-gnu-emacs <at> gnu.org
Subject: 30.1; dired-re-perms is valid only with modes in ls-lisp-verbosity
Date: Sun, 15 Jun 2025 15:34:28 +0200

Hi,

I am writing about a very small corner case problem in dired in Emacs.
Since 83e0442 when modes is not a member of ls-lisp-verbosity then
ls-lisp will print the permissions in short form like "drwx".  This will
not match the dired-re-perms regexp which expect like "drwxrwxrwx". This
will cause a problem in dired for filenames that ends with a colon (:).
To reproduce from emacs -Q:

(require 'ls-lisp)
(setq ls-lisp-use-insert-directory-program nil
      ls-lisp-verbosity '(links uid))

And then visit a directory containing a file ending with a colon.  
Maybe the dired-re-perms could just be shortened/simplified to cover
this case as well?

Regards,

/Johan



In GNU Emacs 30.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.33,
 cairo version 1.16.0) of 2025-05-31 built on goblin
Repository revision: 8ac894e2246f25d2a2a97d866b10e6e0b0fede5a
Repository branch: HEAD
Windowing system distributor 'The X.Org Foundation', version 11.0.12101004
System Description: Ubuntu 22.04.5 LTS

Configured using:
 'configure --with-x-toolkit=gtk3 --without-compress-install
 --with-modules PKG_CONFIG_PATH=/home/jcl/usr/lib/pkgconfig'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP
NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM 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_US.UTF-8
  value of $XMODIFIERS: @im=none
  locale-coding-system: utf-8-unix

Major mode: Term

Minor modes in effect:
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  hexl-follow-ascii: t
  display-time-mode: t
  minibuffer-depth-indicate-mode: t
  save-place-mode: t
  minibuffer-electric-default-mode: t
  icomplete-mode: t
  windmove-mode: t
  emms-mode-line-mode: t
  emms-playing-time-display-mode: t
  emms-playing-time-mode: t
  winner-mode: t
  ido-everywhere: t
  which-function-mode: t
  server-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-layout-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  global-prettify-symbols-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  minibuffer-regexp-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  temp-buffer-resize-mode: t

Load-path shadows:
/home/jcl/elpa/magit-4.3.5/magit-autorevert hides /home/jcl/elpa/magit-section-4.3.5/magit-autorevert
/home/jcl/elpa/magit-4.3.5/magit-dired hides /home/jcl/elpa/magit-section-4.3.5/magit-dired
/home/jcl/elpa/transient-0.8.8/transient hides /home/jcl/build/emacs-stable/lisp/transient

Features:
(shadow emacsbug help-fns radix-tree bug-reference flow-fill shr-color
gnus-cite mm-archive mail-extr textsec uni-scripts idna-mapping
ucs-normalize uni-confusable textsec-check gnus-async char-fold misearch
multi-isearch pulse time-stamp check-declare smiley jcl-replace
jcl-games-init mule-util cal-iso org-indent oc-basic ol-eww ol-rmail
ol-mhe ol-irc ol-info ol-gnus nnselect ol-docview doc-view jka-compr
ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi jcl-renegade-goblin
jcl-home-boot network-stream erlang-test jcl-load jcl-magit-init
magit-submodule 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 magit-diff smerge-mode diff
git-commit log-edit pcvs-util magit-core magit-autorevert magit-margin
magit-transient magit-process with-editor magit-mode benchmark magit-git
magit-base magit-section crm llama transient edmacro jcl-billboard-init
jcl-dir-local-init jcl-rfc-init rfcview goto-addr jcl-file-cache-test
jcl-file-cache-init jcl-package-lint-init package-lint let-alist finder
jcl-elisp-init profiler jcl-grep-init jcl-abbrev-init jcl-ediff-init
jcl-term-init jcl-erlang-init erldoc jcl-midnite-init jcl-midnite
jcl-mailme midnight jcl-picpocket-init picpocket-test jcl-ido-init
jcl-dired-init image-file image-converter image-dired image-dired-tags
image-dired-external image-dired-util image-mode find-dired ls-lisp
wdired jcl-register-init jcl-command-subset-init jcl-generic-init
generic-x jcl-eww-init eww url-queue jcl-org-init ob-latex ox-beamer
ox-odt rng-loc rng-uri rng-parse rng-match rng-pttrn nxml-parse nxml-ns
nxml-enc xmltok nxml-util ox-latex ox-icalendar ox-html ox-ascii
ox-publish ox org-attach org-feed org-capture jcl-shell-init jcl-c-init
cwarn jcl-modes-init hexl checkdoc lisp-mnt vc-dir vc vc-git
vc-dispatcher calc calc-loaddefs rect calc-macs proced nroff-mode table
picture markdown-mode color autoconf autoconf-mode make-mode python
jcl-ruby inf-ruby ruby-mode grep jcl-elpa-init ffap view jcl-global-init
wc-mode time printing ps-print ps-print-loaddefs lpr mb-depth saveplace
face-remap minibuf-eldef icomplete jcl-keys-init kmacro diff-mode
track-changes jcl-file-cache filecache jcl-imenu jcl-wesnoth
wesnoth-mode wesnoth-wml-data wesnoth-update jcl-erlang jcl-picpocket
jcl-goblin fuzzy-match jcl-ediff ediff ediff-merg ediff-mult ediff-wind
ediff-diff ediff-help ediff-init ediff-util jcl-elisp jcl-grep edebug
jcl-stumpwm jcl-org jcl-keys tramp trampver tramp-integration files-x
tramp-message tramp-compat tramp-loaddefs windmove jcl-debbugs-init
debbugs-org debbugs-gnu add-log debbugs soap-client url-http url-auth
url-gw nsm rng-xsd rng-dt rng-util xsd-regexp debbugs-compat
jcl-duff-init jcl-isearch duff jcl-bugfix loadhist
jcl-bugfix-complete-at-eob jcl-bugfix-xref jcl-template jcl-copyright
jcl-template-lib cperl-mode facemenu cc-mode cc-fonts cc-guess cc-menus
cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs erlang tempo align
jcl-register jcl-term ange-ftp jcl-advice jcl-command-subset jcl-motion
jcl-safe-init jcl-site-start jpt-mode erlang-start gnus-ml cursor-sensor
qp nndraft nnmh nnfolder nnml jcl-master jcl-status jcl-buffer-init
org-agenda org-element org-persist xdg org-id org-element-ast inline
avl-tree org-refile org ob ob-tangle ob-ref ob-lob ob-table ob-exp
org-macro org-src ob-comint org-pcomplete org-list org-footnote
org-faces org-entities ob-emacs-lisp ob-core ob-eval org-cycle org-table
org-keys oc org-loaddefs ol org-fold org-fold-core org-compat
org-version org-macs autorevert filenotify jcl-calendar-init appt
jcl-calendar holidays holiday-loaddefs diary-lib diary-loaddefs cal-menu
calendar cal-loaddefs jcl-emms-init emms-idapi-browser emms-idapi
emms-idapi-musicbrainz emms-mpris emms-playlist-limit emms-i18n
emms-history emms-score emms-stream-info emms-metaplaylist-mode
emms-bookmarks emms-cue emms-mode-line-icon emms-browser sort
emms-volume emms-volume-mpv emms-volume-sndioctl emms-volume-mixerctl
emms-volume-pulse emms-volume-amixer emms-playlist-sort emms-last-played
emms-player-xine emms-player-mpd tq emms-streams emms-show-all
emms-tag-editor format-spec emms-tag-tracktag emms-mark emms-cache
emms-info-native emms-info-native-spc emms-info-native-mp3
emms-info-native-ogg emms-info-native-opus emms-info-native-flac
emms-info-native-vorbis bindat emms-info-exiftool emms-info-tinytag
emms-info-metaflac emms-info-opusinfo emms-info-ogginfo
emms-info-mp3info emms-player-vlc emms-player-mpv emms-player-mplayer
jcl-emms emms-mode-line emms-librefm-stream emms-librefm-scrobbler
emms-playing-time emms-info emms-later-do emms-playlist-mode
emms-source-playlist emms-setup emms-lyrics emms-url emms-source-file
locate emms-player-simple emms emms-compat jcl-gnus-init
jcl-swedish-postfix quail jcl-gnus jcl-dired dired-aux dired-x mm-url
gnus-topic gnus-agent gnus-srvr gnus-score score-mode nnvirtual nntp
gnus-cache gnus-msg 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 xml gnus-cloud nnimap nnmail
mail-source utf7 nnoo parse-time iso8601 gnus-spec gnus-int gnus-range
gnus-win message yank-media puny rfc822 mml mml-sec epa derived epg
rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader gnus nnheader gnus-util range wid-edit
jcl-boot jcl-slime-init slime-fancy slime-indentation slime-cl-indent
cl-indent slime-trace-dialog slime-fontifying-fu slime-package-fu
slime-references slime-compiler-notes-tree slime-scratch
slime-presentations slime-macrostep macrostep compat slime-mdot-fu
slime-enclosing-context slime-fuzzy slime-fancy-trace
slime-fancy-inspector slime-c-p-c slime-editing-commands slime-autodoc
slime-repl slime-parse jcl-misc hippie-exp jcl-ert picpocket exif
jcl-windows jcl-buffer jcl-compile ldap whitespace time-date winner ido
num3-mode ispell find-lisp ert ewoc debug backtrace find-func slime
easy-mmode apropos compile text-property-search etags fileloop generator
xref project arc-mode archive-mode noutline outline pp hyperspec
thingatpt jcl-face hi-lock dired dired-loaddefs which-func imenu hl-line
jcl-times-init comp comp-cstr cl-extra help-mode warnings comp-run
comp-common advice smtpmail sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils fortune jcl-compat-init jcl-util jcl-times server
term disp-table shell pcomplete ehelp comint ansi-osc ansi-color ring
sh-script rx smie treesit executable jcl-early-boot-init jcl-load-path
finder-inf auctex-autoloads tex-site debbugs-autoloads emms-autoloads
haskell-mode-autoloads inf-ruby-autoloads magit-autoloads pcase
magit-section-autoloads llama-autoloads markdown-mode-autoloads
num3-mode-autoloads package-lint-autoloads slime-autoloads
macrostep-autoloads transient-autoloads info with-editor-autoloads
package browse-url url url-proxy url-privacy url-expand url-methods
url-history url-cookie generate-lisp-file url-domsuf url-util mailcap
url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs icons
password-cache json subr-x map byte-opt gv bytecomp byte-compile
url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren
electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/x-win x-win term/common-win x-dnd touch-screen 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 lcms2
dynamic-setting system-font-setting font-render-setting cairo gtk
x-toolkit xinput2 x multi-tty move-toolbar make-network-process
native-compile emacs)

Memory information:
((conses 16 1444353 241767) (symbols 48 94949 1)
 (strings 32 398474 19995) (string-bytes 1 12139873)
 (vectors 16 137373) (vector-slots 8 2607284 181265)
 (floats 8 1291 7041) (intervals 56 33448 420) (buffers 992 68))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78800; Package emacs. (Mon, 16 Jun 2025 09:37:01 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: johanwclaesson <at> gmail.com, Sam Steingold <sds <at> gnu.org>
Cc: 78800 <at> debbugs.gnu.org
Subject: Re: bug#78800: 30.1;
 dired-re-perms is valid only with modes in ls-lisp-verbosity
Date: Mon, 16 Jun 2025 12:36:39 +0300
> From: Johan Claesson <johanwclaesson <at> bahnhof.se>
> Date: Sun, 15 Jun 2025 15:34:28 +0200
> 
> I am writing about a very small corner case problem in dired in Emacs.
> Since 83e0442 when modes is not a member of ls-lisp-verbosity then
> ls-lisp will print the permissions in short form like "drwx".  This will
> not match the dired-re-perms regexp which expect like "drwxrwxrwx". This
> will cause a problem in dired for filenames that ends with a colon (:).
> To reproduce from emacs -Q:
> 
> (require 'ls-lisp)
> (setq ls-lisp-use-insert-directory-program nil
>       ls-lisp-verbosity '(links uid))
> 
> And then visit a directory containing a file ending with a colon.  
> Maybe the dired-re-perms could just be shortened/simplified to cover
> this case as well?

It is not easy to modify the value of dired-re-perms, because it is
also used in dired-font-lock-keywords, whose value is set when
dired.el is first loaded.

I must say that the feature introduced by 83e0442 is problematic, when
used on Posix systems that could have files with names ending in a
colon.  For that reason, I don't recommend using it on Posix systems.
Why are you using it?

Adding Sam to the discussion, who added that feature, in case he could
have comments or suggestions.




This bug report was last modified 2 days ago.

Previous Next


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