GNU bug report logs -
#75877
30.0.91; dired-omit-expunge embeds unquoted filename in format string
Previous Next
Reported by: Derek Upham <derek_upham <at> mailfence.com>
Date: Sun, 26 Jan 2025 18:27:02 UTC
Severity: normal
Found in version 30.0.91
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Wed, 05 Feb 2025 15:49:46 +0200
with message-id <86msf08ps5.fsf <at> gnu.org>
and subject line Re: bug#75877: 30.0.91; dired-omit-expunge embeds unquoted filename in format string
has caused the debbugs.gnu.org bug report #75877,
regarding 30.0.91; dired-omit-expunge embeds unquoted filename in format string
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
75877: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=75877
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Looking at “dired-omit-expunge” in dired-x.el, in this block:
(setq count (+ count
(dired-do-kill-lines
nil
(if dired-omit-verbose
(format "Omitted %%d line%%s in %s"
(abbreviate-file-name
dired-directory))
"")
init-count)))
Here that “format” call generates a format template, such that
“dired-do-kill-lines” can invoke “message” with that text plus
count
information.
If the directory name contains embedded percentage characters,
then the
template ends up with extra parameter slots. The call to
“message”
fails with an error and Dired does not present the directory.
(error "Not enough arguments for format string")
(In case someone is curious “Why put percentages in the names at
all?”,
I use it to map those directories 1:1 with URLs/websites.)
In GNU Emacs 30.0.91 (build 2, x86_64-pc-linux-gnu, GTK+ Version
2.24.33, cairo version 1.18.2) of 2024-10-19 built on
priss.frightenedpiglet.com
Windowing system distributor 'The X.Org Foundation', version
11.0.12101014
System Description: Debian GNU/Linux trixie/sid
--
Derek Upham
derek_upham <at> mailfence.com
[Message part 3 (message/rfc822, inline)]
> From: Derek Upham <derek_upham <at> mailfence.com>
> Date: Tue, 04 Feb 2025 15:40:12 -0800
>
> Eli Zaretskii <eliz <at> gnu.org> writes:
>
> > Thanks. Is the below the right fix?
> >
> > diff --git a/lisp/dired-x.el b/lisp/dired-x.el
> > index 4a05f60..89390a4 100644
> > --- a/lisp/dired-x.el
> > +++ b/lisp/dired-x.el
> > @@ -498,8 +498,10 @@ dired-omit-expunge
> > nil
> > (if dired-omit-verbose
> > (format "Omitted %%d line%%s
> > in %s"
> > -
> > (abbreviate-file-name
> > - dired-directory))
> > +
> > (replace-regexp-in-string
> > + "%" "%%"
> > +
> > (abbreviate-file-name
> > + dired-directory)))
> > "")
> > init-count)))
> > (force-mode-line-update))))
>
> Yeah, that patch will handle that use case. Thanks.
Thanks, installed on the master branch, and closing the bug.
This bug report was last modified 110 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.