GNU bug report logs - #79528
30.1; dired errors while handling file names embedding newlines

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Francesco Potortì <pot@HIDDEN>; dated Sun, 28 Sep 2025 09:51:01 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 79528 <at> debbugs.gnu.org:


Received: (at 79528) by debbugs.gnu.org; 20 Oct 2025 11:26:35 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Oct 20 07:26:35 2025
Received: from localhost ([127.0.0.1]:44286 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vAo26-0008WV-Qz
	for submit <at> debbugs.gnu.org; Mon, 20 Oct 2025 07:26:35 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:58500)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vAo24-0008WD-Ez
 for 79528 <at> debbugs.gnu.org; Mon, 20 Oct 2025 07:26:33 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1vAo1w-0007uX-JF; Mon, 20 Oct 2025 07:26:25 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From:
 Date; bh=6ZXOb5K+sFk17cdUqC4hQY6yogxhS62Clv1+XRvQFco=; b=QevMJ/KPSND4dgcWTY/M
 Hvmteqilly6q1oojfzmf/F/C2QheJj2iC/UlYvt9bWNrZlBPEUYBIwZBomm0hrE8qoxrNIRh7446p
 eejVbQ8U2w+xYKMa6HYVe/q1xj2reOYzC/9uEUvSsUVAfjf1QKIEoN21RTJ5ewyxU5epxjWR1Kodw
 lYVGZWGThQ4JW5JY6/N8oz26v82MXYr0wX4Y6Jd4d67Ia10Q94owFsJt5Y4+Sruwr5y/Az7Xjv9Vh
 kpKVEOXF2PvaNIEh5Q3v4JmRoJMDnH4sZF58BTUUi8QJzaX7VNnojc/orMip5RParIjlXvHP9LizU
 brU1PQ8gPQjyCA==;
Date: Mon, 20 Oct 2025 14:25:48 +0300
Message-Id: <86tsztyfur.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Stephen Berman <stephen.berman@HIDDEN>
In-Reply-To: <87ikgaigha.fsf@HIDDEN> (message from Stephen Berman on Mon, 20
 Oct 2025 02:06:41 +0200)
Subject: Re: bug#79528: 30.1; dired errors while handling file names
 embedding newlines
References: <E1v2o26-0000000BTsr-2GVJ@HIDDEN>
 <87seg6uc71.fsf@HIDDEN> <E1v2oOc-0000000BV25-1pHC@HIDDEN>
 <87o6quu9tu.fsf@HIDDEN> <86cy73f4ys.fsf@HIDDEN>
 <87v7kl4qzh.fsf@HIDDEN> <868qhh5x42.fsf@HIDDEN>
 <87cy6qkeke.fsf@HIDDEN> <861pn64xlz.fsf@HIDDEN>
 <87jz0x7f7z.fsf@HIDDEN> <86bjm936yu.fsf@HIDDEN>
 <87sefilulw.fsf@HIDDEN> <86ecr2gj51.fsf@HIDDEN>
 <87sefg2kml.fsf@HIDDEN> <86ms5o15i8.fsf@HIDDEN>
 <87ms5nhxr8.fsf@HIDDEN> <86frbfyq8g.fsf@HIDDEN>
 <87ikgaigha.fsf@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79528
Cc: pot@HIDDEN, 79528 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Stephen Berman <stephen.berman@HIDDEN>
> Cc: pot@HIDDEN,  79528 <at> debbugs.gnu.org
> Date: Mon, 20 Oct 2025 02:06:41 +0200
> 
> On Sun, 19 Oct 2025 16:29:19 +0300 Eli Zaretskii <eliz@HIDDEN> wrote:
> 
> >> From: Stephen Berman <stephen.berman@HIDDEN>
> >> Cc: pot@HIDDEN,  79528 <at> debbugs.gnu.org
> >> Date: Sun, 19 Oct 2025 14:38:51 +0200
> >> 
> >> On Sat, 18 Oct 2025 20:31:11 +0300 Eli Zaretskii <eliz@HIDDEN> wrote:
> >> 
> >> > If you use setopt there, won't a subsequent "C-h v" that the variable
> >> > was changed outside of Customize?
> >> 
> >> Yes, of course (assuming you meant `M-x customize-option'), but is that
> >> a problem?
> >
> > It is known to confuse users.
> 
> Documenting it in the Emacs manual could help to allay the confusion.
> If you agree, I can prepare a patch.

I don't mind documenting it, but very much doubt it will remove the
confusion.  Users are unlikely to hit the manual when Emacs tells them
a user option was changed "outside of Customize" without their
knowledge.

> > The primary use of setopt is by users, either interactively or in
> > their init files.  Programs aren't supposed to do that.
> 
> Ok, I think I finally understand your objection now.  I had been
> thinking that since the buttonized text in the warning is what the user
> can type in the minibuffer to change the display of newlines in file
> names, then it's ok to use the same `setopt' call in the button's
> callback function.  But since the callback isn't directly executed by
> the user, it should not use `setopt', right?  So now I've implemented
> the callback as follows, using some code from `dired--toggle-b-switch':
> 
>   (buttonize "M-: (setopt dired-auto-toggle-b-switch t)"
>              (lambda (_)
>                (pop-to-buffer dir)
>                (when (dired--filename-with-newline-p)
>                  (unless (dired-switches-escape-p dired-actual-switches)
>                    (setq dired-actual-switches
>                          (concat dired-actual-switches " -b"))
>                    (dired-revert))))
>              nil "mouse-2: Change newline display")
> 
> This does not touch the user option `dired-auto-toggle-b-switch', so if
> you call `customize-option' on it after pressing the button, the
> Customize buffer will show the default value and STANDARD state.  But
> consequently, the change in the newline display affects only the current
> Dired buffer, whereas setopting `dired-auto-toggle-b-switch' to t
> affects all Dired buffers.  I've adjusted the warning text to reflect
> this difference:
> 
>   ⛔ Warning (dired): Literal newline in file name.
>   This Dired buffer displays a file name containing a literal newline
>   character.  Executing Dired operations on files displayed this way may
>   fail and signal an error.  To avoid this you can temporarily change the
>   display for all Dired buffers, so that newlines in file names appear as
>   "\n", by entering ‘M-: (setopt dired-auto-toggle-b-switch t)’
>   in the minibuffer (or just for this Dired buffer by clicking or
>   pressing RETURN on the highlighted text).
>   See ‘(emacs) Dired Enter’ for other alternatives and more information.
> 
> Are these changes acceptable?

Yes, thanks.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79528; Package emacs. Full text available.

Message received at 79528 <at> debbugs.gnu.org:


Received: (at 79528) by debbugs.gnu.org; 20 Oct 2025 00:07:11 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Oct 19 20:07:11 2025
Received: from localhost ([127.0.0.1]:41835 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vAdQc-0006Hw-Le
	for submit <at> debbugs.gnu.org; Sun, 19 Oct 2025 20:07:11 -0400
Received: from mout.gmx.net ([212.227.17.20]:33233)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <stephen.berman@HIDDEN>)
 id 1vAdQa-0006HS-Cn
 for 79528 <at> debbugs.gnu.org; Sun, 19 Oct 2025 20:07:09 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net;
 s=s31663417; t=1760918820; x=1761523620; i=stephen.berman@HIDDEN;
 bh=zDbex6RI9FbifZthSrzWh7i5omHgBgGsTxNBz/bg/fc=;
 h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date:
 Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:cc:
 content-transfer-encoding:content-type:date:from:message-id:
 mime-version:reply-to:subject:to;
 b=PhX5HwI/S2Fjn6+e+WEeQj/c1mpiNC5wgyLGcvQ10TwqxlfBD9UTQhlzbCd5Tgws
 14zfwFh0jrldPIGT7+ibb6TiAp0F+QI+E17Y3MW/pTKecrVOtry2IK74MhuoWZB92
 KMedSILIf7DxzWokWAmlkiDpqHSow+IAIPXweWbmjlboqy6s6FJuabZ9BaHsj+lw9
 CuA7C2E84mtZXchEBuj6a5mhf6s+vayRCjGPW+DyBJYnWflhCfmZUF696nuOylLQO
 b0W6qx6CTAQi4od58wVyVcDFZpinnUk8BlVarMjWHAWheSWYPDY9nj1KoH7rL37c5
 ppuzyUqZ/adg1THPAw==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from strobelfs2 ([88.130.63.167]) by mail.gmx.net (mrgmx104
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MMXUN-1us8hf0wxL-00XEAk; Mon, 20
 Oct 2025 02:07:00 +0200
From: Stephen Berman <stephen.berman@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#79528: 30.1; dired errors while handling file names
 embedding newlines
In-Reply-To: <86frbfyq8g.fsf@HIDDEN>
References: <E1v2o26-0000000BTsr-2GVJ@HIDDEN>
 <87seg6uc71.fsf@HIDDEN> <E1v2oOc-0000000BV25-1pHC@HIDDEN>
 <87o6quu9tu.fsf@HIDDEN> <86cy73f4ys.fsf@HIDDEN>
 <87v7kl4qzh.fsf@HIDDEN> <868qhh5x42.fsf@HIDDEN>
 <87cy6qkeke.fsf@HIDDEN> <861pn64xlz.fsf@HIDDEN>
 <87jz0x7f7z.fsf@HIDDEN> <86bjm936yu.fsf@HIDDEN>
 <87sefilulw.fsf@HIDDEN> <86ecr2gj51.fsf@HIDDEN>
 <87sefg2kml.fsf@HIDDEN> <86ms5o15i8.fsf@HIDDEN>
 <87ms5nhxr8.fsf@HIDDEN> <86frbfyq8g.fsf@HIDDEN>
Date: Mon, 20 Oct 2025 02:06:41 +0200
Message-ID: <87ikgaigha.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:mqm/bjclAItpYMzP8y6dPASa4UxFxIVRKKrKvzw1wPJDLin8PoF
 FZITe/ovGACnmFk33wAyTqsiWqVR7HZt/tPgTh/vhJRQYqDy1vt7L1G8iwoubjuq+OOQWP7
 LAMFB+fK2mu3RQWWlfaGGu9EWrAr0S2qjBzH99AysghsXNPnUGflazX/BNZXgJVRM3oBXvo
 UXljhTY3woQX/7uFB69fw==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:t7E3S52l8GI=;4svjNoIqJ1TcjNIPa+27q2Yq4if
 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
X-Spam-Score: 2.8 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  On Sun, 19 Oct 2025 16:29:19 +0300 Eli Zaretskii wrote: >>
 From: Stephen Berman >> Cc: pot@HIDDEN, 79528 <at> debbugs.gnu.org >> Date:
 Sun, 19 Oct 2025 14:38:51 +0200 >> >> On Sat, 18 Oct 2025 20:31:11 +0300
 Eli Zaretskii wrote: >> >> > If you use setop [...] 
 Content analysis details:   (2.8 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The
 query to Validity was blocked.  See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243
 for more information.
 [212.227.17.20 listed in bl.score.senderscore.com]
 0.0 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED RBL: ADMINISTRATOR NOTICE:
 The query to Validity was blocked.  See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243
 for more information.
 [212.227.17.20 listed in sa-accredit.habeas.com]
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (stephen.berman[at]gmx.net)
 -0.0 SPF_PASS               SPF: sender matches SPF record
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [88.130.63.167 listed in zen.spamhaus.org]
 -0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
 [212.227.17.20 listed in wl.mailspike.net]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [212.227.17.20 listed in list.dnswl.org]
 -0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
X-Debbugs-Envelope-To: 79528
Cc: pot@HIDDEN, 79528 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.8 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  On Sun, 19 Oct 2025 16:29:19 +0300 Eli Zaretskii wrote: >>
    From: Stephen Berman >> Cc: pot@HIDDEN, 79528 <at> debbugs.gnu.org >> Date:
    Sun, 19 Oct 2025 14:38:51 +0200 >> >> On Sat, 18 Oct 2025 20:31:11 +0300
   Eli Zaretskii wrote: >> >> > If you use setop [...] 
 
 Content analysis details:   (1.8 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
                             [212.227.17.20 listed in wl.mailspike.net]
  0.0 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED RBL: ADMINISTRATOR NOTICE:
                             The query to Validity was blocked.  See
                             https://knowledge.validity.com/hc/en-us/articles/20961730681243
                              for more information.
                             [212.227.17.20 listed in sa-accredit.habeas.com]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
                             low trust
                             [212.227.17.20 listed in list.dnswl.org]
  0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The
                             query to Validity was blocked.  See
                             https://knowledge.validity.com/hc/en-us/articles/20961730681243
                              for more information.
                             [212.227.17.20 listed in bl.score.senderscore.com]
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [88.130.63.167 listed in zen.spamhaus.org]
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (stephen.berman[at]gmx.net)
 -0.0 SPF_PASS               SPF: sender matches SPF record
 -0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager

On Sun, 19 Oct 2025 16:29:19 +0300 Eli Zaretskii <eliz@HIDDEN> wrote:

>> From: Stephen Berman <stephen.berman@HIDDEN>
>> Cc: pot@HIDDEN,  79528 <at> debbugs.gnu.org
>> Date: Sun, 19 Oct 2025 14:38:51 +0200
>>=20
>> On Sat, 18 Oct 2025 20:31:11 +0300 Eli Zaretskii <eliz@HIDDEN> wrote:
>>=20
>> > If you use setopt there, won't a subsequent "C-h v" that the variable
>> > was changed outside of Customize?
>>=20
>> Yes, of course (assuming you meant `M-x customize-option'), but is that
>> a problem?
>
> It is known to confuse users.

Documenting it in the Emacs manual could help to allay the confusion.
If you agree, I can prepare a patch.

>> That happens anytime you set a user option by any means
>> other than `customize-option' (or its alias `customize-variable').
>
> If the user uses setopt, that is okay, and should not cause confusion.
> But here Dired does that behind the user's back, so the user is not
> aware of the (temporary) change.
[...]
> The primary use of setopt is by users, either interactively or in
> their init files.  Programs aren't supposed to do that.

Ok, I think I finally understand your objection now.  I had been
thinking that since the buttonized text in the warning is what the user
can type in the minibuffer to change the display of newlines in file
names, then it's ok to use the same `setopt' call in the button's
callback function.  But since the callback isn't directly executed by
the user, it should not use `setopt', right?  So now I've implemented
the callback as follows, using some code from `dired--toggle-b-switch':

  (buttonize "M-: (setopt dired-auto-toggle-b-switch t)"
             (lambda (_)
               (pop-to-buffer dir)
               (when (dired--filename-with-newline-p)
                 (unless (dired-switches-escape-p dired-actual-switches)
                   (setq dired-actual-switches
                         (concat dired-actual-switches " -b"))
                   (dired-revert))))
             nil "mouse-2: Change newline display")

This does not touch the user option `dired-auto-toggle-b-switch', so if
you call `customize-option' on it after pressing the button, the
Customize buffer will show the default value and STANDARD state.  But
consequently, the change in the newline display affects only the current
Dired buffer, whereas setopting `dired-auto-toggle-b-switch' to t
affects all Dired buffers.  I've adjusted the warning text to reflect
this difference:

  =E2=9B=94 Warning (dired): Literal newline in file name.
  This Dired buffer displays a file name containing a literal newline
  character.  Executing Dired operations on files displayed this way may
  fail and signal an error.  To avoid this you can temporarily change the
  display for all Dired buffers, so that newlines in file names appear as
  "\n", by entering =E2=80=98M-: (setopt dired-auto-toggle-b-switch t)=E2=
=80=99
  in the minibuffer (or just for this Dired buffer by clicking or
  pressing RETURN on the highlighted text).
  See =E2=80=98(emacs) Dired Enter=E2=80=99 for other alternatives and more=
 information.

Are these changes acceptable?

Steve Berman




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79528; Package emacs. Full text available.

Message received at 79528 <at> debbugs.gnu.org:


Received: (at 79528) by debbugs.gnu.org; 19 Oct 2025 13:29:37 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Oct 19 09:29:37 2025
Received: from localhost ([127.0.0.1]:33204 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vATTc-0006wX-I3
	for submit <at> debbugs.gnu.org; Sun, 19 Oct 2025 09:29:36 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:34908)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vATTa-0006vZ-1b
 for 79528 <at> debbugs.gnu.org; Sun, 19 Oct 2025 09:29:34 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1vATTT-0005OJ-Ci; Sun, 19 Oct 2025 09:29:27 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=Gysg/jXXkOMblY6Ym/j36xiJK0WXBXTp2DEgv7PghyI=; b=CdZ/cmYZKfF4
 ROcT1HG2qF/FLPQB/uARJQMEzeS/Qgi53yP/WXUxEkqLyjN6AtkZh+qb+thjtpz8XXRJ7liUw8w4N
 C0vWht2jPQI/6aZCG5aJog4E4Ch+BhBXIv4KwPagNsBrAArMVK6AgLtE9Q2MSawpdJsy2xOLytG85
 +ADGDmZYvo+kYpv1rjt2YPEycvEk4mHyPnE9K1YQNehWDLJKNkaVpwnEYqf+LxsOusDDKyvMAIMUZ
 dQGEV7InNZqSwDm1gflEf9r0/gKf2yaXQSGNapYoa1zQKiF02hNY+l2kQSNVmOUfpmjCZxRZhU6Fz
 tJvnLzIsBaCz4EBSSe63oA==;
Date: Sun, 19 Oct 2025 16:29:19 +0300
Message-Id: <86frbfyq8g.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Stephen Berman <stephen.berman@HIDDEN>
In-Reply-To: <87ms5nhxr8.fsf@HIDDEN> (message from Stephen Berman on Sun, 19
 Oct 2025 14:38:51 +0200)
Subject: Re: bug#79528: 30.1; dired errors while handling file names
 embedding newlines
References: <E1v2o26-0000000BTsr-2GVJ@HIDDEN>
 <87seg6uc71.fsf@HIDDEN> <E1v2oOc-0000000BV25-1pHC@HIDDEN>
 <87o6quu9tu.fsf@HIDDEN> <86cy73f4ys.fsf@HIDDEN>
 <87v7kl4qzh.fsf@HIDDEN> <868qhh5x42.fsf@HIDDEN>
 <87cy6qkeke.fsf@HIDDEN> <861pn64xlz.fsf@HIDDEN>
 <87jz0x7f7z.fsf@HIDDEN> <86bjm936yu.fsf@HIDDEN>
 <87sefilulw.fsf@HIDDEN> <86ecr2gj51.fsf@HIDDEN>
 <87sefg2kml.fsf@HIDDEN> <86ms5o15i8.fsf@HIDDEN>
 <87ms5nhxr8.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79528
Cc: pot@HIDDEN, 79528 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Stephen Berman <stephen.berman@HIDDEN>
> Cc: pot@HIDDEN,  79528 <at> debbugs.gnu.org
> Date: Sun, 19 Oct 2025 14:38:51 +0200
> 
> On Sat, 18 Oct 2025 20:31:11 +0300 Eli Zaretskii <eliz@HIDDEN> wrote:
> 
> > If you use setopt there, won't a subsequent "C-h v" that the variable
> > was changed outside of Customize?
> 
> Yes, of course (assuming you meant `M-x customize-option'), but is that
> a problem?

It is known to confuse users.

> That happens anytime you set a user option by any means
> other than `customize-option' (or its alias `customize-variable').

If the user uses setopt, that is okay, and should not cause confusion.
But here Dired does that behind the user's back, so the user is not
aware of the (temporary) change.

> Yet while both `setopt' and `setq' are documented in the Emacs
> manual as alternatives to using the Customize interface, there is no
> mention that using them results in the "CHANGED outside Customize"
> state.

The primary use of setopt is by users, either interactively or in
their init files.  Programs aren't supposed to do that.

I won't insist, but I still think using a variable which is
initialized from the user option is cleaner.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79528; Package emacs. Full text available.

Message received at 79528 <at> debbugs.gnu.org:


Received: (at 79528) by debbugs.gnu.org; 19 Oct 2025 12:39:07 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Oct 19 08:39:07 2025
Received: from localhost ([127.0.0.1]:60954 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vASgk-0003aL-SY
	for submit <at> debbugs.gnu.org; Sun, 19 Oct 2025 08:39:07 -0400
Received: from mout.gmx.net ([212.227.15.18]:56701)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <stephen.berman@HIDDEN>)
 id 1vASgg-0003Ym-SA
 for 79528 <at> debbugs.gnu.org; Sun, 19 Oct 2025 08:39:05 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net;
 s=s31663417; t=1760877532; x=1761482332; i=stephen.berman@HIDDEN;
 bh=rv6fvaS6j/ldvIdzkzOGu+oyelqISycZubu6pPV1wEY=;
 h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date:
 Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:cc:
 content-transfer-encoding:content-type:date:from:message-id:
 mime-version:reply-to:subject:to;
 b=sc7dKZ0S+gVZxneDnYXaTzHPK0OLBgWih0MreoWyhwvAw/iZnY2Z1gS6NwnjR/+i
 Yw/B/6q4EwCk2g1GHU5O6YOljqWhfILKNAiWL+vBKS5RreIvDTPObuIR1t5FfmamQ
 qAsxBU8jUamslqvhCcB/isscjWlLwWnAO/MEpMZ5ueIOrR488gPZ6gLmK3BzlXcxF
 bZ8O7o2twepvOnJ/S9inS7yvQj0VAtO7nEUko5YegHY4QTpB4PHJYtbB7gkPafgT5
 V3BdEhRQEZ4k9x8+Xw1gEmJp+sDltJtaTq/hpYaikfkjm6tJiIGkzc+NXh+HtSUpg
 5w9vzanAvLAzihvnMQ==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from strobelfs2 ([88.130.63.167]) by mail.gmx.net (mrgmx004
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MtfNl-1uLNKe3EJL-00yXni; Sun, 19
 Oct 2025 14:38:51 +0200
From: Stephen Berman <stephen.berman@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#79528: 30.1; dired errors while handling file names
 embedding newlines
In-Reply-To: <86ms5o15i8.fsf@HIDDEN>
References: <E1v2o26-0000000BTsr-2GVJ@HIDDEN>
 <87seg6uc71.fsf@HIDDEN> <E1v2oOc-0000000BV25-1pHC@HIDDEN>
 <87o6quu9tu.fsf@HIDDEN> <86cy73f4ys.fsf@HIDDEN>
 <87v7kl4qzh.fsf@HIDDEN> <868qhh5x42.fsf@HIDDEN>
 <87cy6qkeke.fsf@HIDDEN> <861pn64xlz.fsf@HIDDEN>
 <87jz0x7f7z.fsf@HIDDEN> <86bjm936yu.fsf@HIDDEN>
 <87sefilulw.fsf@HIDDEN> <86ecr2gj51.fsf@HIDDEN>
 <87sefg2kml.fsf@HIDDEN> <86ms5o15i8.fsf@HIDDEN>
Date: Sun, 19 Oct 2025 14:38:51 +0200
Message-ID: <87ms5nhxr8.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Provags-ID: V03:K1:xb65HSmTAWzjYpmmozAE5spp4s000QRLRn+jNcmwME6ebHNmlw1
 go6X8OJQSLnasqaow0z9OnpdR30M0lavjBRdw6+0bY96qGdwnQw9hEuiwvdq7vGrNEn4KSI
 KVLaiiHGppPjDwFrXfiHQ5Y8yONV8Hsy/msBfljyzxL0vvH/NRv8IIKZMW8Tlj/muRZYzB6
 z23HCfas8PGzLDr95rwsw==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:IO21inyqteo=;mHbe4zsplLVUMnmnQAE/Ul/mL7T
 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
 W1nCg==
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 2.9 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  On Sat, 18 Oct 2025 20:31:11 +0300 Eli Zaretskii wrote: >>
 From: Stephen Berman >> Cc: pot@HIDDEN, 79528 <at> debbugs.gnu.org >> Date:
 Sat, 18 Oct 2025 19:19:14 +0200 [...] >> >> +See `%s' for more information."))
 >> >> + (display-warning >> >> + 'dired > [...] 
 Content analysis details:   (2.9 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
 [212.227.15.18 listed in wl.mailspike.net]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [212.227.15.18 listed in list.dnswl.org]
 0.0 RCVD_IN_VALIDITY_SAFE_BLOCKED RBL: ADMINISTRATOR NOTICE: The
 query to Validity was blocked.  See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243
 for more information.
 [212.227.15.18 listed in sa-trusted.bondedsender.org]
 0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The
 query to Validity was blocked.  See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243
 for more information.
 [212.227.15.18 listed in bl.score.senderscore.com]
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [88.130.63.167 listed in zen.spamhaus.org]
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.0 SPF_PASS               SPF: sender matches SPF record
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (stephen.berman[at]gmx.net)
 0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
X-Debbugs-Envelope-To: 79528
Cc: pot@HIDDEN, 79528 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.9 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  On Sat, 18 Oct 2025 20:31:11 +0300 Eli Zaretskii wrote: >>
    From: Stephen Berman >> Cc: pot@HIDDEN, 79528 <at> debbugs.gnu.org >> Date:
    Sat, 18 Oct 2025 19:19:14 +0200 [...] >> >> +See `%s' for more information."))
    >> >> + (display-warning >> >> + 'dired > [...] 
 
 Content analysis details:   (1.9 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
                             [212.227.15.18 listed in wl.mailspike.net]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
                             low trust
                             [212.227.15.18 listed in list.dnswl.org]
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [88.130.63.167 listed in zen.spamhaus.org]
  0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The
                             query to Validity was blocked.  See
                             https://knowledge.validity.com/hc/en-us/articles/20961730681243
                              for more information.
                             [212.227.15.18 listed in bl.score.senderscore.com]
  0.0 RCVD_IN_VALIDITY_SAFE_BLOCKED RBL: ADMINISTRATOR NOTICE: The
                             query to Validity was blocked.  See
                             https://knowledge.validity.com/hc/en-us/articles/20961730681243
                              for more information.
                          [212.227.15.18 listed in sa-trusted.bondedsender.org]
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.0 SPF_PASS               SPF: sender matches SPF record
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (stephen.berman[at]gmx.net)
  0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager

On Sat, 18 Oct 2025 20:31:11 +0300 Eli Zaretskii <eliz@HIDDEN> wrote:

>> From: Stephen Berman <stephen.berman@HIDDEN>
>> Cc: pot@HIDDEN,  79528 <at> debbugs.gnu.org
>> Date: Sat, 18 Oct 2025 19:19:14 +0200
[...]=20
>> >> +See `%s' for more information."))
>> >> +    (display-warning
>> >> +     'dired
>> >> +     (format-message
>> >> +      msg
>> >> +      (buttonize "M-: (setopt dired-auto-toggle-b-switch t)"
>> >> +                 (lambda (_)
>> >> +                   (with-current-buffer dir
>> >> +                     (setopt dired-auto-toggle-b-switch t)))
>> >
>> > It isn't nice to override values of user options.  So perhaps instead
>> > have a variable whose initial value is taken from the user option and
>> > which is consulted when deciding what to do in the relevant cases, an=
d
>> > then tweak that variable as needed.
>>=20
>> I don't think this is really overriding the value of the user option, a=
t
>> least not morally, and not behind the user's back, because the
>> instruction and button only appear in the warning, which plainly
>> explains what will happen, and then only when the user herself takes
>> action.  Moreover, since the default value of this option is nil, if th=
e
>> user had set it to t in her init file (or set and saved the value using
>> the Customize interface), then the warning would not have been issued,
>> so the user-set value could not be overridden in that case.  It's only
>> the default value that's "overridden", or really just set, and then mos=
t
>> likely with the user's intention (unless she blindly clicked the button
>> in the *Warnings* buffer) and only for the running Emacs session, since
>> using `setopt' like this does not persist the setting, unlike using it
>> in the init file.  So I don't see a compelling need for the added
>> indirection.  Or am I missing something?
>
> If you use setopt there, won't a subsequent "C-h v" that the variable
> was changed outside of Customize?

Yes, of course (assuming you meant `M-x customize-option'), but is that
a problem?  That happens anytime you set a user option by any means
other than `customize-option' (or its alias `customize-variable').  Yet
while both `setopt' and `setq' are documented in the Emacs manual as
alternatives to using the Customize interface, there is no mention that
using them results in the "CHANGED outside Customize" state.  Perhaps
this should be documented, either to dispel unwarranted fears that
something went wrong, or if it really does indicate a problem, then it's
even more important to document it and explain why.  But I'm not aware
of any problem and thought this state was just providing information.

As for the warning, the obvious alternative to using `setopt' is to use
`customize-option', but that means users will have to go through more
steps to see the change.  Francesco wanted a way to immediately change
the display of newlines in file names, and with `setopt' one `M-:' (or
one click on the button in the warning) does that.  And again, I don't
see anything wrong with using `setopt'.

Steve Berman




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79528; Package emacs. Full text available.

Message received at 79528 <at> debbugs.gnu.org:


Received: (at 79528) by debbugs.gnu.org; 18 Oct 2025 17:31:29 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 18 13:31:29 2025
Received: from localhost ([127.0.0.1]:46667 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vAAm9-0003LL-BI
	for submit <at> debbugs.gnu.org; Sat, 18 Oct 2025 13:31:29 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:33068)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vAAm4-0003Jk-Gc
 for 79528 <at> debbugs.gnu.org; Sat, 18 Oct 2025 13:31:27 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1vAAlx-0005q6-NE; Sat, 18 Oct 2025 13:31:17 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=I+mtqNF4nYvdprclMsHoh51WNIaKneEA9AlxZEhRDrc=; b=E2r4wWOeOlan
 MTS5uToHLwo6lYEqrNOQQOYZrMV2H8mKA8olhM6xGf/HPNFs5J+qlu/ONYPIw9tuO+ZAcwNaerLfS
 rQSwn3qW5NqdA0cdpeJGR3a+QPZXrooBqcUBSDibGBlzvd+8tAX26ge1StAQTl/uyO6/BM6M4WQBY
 tVyOeQeJDYgBTvH/jyqiDi7B/mKmUZI313xH4hhumfZG/iWaJwba+bvCawtGJFAinp/MfYLKUiJSW
 dirLz+T31yrXo9FUDP4fKjjmf+mKvYtVbk9YxXoFOFZq1cxuKRZMsZPOslhv94b5Zw1/WCBUgJ6Sy
 UdtJ/Gb66aJXfYNBkbgG1A==;
Date: Sat, 18 Oct 2025 20:31:11 +0300
Message-Id: <86ms5o15i8.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Stephen Berman <stephen.berman@HIDDEN>
In-Reply-To: <87sefg2kml.fsf@HIDDEN> (message from Stephen Berman on Sat, 18
 Oct 2025 19:19:14 +0200)
Subject: Re: bug#79528: 30.1; dired errors while handling file names
 embedding newlines
References: <E1v2o26-0000000BTsr-2GVJ@HIDDEN>
 <87seg6uc71.fsf@HIDDEN> <E1v2oOc-0000000BV25-1pHC@HIDDEN>
 <87o6quu9tu.fsf@HIDDEN> <86cy73f4ys.fsf@HIDDEN>
 <87v7kl4qzh.fsf@HIDDEN> <868qhh5x42.fsf@HIDDEN>
 <87cy6qkeke.fsf@HIDDEN> <861pn64xlz.fsf@HIDDEN>
 <87jz0x7f7z.fsf@HIDDEN> <86bjm936yu.fsf@HIDDEN>
 <87sefilulw.fsf@HIDDEN> <86ecr2gj51.fsf@HIDDEN> <87sefg2kml.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79528
Cc: pot@HIDDEN, 79528 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Stephen Berman <stephen.berman@HIDDEN>
> Cc: pot@HIDDEN,  79528 <at> debbugs.gnu.org
> Date: Sat, 18 Oct 2025 19:19:14 +0200
> 
> > I think a footnote indication looks better in print if it comes before
> > the period.  Can you try both and look in the PDF version of the
> > manual to decide which one is better?
> 
> I built the PDF and find the footnote mark before a punctuation mark
> sometimes visually jarring.  Perhaps this is because I learned (but I
> don't remember when or from where) that if the footnote is related to an
> entire sentence or clause, then the footnote mark comes after the
> punctuation mark, but if the footnote relates to a single word followed
> by a punctuation mark, then the footnote mark comes before the
> punctuation mark (a web search suggests that this is also the
> recommendation most style guides make).  Out of curiosity I ran `occur'
> on emacs.info: there were 14 matches for "([0-9])[.,;:]" (footnote mark
> before punctuation) and 19 matches for "[.,;:]([0-9])" (footnote mark
> after punctuation) (not counting the two in my patch).  I looked at each
> occurrence in context and think all instances of the footnote mark after
> punctuation conform to the practice I learned, but a number of the
> occurrences of the footnote mark before punctuation deviate from that
> practice in my judgment (though even when it doesn't deviate, as with
> the last footnote in the GNU Manifesto, which appears before a comma,
> the appearance of the footnote mark and the comma nevertheless does not
> look good to me in the PDF).  So if it were up to me, I'd keep the
> footnote mark after the period in the two cases in my patch.

Fine by me, thanks for checking.

> >> +See `%s' for more information."))
> >> +    (display-warning
> >> +     'dired
> >> +     (format-message
> >> +      msg
> >> +      (buttonize "M-: (setopt dired-auto-toggle-b-switch t)"
> >> +                 (lambda (_)
> >> +                   (with-current-buffer dir
> >> +                     (setopt dired-auto-toggle-b-switch t)))
> >
> > It isn't nice to override values of user options.  So perhaps instead
> > have a variable whose initial value is taken from the user option and
> > which is consulted when deciding what to do in the relevant cases, and
> > then tweak that variable as needed.
> 
> I don't think this is really overriding the value of the user option, at
> least not morally, and not behind the user's back, because the
> instruction and button only appear in the warning, which plainly
> explains what will happen, and then only when the user herself takes
> action.  Moreover, since the default value of this option is nil, if the
> user had set it to t in her init file (or set and saved the value using
> the Customize interface), then the warning would not have been issued,
> so the user-set value could not be overridden in that case.  It's only
> the default value that's "overridden", or really just set, and then most
> likely with the user's intention (unless she blindly clicked the button
> in the *Warnings* buffer) and only for the running Emacs session, since
> using `setopt' like this does not persist the setting, unlike using it
> in the init file.  So I don't see a compelling need for the added
> indirection.  Or am I missing something?

If you use setopt there, won't a subsequent "C-h v" that the variable
was changed outside of Customize?

> > Thanks again for working on this tricky problem.
> 
> Thanks very much for the feedback!  I think the patch is now ready to
> install if you accept my arguments above and there are no further issues
> to address.

See above.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79528; Package emacs. Full text available.

Message received at 79528 <at> debbugs.gnu.org:


Received: (at 79528) by debbugs.gnu.org; 18 Oct 2025 17:19:41 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 18 13:19:41 2025
Received: from localhost ([127.0.0.1]:46482 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vAAaj-0002UO-9r
	for submit <at> debbugs.gnu.org; Sat, 18 Oct 2025 13:19:41 -0400
Received: from mout.gmx.net ([212.227.15.19]:34785)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <stephen.berman@HIDDEN>)
 id 1vAAac-0002Ts-L8
 for 79528 <at> debbugs.gnu.org; Sat, 18 Oct 2025 13:19:35 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net;
 s=s31663417; t=1760807968; x=1761412768; i=stephen.berman@HIDDEN;
 bh=wemITHkwWedti24UeU/4JZeZDT9AbFgWQxGUHL0qxN4=;
 h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date:
 Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:cc:
 content-transfer-encoding:content-type:date:from:message-id:
 mime-version:reply-to:subject:to;
 b=n7iUVxr7xrp36kE0rHwgsptJNnmiLrRnIAr+qBi3UHBQ42yDksFf5fdGdsk35B1m
 xLyERoGywvd5eV1godGRXMtJP2oGVsQGldsN0/l+/9oC6VQbn3ywaamf5mm35LFDp
 7GNSinwbns4U1PgN/OayVsvPyoYELYCitbbwf36f02dBm3SNXDFdDyxfgl226rUhu
 htZmM/X1C9zF2vZJjWCTVjitO3gXtAD0esGQ4WGfUoT2BCWBTc+Es0d5hMKBSWIk/
 vGNsXRKs+yqWgPDIBVg1HTU2Vm4vFfg8Jf2TFhTNI4NnZEUw/JkP5LC9mmQF7ONCw
 5xf9RBO7sQZUo3WYnw==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from strobelfs2 ([94.134.94.53]) by mail.gmx.net (mrgmx004
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MwfWa-1uGQe21qKw-00tKk6; Sat, 18
 Oct 2025 19:19:28 +0200
From: Stephen Berman <stephen.berman@HIDDEN>
To: Francesco =?utf-8?Q?Potort=C3=AC?= <pot@HIDDEN>
Subject: Re: bug#79528: 30.1; dired errors while handling file names
 embedding newlines
In-Reply-To: <E1v9nmV-0000000E7tF-3pMm@HIDDEN>
References: <E1v2o26-0000000BTsr-2GVJ@HIDDEN>
 <87seg6uc71.fsf@HIDDEN> <E1v2oOc-0000000BV25-1pHC@HIDDEN>
 <87o6quu9tu.fsf@HIDDEN> <86cy73f4ys.fsf@HIDDEN>
 <87v7kl4qzh.fsf@HIDDEN> <868qhh5x42.fsf@HIDDEN>
 <87cy6qkeke.fsf@HIDDEN> <861pn64xlz.fsf@HIDDEN>
 <87jz0x7f7z.fsf@HIDDEN> <86bjm936yu.fsf@HIDDEN>
 <87sefilulw.fsf@HIDDEN> <E1v9nmV-0000000E7tF-3pMm@HIDDEN>
Date: Sat, 18 Oct 2025 19:19:27 +0200
Message-ID: <87qzv02km8.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:PTBi6ttKbki8FhCqcNDEBz4QTtFwSo+Z0TUGyOJ1of8XeoQnp+t
 pfywn9OmwNhJBAotyrnmzAA2jKQtW85wJvGNJRlnSH9KsFauLj5hlQ/5k1Cc59XgveddVf9
 06yHTC9TLpHrTcNHxX+P7Fv7hSdMlhZuFDcz/5ti55zyDzmS8bC7joqUYny4a059vRy+kvO
 h+cgOy1m3++PhsgASKyrA==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:jGvxuamlKKY=;59IUFzQyR4DjH7wI0vhJhI82O1/
 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
 4TqTQ==
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 79528
Cc: Eli Zaretskii <eliz@HIDDEN>, 79528 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

On Fri, 17 Oct 2025 18:58:19 +0200 Francesco Potort=C3=AC <pot@HIDDEN> =
wrote:

> Steve Berman:
>>Latest version attached; I'll wait a bit before
>>installing it in case you, Francesco or anyone else has objections.
>
> I have a dired buffer with several files whose names and in one newline.
>
> 1) I visit the directory and I get the warning:
>
> =E2=9B=94 Warning (dired): Literal newline in file name.
> This Dired buffer is displaying a file name containing a literal newline
> character.  Executing Dired operations on such files when they are
> displayed this way may fail and signal an error.  To avoid this you can
> change the display so that newlines in file names are shown as "\n"
> by entering =E2=80=98M-: (setopt dired-auto-toggle-b-switch t)=E2=80=99 i=
n the minibuffer
> (or by clicking on the highlighted text here).
> See =E2=80=98(emacs) Dired Enter=E2=80=99 for more information.
>
> This is much better than the original behaviour, thanks for working on th=
is.
> As I wrote in a previous email, ideally the user should have the chance to
> change things right now.  And now that I think of it, Emacs already has a
> template for such things, that is, the interface used when you call a dis=
abled
> command such as downcase-region: the user can immediately choose whether =
to
> give up, try it just once, try it for the whole Emacs session, or enable =
it.

The way I implemented changing the display of the newline is prima facie
not compatible with the novice.el approach, since that is only for
commands, whereas my implementation requires setting a user option which
then (via post-command-hook) automatically calls an internal function
(i.e., one not meant for the user to directly invoke) to change the
display.  However, you can immediately effect the change by evaluating
the setopt form in the warning, or simply by clicking it, since it's a
button.  Or you can use `M-x customize-option' to make the change
persist in future Emacs sessions (the warning also has a clickable link
to the part of the Emacs manual where this feature is explained in
detail).

> 2) I rename a file using 'R': the file is renamed, and a file with the new
> name appears, but the old name still appears, until I use 'g': this is no=
rmal
> and expected strange behaviour.

Yes.  Though depending on exactly what the renaming involves there can
be problems.  But after you change the display to use `\n' instead of a
literal newline, then the `R' command works fine and immediately updates
the display.

> 3) I use dired-toggle-read-only and it seems to work perfectly, even with=
 the
> newlines.  Not only that, it even removes the final newlines for file nam=
es
> that I change.

Actually, I do see the same kind of problems I alluded to above also
when using Wdired to edit a file name containing a newline, when it's
displayed as a literal newline, but not when it's displayed with `\n',
so I would recommend using only the latter display for editing, also in
Wdired.

> 4) I do 'M-x set-variable RET dired-auto-toggle-b-switch RET t RET' and r=
evert
> the buffer using 'g', but nothing changes.  If I kill the Dired buffer, t=
hen
> it is shown as expected.  Maybe the 'g' command does not look at
> dired-auto-toggle-b-switch?  it probably should, I suppose

The problem is that updating the display is also done by the internal
function I referred to above, which is automatically executed on
visiting a directory containing a file name with a newline, when the
user option `dired-auto-toggle-b-switch' is enabled by setopt or by
using the Customize interface, but not when using set-variable, which
doesn't use the Customize machinery.  In this respect `set-variable' is
like `setq', which is called out by the Emacs Help machinery, e.g. `C-h
v dired-auto-toggle-b-switch' says: "Setting this variable directly with
=E2=80=98setq=E2=80=99 may not take effect; use either customize or =E2=80=
=98setopt=E2=80=99 [...]".
(As I noted in my reply to Eli, there was a bug in the :set function of
the user option that prevented updating the display, but I've fixed it.)

> 5) I rename a file and remove the final newline.  When it is done, the -b
> switch is removed and the Dired display is shown as expected.

Yes; in particular, if you have files in the same directory whose names
have tab or space characters, which are displayed as `\t' and `\ ' when
the newline is displayed as `\n', then after removing the newline, the
tabs and spaces are displayed as literal spaces, i.e. without being
escaped.

Thanks for the feedback!

Steve Berman




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79528; Package emacs. Full text available.

Message received at 79528 <at> debbugs.gnu.org:


Received: (at 79528) by debbugs.gnu.org; 18 Oct 2025 17:19:32 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 18 13:19:32 2025
Received: from localhost ([127.0.0.1]:46479 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vAAaZ-0002U1-Dd
	for submit <at> debbugs.gnu.org; Sat, 18 Oct 2025 13:19:32 -0400
Received: from mout.gmx.net ([212.227.15.19]:48415)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <stephen.berman@HIDDEN>)
 id 1vAAaX-0002Tk-5h
 for 79528 <at> debbugs.gnu.org; Sat, 18 Oct 2025 13:19:30 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net;
 s=s31663417; t=1760807955; x=1761412755; i=stephen.berman@HIDDEN;
 bh=F947hJ+QKFhbIEAE/NJq/vhY0jsldC1OTxvtdObQHjQ=;
 h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date:
 Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:cc:
 content-transfer-encoding:content-type:date:from:message-id:
 mime-version:reply-to:subject:to;
 b=D7K50ELxJILvcK84WPQBlEkItG1CT2HhCvTNAW9VDjWxNOX4iknpxmV1lrjEg3Bk
 umHaenXw3wy16VLbe4kl4JSjxOi5fvNV4At2Y5geuYTqWSHsPEWjZoTlvQqY3oEIo
 aW1F9GSs3Rt4F971i356mEm8DRTW9xHjzZjuUF3jEEBieQ20Gfu3BvvTXVtMtbedO
 aEu2GQqQ2rdBZAg73zpQ6lB8Rxiwkoi7EVFumGp9JK77O/CVWslzjrBz/mj6wBilS
 Tx/ArPWiIPgi4q4kjwB8xX3r4HDLuXh7Dd8oPhOU12rlz9oA3yrHEZyJ1o4Up+7Lk
 ys9k7v09tRJR6h0mmQ==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from strobelfs2 ([94.134.94.53]) by mail.gmx.net (mrgmx005
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N63Vi-1u8DAh27vU-012T6X; Sat, 18
 Oct 2025 19:19:15 +0200
From: Stephen Berman <stephen.berman@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#79528: 30.1; dired errors while handling file names
 embedding newlines
In-Reply-To: <86ecr2gj51.fsf@HIDDEN>
References: <E1v2o26-0000000BTsr-2GVJ@HIDDEN>
 <87seg6uc71.fsf@HIDDEN> <E1v2oOc-0000000BV25-1pHC@HIDDEN>
 <87o6quu9tu.fsf@HIDDEN> <86cy73f4ys.fsf@HIDDEN>
 <87v7kl4qzh.fsf@HIDDEN> <868qhh5x42.fsf@HIDDEN>
 <87cy6qkeke.fsf@HIDDEN> <861pn64xlz.fsf@HIDDEN>
 <87jz0x7f7z.fsf@HIDDEN> <86bjm936yu.fsf@HIDDEN>
 <87sefilulw.fsf@HIDDEN> <86ecr2gj51.fsf@HIDDEN>
Date: Sat, 18 Oct 2025 19:19:14 +0200
Message-ID: <87sefg2kml.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Provags-ID: V03:K1:Pi76NSyFD/GOF9twOSjfGd4UsF+6UPFGdNohHcdlEo/Bvm5mbFN
 pND151vHnRw9JQJvDZ5IZ/5Ua+WOxx8N88I/dBv6sVH3PbtdjUxLqtHCi5MiZECQLnfwwxJ
 c7lRWE+8Hl0/qxbgcEslYpIFVoL2/8IJbN/nliFNR+4o/YN35aXQK9BecL6TzWjgrxRxMLf
 ynKOAr7TH+yifXQkP8gfg==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:sF873BsRScE=;ID7lfUUXF2uyRkU2TppXpmZHADi
 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
 S++cvAMtS9It6f2B7x6Cwso758=
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 79528
Cc: pot@HIDDEN, 79528 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

On Fri, 17 Oct 2025 09:03:06 +0300 Eli Zaretskii <eliz@HIDDEN> wrote:

>> From: Stephen Berman <stephen.berman@HIDDEN>
>> Cc: pot@HIDDEN,  79528 <at> debbugs.gnu.org
>> Date: Thu, 16 Oct 2025 17:44:11 +0200
>>=20
>> > I see nothing wrong with the warning text per se, but an alternative
>> > you perhaps should consider is to place that text in the user manual,
>> > and then have the warning refer to it.
>>=20
>> Yes, I had the same thought and now I've done that (with various
>> reformulations).  I also corrected an oversight and fixed a minor
>> problem in the previous patch, removed some unneeded code, and added
>> NEWS entries.  Latest version attached; I'll wait a bit before
>> installing it in case you, Francesco or anyone else has objections.
>
> Thanks, a few minor comments below.
>
>> +@cindex file names with newline character
>> +@cindex newline character in file names
>
> These index entries should be qualified with "in Dired" at the end.

Oh yes, thanks.  Done.

>> +the file occupies one line as usual, so you can execute all applicable
>> +Dired operations on it.@footnote{Note that with the @samp{-b} switch
>> +Dired displays tab characters in file names as @samp{\t} and escapes
>> +other control characters and also spaces in file names with @samp{\}.}
>
> I think a footnote indication looks better in print if it comes before
> the period.  Can you try both and look in the PDF version of the
> manual to decide which one is better?

I built the PDF and find the footnote mark before a punctuation mark
sometimes visually jarring.  Perhaps this is because I learned (but I
don't remember when or from where) that if the footnote is related to an
entire sentence or clause, then the footnote mark comes after the
punctuation mark, but if the footnote relates to a single word followed
by a punctuation mark, then the footnote mark comes before the
punctuation mark (a web search suggests that this is also the
recommendation most style guides make).  Out of curiosity I ran `occur'
on emacs.info: there were 14 matches for "([0-9])[.,;:]" (footnote mark
before punctuation) and 19 matches for "[.,;:]([0-9])" (footnote mark
after punctuation) (not counting the two in my patch).  I looked at each
occurrence in context and think all instances of the footnote mark after
punctuation conform to the practice I learned, but a number of the
occurrences of the footnote mark before punctuation deviate from that
practice in my judgment (though even when it doesn't deviate, as with
the last footnote in the GNU Manifesto, which appears before a comma,
the appearance of the footnote mark and the comma nevertheless does not
look good to me in the PDF).  So if it were up to me, I'd keep the
footnote mark after the period in the two cases in my patch.

>> ++++
>> +*** New user option 'dired-auto-toggle-b-switch'
>
> This line should end in a period.

Oops, corrected.

>> +(defun dired--toggle-b-switch ()
>> +  "Add or remove `b' switch and redisplay Dired buffer.
>> +When the current Dired buffer has a file name containing a newline, ad=
d
>> +the `b' switch to the actual switches if it isn't already among them;
>> +otherwise remove the `b' switch unless it is in `dired-listing-switche=
s'.
>> +Then redisplay the Dired buffer.  This function is called from
>> +`post-command-hook' in Dired mode buffers."
>> +  (when (eq major-mode 'dired-mode)
>> +    (if (dired--filename-with-newline-p)
>> +        (unless (dired-switches-escape-p dired-actual-switches)
>> +          (setq dired-actual-switches (concat dired-actual-switches " =
-b"))
>> +          (dired-revert))
>> +      (unless (dired-switches-escape-p dired-listing-switches)
>> +        (when (dired-switches-escape-p dired-actual-switches)
>> +          (setq dired-actual-switches
>> +                (replace-regexp-in-string "\\( -\\)?b" ""
>> +                                          dired-actual-switches))
>
> What will this do if the value of dired-actual-switches before the
> function is invoked is "-bal", or anything else that begins with "-b"?

Oh, that's a good question!  I see no problem with "-bal" alone,
however, if "test" is a directory that has a file with a newline in its
name and I start emacs from the command line like this:

$ emacs -Q --eval '(setq dired-listing-switches "--block-size=3Dsi -bal")'=
 test

then the file with the newline is displayed with "\n" instead of a
literal newline, as expected; but if I now do `M-x (setopt
dired-auto-toggle-b-switch nil)' to get the display with the literal
newline, it fails with the error "Listing directory failed but
`access-file' worked", because the value of `dired-actual-switches' has
changed to "--lock-size=3Dsial"!  Thanks for spotting this problem (or at
least being aware of its possibility)!

I couldn't find a solution using `replace-regexp-in-string', so I wrote
the following function and called it instead of calling
`replace-regexp-in-string' in the function  cited above (I also had to
make another change in that function, see below):

(defun dired--remove-b-switch ()
  "Remove all variants of the `b' switch from `dired-actual-switches'.
This removes not only all occurrences of the short form `-b' but also
the long forms `--escape' and `--quoting-style=3Descape'."
  (let (switches)
    (dolist (s (string-split dired-actual-switches))
      (when (string-match "\\`-[^-]" s)
        (setq s (remove ?b s)))
      (unless (or (string=3D s "-")
                  (string-match "escape" s))
        (cl-pushnew s switches :test 'equal)))
    (mapconcat #'identity (nreverse switches) " ")))

I also saw that the long form `--quoting-style=3Descape' was overlooked in
`dired-switches-escape-p', so I corrected that.

>> +(defun dired--set-auto-toggle-b-switch (symbol value)
>> +  "The :set function for user option `dired-auto-toggle-b-switch'."
>> +  (custom-set-default symbol value)
>> +  (if value
>> +      (add-hook 'post-command-hook #'dired--toggle-b-switch nil t)
>> +    (remove-hook 'post-command-hook #'dired--toggle-b-switch t)
>> +    (setq dired-actual-switches
>> +          (replace-regexp-in-string "\\( -\\)?b" "" dired-actual-switc=
hes))
>> +    (dired-revert)))
>
> Same here.

Here there turned out to be a more serious problem: calling
`dired-revert' here is a no-op because we're not in a Dired buffer;
consequently, the display of the Dired buffer with the newline in the
file name is not updated.  I fixed this by replacing the setq and
dired-revert calls with this:

  (dolist (b (buffer-list))
    (with-current-buffer b
      (dired--toggle-b-switch)))

I also had to replace the if-condition in `dired--toggle-b-switch' by
`(and (dired--filename-with-newline-p) dired-auto-toggle-b-switch)`.
With these changes, setting and unsetting the user option, whether by
setopt or the Customize interface, automatically updates the Dired
buffers displaying file names with newlines.

>> +(defun dired--display-filename-with-newline-warning (dir)
>> +  "Display a warning if buffer DIR has a file name with a newline."
>> +  (let ((msg "Literal newline in file name.
>> +This Dired buffer is displaying a file name containing a literal newli=
ne
>> +character.  Executing Dired operations on such files when they are
>> +displayed this way may fail and signal an error.  To avoid this you ca=
n
>> +change the display so that newlines in file names are shown as \"\\n\"
>> +by entering `%s' in the minibuffer
>> +(or by clicking on the highlighted text here).
>> +See `%s' for more information."))
>> +    (display-warning
>> +     'dired
>> +     (format-message
>> +      msg
>> +      (buttonize "M-: (setopt dired-auto-toggle-b-switch t)"
>> +                 (lambda (_)
>> +                   (with-current-buffer dir
>> +                     (setopt dired-auto-toggle-b-switch t)))
>
> It isn't nice to override values of user options.  So perhaps instead
> have a variable whose initial value is taken from the user option and
> which is consulted when deciding what to do in the relevant cases, and
> then tweak that variable as needed.

I don't think this is really overriding the value of the user option, at
least not morally, and not behind the user's back, because the
instruction and button only appear in the warning, which plainly
explains what will happen, and then only when the user herself takes
action.  Moreover, since the default value of this option is nil, if the
user had set it to t in her init file (or set and saved the value using
the Customize interface), then the warning would not have been issued,
so the user-set value could not be overridden in that case.  It's only
the default value that's "overridden", or really just set, and then most
likely with the user's intention (unless she blindly clicked the button
in the *Warnings* buffer) and only for the running Emacs session, since
using `setopt' like this does not persist the setting, unlike using it
in the init file.  So I don't see a compelling need for the added
indirection.  Or am I missing something?

> Thanks again for working on this tricky problem.

Thanks very much for the feedback!  I think the patch is now ready to
install if you accept my arguments above and there are no further issues
to address.

Steve Berman




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79528; Package emacs. Full text available.

Message received at 79528 <at> debbugs.gnu.org:


Received: (at 79528) by debbugs.gnu.org; 17 Oct 2025 16:58:26 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Oct 17 12:58:26 2025
Received: from localhost ([127.0.0.1]:54045 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1v9nmc-00042i-9V
	for submit <at> debbugs.gnu.org; Fri, 17 Oct 2025 12:58:26 -0400
Received: from plesklin7.if2.ehiweb.it ([79.98.45.17]:59397
 helo=plesklin7.ehiweb.it)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <pot@HIDDEN>) id 1v9nmY-00042U-Ud
 for 79528 <at> debbugs.gnu.org; Fri, 17 Oct 2025 12:58:24 -0400
Received: from tucano.isti.cnr.it (tucano.isti.cnr.it [146.48.81.102])
 by plesklin7.ehiweb.it (Postfix) with ESMTPSA id 117C41CB477;
 Fri, 17 Oct 2025 18:58:20 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=potorti.it;
 s=default; t=1760720300;
 bh=XT5tpLMxT/HohEkxuOztEvooUx5n5zVefeUZqu4Lylg=;
 h=Received:From:To:Subject;
 b=e3Glu2uYm6gbToYkM5Bg7q2wwtJCRJtsgfsGovwALoUxzYwYHW5Pv3qiqp3NcE2p2
 L++Ac5wZTyZccT/YXo57EsJaCkJNWr6EryiTeYgqCpLdNMu19kAJENX7ZYabOnYjm0
 cP7eM0RSa1NJ1vI9zGW5PKrWI895cUjNxTitDahc=
Authentication-Results: plesklin7.ehiweb.it;
 spf=pass (sender IP is 146.48.81.102) smtp.mailfrom=pot@HIDDEN
 smtp.helo=tucano.isti.cnr.it
Received-SPF: pass (plesklin7.ehiweb.it: connection is authenticated)
Received: from pot by tucano.isti.cnr.it with local (Exim 4.98.2)
 (envelope-from <pot@HIDDEN>) id 1v9nmV-0000000E7tF-3pMm;
 Fri, 17 Oct 2025 18:58:19 +0200
From: =?utf-8?Q?Francesco_Potort=C3=AC?= <pot@HIDDEN>
Date: Fri, 17 Oct 2025 18:58:19 +0200
To: Stephen Berman <stephen.berman@HIDDEN>
In-Reply-To: <87sefilulw.fsf@HIDDEN> (stephen.berman@HIDDEN)
Subject: Re: bug#79528: 30.1; dired errors while handling file names
 embedding newlines
References: <E1v2o26-0000000BTsr-2GVJ@HIDDEN>
 <87seg6uc71.fsf@HIDDEN> <E1v2oOc-0000000BV25-1pHC@HIDDEN>
 <87o6quu9tu.fsf@HIDDEN> <86cy73f4ys.fsf@HIDDEN>
 <87v7kl4qzh.fsf@HIDDEN> <868qhh5x42.fsf@HIDDEN>
 <87cy6qkeke.fsf@HIDDEN> <861pn64xlz.fsf@HIDDEN>
 <87jz0x7f7z.fsf@HIDDEN> <86bjm936yu.fsf@HIDDEN> <87sefilulw.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-fingerprint: 4B02 6187 5C03 D6B1 2E31  7666 09DF 2DC9 BE21 6115
Message-Id: <E1v9nmV-0000000E7tF-3pMm@HIDDEN>
X-PPP-Message-ID: <176072030016.2118166.169173942268596603@HIDDEN>
X-PPP-Vhost: potorti.it
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 79528
Cc: Eli Zaretskii <eliz@HIDDEN>, 79528 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Steve Berman:
>Latest version attached; I'll wait a bit before
>installing it in case you, Francesco or anyone else has objections.

I have a dired buffer with several files whose names and in one newline.

1) I visit the directory and I get the warning:

=E2=9B=94 Warning (dired): Literal newline in file name.
This Dired buffer is displaying a file name containing a literal newline
character.  Executing Dired operations on such files when they are
displayed this way may fail and signal an error.  To avoid this you can
change the display so that newlines in file names are shown as "\n"
by entering =E2=80=98M-: (setopt dired-auto-toggle-b-switch t)=E2=80=99 in =
the minibuffer
(or by clicking on the highlighted text here).
See =E2=80=98(emacs) Dired Enter=E2=80=99 for more information.

This is much better than the original behaviour, thanks for working on this=
.  As I wrote in a previous email, ideally the user should have the chance =
to change things right now.  And now that I think of it, Emacs already has =
a template for such things, that is, the interface used when you call a dis=
abled command such as downcase-region: the user can immediately choose whet=
her to give up, try it just once, try it for the whole Emacs session, or en=
able it.

2) I rename a file using 'R': the file is renamed, and a file with the new =
name appears, but the old name still appears, until I use 'g': this is norm=
al and expected strange behaviour.

3) I use dired-toggle-read-only and it seems to work perfectly, even with t=
he newlines.  Not only that, it even removes the final newlines for file na=
mes that I change.

4) I do 'M-x set-variable RET dired-auto-toggle-b-switch RET t RET' and rev=
ert the buffer using 'g', but nothing changes.  If I kill the Dired buffer,=
 then it is shown as expected.  Maybe the 'g' command does not look at dire=
d-auto-toggle-b-switch?  it probably should, I suppose

5) I rename a file and remove the final newline.  When it is done, the -b s=
witch is removed and the Dired display is shown as expected.

=2D- fp




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79528; Package emacs. Full text available.

Message received at 79528 <at> debbugs.gnu.org:


Received: (at 79528) by debbugs.gnu.org; 17 Oct 2025 06:03:26 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Oct 17 02:03:26 2025
Received: from localhost ([127.0.0.1]:45255 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1v9dYj-0002pY-Nl
	for submit <at> debbugs.gnu.org; Fri, 17 Oct 2025 02:03:26 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:36996)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1v9dYe-0002pH-BG
 for 79528 <at> debbugs.gnu.org; Fri, 17 Oct 2025 02:03:21 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1v9dYW-0006j3-EL; Fri, 17 Oct 2025 02:03:12 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=iMXn7PT9ZbAyvELX50NjOzfmF62emprJcdXdEkTaUyE=; b=VB/VKeVtFzAq
 VbG+ZoAKCRpGMLhTav490lFxSJwC//Vn7gZI2mOeaI8xV2q57sTrzBhwE/gK7cDFBJpaTfuw8YrcL
 7P9rTlnmTFoW/iv9sMQdD5cymo9pNJ529wKTmktqP66qgGA+us0FcMxO4cO2nqHMOJuNNYfuVWy1A
 BXzlSEw/CaKK4gI2vi7yzG+pVtKkpd+UuTYa4qioQPsgiX1PABJiD7hEdP+JQF26N1iLhay4dSwP6
 JjR/iPFEr57NX5FtmrIXOc55qW5tVZ948D7hyca7w3Dqy085fwCr7R0OHN+864s9yJh6YfEP9W3Uc
 NAU/CBMAQyqdn9+3TSU8pg==;
Date: Fri, 17 Oct 2025 09:03:06 +0300
Message-Id: <86ecr2gj51.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Stephen Berman <stephen.berman@HIDDEN>
In-Reply-To: <87sefilulw.fsf@HIDDEN> (message from Stephen Berman on Thu, 16
 Oct 2025 17:44:11 +0200)
Subject: Re: bug#79528: 30.1; dired errors while handling file names
 embedding newlines
References: <E1v2o26-0000000BTsr-2GVJ@HIDDEN>
 <87seg6uc71.fsf@HIDDEN> <E1v2oOc-0000000BV25-1pHC@HIDDEN>
 <87o6quu9tu.fsf@HIDDEN> <86cy73f4ys.fsf@HIDDEN>
 <87v7kl4qzh.fsf@HIDDEN> <868qhh5x42.fsf@HIDDEN>
 <87cy6qkeke.fsf@HIDDEN> <861pn64xlz.fsf@HIDDEN>
 <87jz0x7f7z.fsf@HIDDEN> <86bjm936yu.fsf@HIDDEN> <87sefilulw.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79528
Cc: pot@HIDDEN, 79528 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Stephen Berman <stephen.berman@HIDDEN>
> Cc: pot@HIDDEN,  79528 <at> debbugs.gnu.org
> Date: Thu, 16 Oct 2025 17:44:11 +0200
> 
> > I see nothing wrong with the warning text per se, but an alternative
> > you perhaps should consider is to place that text in the user manual,
> > and then have the warning refer to it.
> 
> Yes, I had the same thought and now I've done that (with various
> reformulations).  I also corrected an oversight and fixed a minor
> problem in the previous patch, removed some unneeded code, and added
> NEWS entries.  Latest version attached; I'll wait a bit before
> installing it in case you, Francesco or anyone else has objections.

Thanks, a few minor comments below.

> +@cindex file names with newline character
> +@cindex newline character in file names

These index entries should be qualified with "in Dired" at the end.

> +the file occupies one line as usual, so you can execute all applicable
> +Dired operations on it.@footnote{Note that with the @samp{-b} switch
> +Dired displays tab characters in file names as @samp{\t} and escapes
> +other control characters and also spaces in file names with @samp{\}.}

I think a footnote indication looks better in print if it comes before
the period.  Can you try both and look in the PDF version of the
manual to decide which one is better?

> ++++
> +*** New user option 'dired-auto-toggle-b-switch'

This line should end in a period.

> +(defun dired--toggle-b-switch ()
> +  "Add or remove `b' switch and redisplay Dired buffer.
> +When the current Dired buffer has a file name containing a newline, add
> +the `b' switch to the actual switches if it isn't already among them;
> +otherwise remove the `b' switch unless it is in `dired-listing-switches'.
> +Then redisplay the Dired buffer.  This function is called from
> +`post-command-hook' in Dired mode buffers."
> +  (when (eq major-mode 'dired-mode)
> +    (if (dired--filename-with-newline-p)
> +        (unless (dired-switches-escape-p dired-actual-switches)
> +          (setq dired-actual-switches (concat dired-actual-switches " -b"))
> +          (dired-revert))
> +      (unless (dired-switches-escape-p dired-listing-switches)
> +        (when (dired-switches-escape-p dired-actual-switches)
> +          (setq dired-actual-switches
> +                (replace-regexp-in-string "\\( -\\)?b" ""
> +                                          dired-actual-switches))

What will this do if the value of dired-actual-switches before the
function is invoked is "-bal", or anything else that begins with "-b"?

> +(defun dired--set-auto-toggle-b-switch (symbol value)
> +  "The :set function for user option `dired-auto-toggle-b-switch'."
> +  (custom-set-default symbol value)
> +  (if value
> +      (add-hook 'post-command-hook #'dired--toggle-b-switch nil t)
> +    (remove-hook 'post-command-hook #'dired--toggle-b-switch t)
> +    (setq dired-actual-switches
> +          (replace-regexp-in-string "\\( -\\)?b" "" dired-actual-switches))
> +    (dired-revert)))

Same here.

> +(defun dired--display-filename-with-newline-warning (dir)
> +  "Display a warning if buffer DIR has a file name with a newline."
> +  (let ((msg "Literal newline in file name.
> +This Dired buffer is displaying a file name containing a literal newline
> +character.  Executing Dired operations on such files when they are
> +displayed this way may fail and signal an error.  To avoid this you can
> +change the display so that newlines in file names are shown as \"\\n\"
> +by entering `%s' in the minibuffer
> +(or by clicking on the highlighted text here).
> +See `%s' for more information."))
> +    (display-warning
> +     'dired
> +     (format-message
> +      msg
> +      (buttonize "M-: (setopt dired-auto-toggle-b-switch t)"
> +                 (lambda (_)
> +                   (with-current-buffer dir
> +                     (setopt dired-auto-toggle-b-switch t)))

It isn't nice to override values of user options.  So perhaps instead
have a variable whose initial value is taken from the user option and
which is consulted when deciding what to do in the relevant cases, and
then tweak that variable as needed.

Thanks again for working on this tricky problem.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79528; Package emacs. Full text available.

Message received at 79528 <at> debbugs.gnu.org:


Received: (at 79528) by debbugs.gnu.org; 16 Oct 2025 15:44:48 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Oct 16 11:44:48 2025
Received: from localhost ([127.0.0.1]:36668 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1v9Q9j-0001DQ-1Y
	for submit <at> debbugs.gnu.org; Thu, 16 Oct 2025 11:44:47 -0400
Received: from mout.gmx.net ([212.227.17.22]:36815)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <stephen.berman@HIDDEN>)
 id 1v9Q9a-0001Cd-DR
 for 79528 <at> debbugs.gnu.org; Thu, 16 Oct 2025 11:44:35 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net;
 s=s31663417; t=1760629452; x=1761234252; i=stephen.berman@HIDDEN;
 bh=sWLM0CUCw14cpvnuwgGXlJZsYJ7OFU1x9yUt1cJzNzY=;
 h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date:
 Message-ID:MIME-Version:Content-Type:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=nvlzJtrPt/dzTJIjs5eLTu3xDY5FiVeFxtKHox4PZ2fs06F9pZbJtzghko+WhNpx
 ER+NjYUXRPWG1rpJAM5SX2YrMu1WuHXc9FKldM40LvO/PeOlnyFN50W6TrX6M7L1w
 DGMkFx1ZHGwGAFg+H11dre1ow7j2cRs9LniVoJN3VJiGoIZ6jIi2rSP9OBJML2vex
 JJEKWEt4CD8fyD4KLBO5lN6xWe72O2Jbv2DS6NRR7Pg/qevresvdUtVbup/wLk0dD
 IVXvPo/4N+Akewmq27VD3ba3vcInU5qqpwaMRTYrgCqFa3hHGYmYl0AIs2ChRK97u
 nTqxrhvi9f3iaAwV5Q==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from strobelfs2 ([94.134.94.228]) by mail.gmx.net (mrgmx104
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MDQeU-1v2J9G0Qa6-0074Sl; Thu, 16
 Oct 2025 17:44:12 +0200
From: Stephen Berman <stephen.berman@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#79528: 30.1; dired errors while handling file names
 embedding newlines
In-Reply-To: <86bjm936yu.fsf@HIDDEN>
References: <E1v2o26-0000000BTsr-2GVJ@HIDDEN>
 <87seg6uc71.fsf@HIDDEN> <E1v2oOc-0000000BV25-1pHC@HIDDEN>
 <87o6quu9tu.fsf@HIDDEN> <86cy73f4ys.fsf@HIDDEN>
 <87v7kl4qzh.fsf@HIDDEN> <868qhh5x42.fsf@HIDDEN>
 <87cy6qkeke.fsf@HIDDEN> <861pn64xlz.fsf@HIDDEN>
 <87jz0x7f7z.fsf@HIDDEN> <86bjm936yu.fsf@HIDDEN>
Date: Thu, 16 Oct 2025 17:44:11 +0200
Message-ID: <87sefilulw.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Provags-ID: V03:K1:NpGpDwIC1yxvvKVaRPAuFSey0r3tyygdSiqn+nGn+760wcZFGQb
 F7c8Yu6hFHlSK5XzAJrMSk/Sesak4vxJ+wHxWwFAm9oLz3Ae/dPfqfAbzXaUIfgvqWqrJO7
 HZQkBfwGYdM/MN5NhB/DZ5tJd6H5VlkIv6r+D8DddBh3wVbAi7tEvfmvwc1p8E8BUsOAAyK
 Ghvf4LAv6WsSFQSlr+CbQ==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:dkCT87Jxu9s=;Nk0Bmfxbpa8LD2dnDIlu6CNsJAc
 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
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 79528
Cc: pot@HIDDEN, 79528 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

--=-=-=
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

On Tue, 14 Oct 2025 17:15:21 +0300 Eli Zaretskii <eliz@HIDDEN> wrote:

>> From: Stephen Berman <stephen.berman@HIDDEN>
>> Cc: pot@HIDDEN,  79528 <at> debbugs.gnu.org
>> Date: Tue, 14 Oct 2025 16:03:28 +0200
>>=20
>> > Thanks.  I don't ATM have time to try this, so if you think the code
>> > is solid, feel free to install the changes, and let's see if it cause=
s
>> > any regressions or unwanted consequences.
>>=20
>> Thanks.  I haven't given it thorough testing but the basic approach
>> seems viable, though it's likely to need tweaking for cases I haven't
>> considered or encountered yet.  In addition, I've now tried to at least
>> partly accommodate Francesco's proposal (see below), and would also
>> appreciate your feedback on that before installing the patch (latest
>> version attached).
>
> I see nothing wrong with the warning text per se, but an alternative
> you perhaps should consider is to place that text in the user manual,
> and then have the warning refer to it.

Yes, I had the same thought and now I've done that (with various
reformulations).  I also corrected an oversight and fixed a minor
problem in the previous patch, removed some unneeded code, and added
NEWS entries.  Latest version attached; I'll wait a bit before
installing it in case you, Francesco or anyone else has objections.

Steve Berman


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment
Content-Description: dired filenames with newline patch
Content-Transfer-Encoding: quoted-printable

diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi
index e49823384ce..bbb0801759e 100644
=2D-- a/doc/emacs/dired.texi
+++ b/doc/emacs/dired.texi
@@ -136,15 +136,57 @@ Dired Enter
 options (starting with @samp{--}) whose arguments are specified with
 @samp{=3D}.
=20
-  Dired does not handle files that have names with embedded newline
-characters well.  If you have many such files, you may consider adding
-@samp{-b} to @code{dired-listing-switches}.  This will quote all
-special characters and allow Dired to handle them better.  (You can
-also use the @kbd{C-u C-x d} command to add @samp{-b} temporarily.)
-
-@code{dired-listing-switches} can be declared as connection-local
-variable to adjust it to match what a remote system expects
-(@pxref{Connection Variables}).
+You can declare @code{dired-listing-switches} as a connection-local
+variable in order to adjust its value to match what a remote system
+expects (@pxref{Connection Variables}).
+
+@cindex file names with newline character
+@cindex newline character in file names
+@anchor{File names with newline}
+  When a file name contains a newline character, Dired displays it by
+default as a literal newline, so the display of this file name occupies
+more than one line in the Dired buffer.  If you invoke a Dired operation
+on such a file listing, in many cases it will fail and signal an error.
+For this reason, when Dired displays a file name containing a literal
+newline, Emacs recognizes this and automatically pops up a buffer with
+an informative warning.  For such file names, Dired offers an
+alternative display, using the @command{ls} switch @samp{-b}, in which
+newline characters are represented by @samp{\n} and the Dired listing of
+the file occupies one line as usual, so you can execute all applicable
+Dired operations on it.@footnote{Note that with the @samp{-b} switch
+Dired displays tab characters in file names as @samp{\t} and escapes
+other control characters and also spaces in file names with @samp{\}.}
+
+  Emacs provides two different ways to make Dired use the @samp{-b}
+switch:
+
+@itemize @bullet
+@item
+You can add @samp{-b} to @code{dired-listing-switches} before invoking
+@code{dired}.  Since this variable is a user option, you can alter its
+value persistently either by using the Customization interface
+(@pxref{Saving Customizations}) or by using the @code{setopt} macro in
+your initialization file (@pxref{Examining}).@footnote{If
+@code{dired-listing-switches} contains @samp{-b} when you invoke dired
+on a directory containing a file name with a newline, the newline is
+displayed as @samp{\n}, so Emacs will not pop up a warning.}  You can
+also add @samp{-b} just for the next @code{dired} invocation by typing
+@kbd{C-u C-x d}.
+
+@item
+@vindex dired-auto-toggle-b-switch
+If you enable the user option @code{dired-auto-toggle-b-switch}, then
+when you visit a directory containing a file whose name has a newline,
+Emacs will automatically add the @samp{-b} switch and redisplay the
+directory in Dired to show @samp{\n} in the file name.  If you edit the
+file name and remove the @samp{\n} character, then on completing the
+edit Emacs automatically removes the @samp{-b} switch and redisplays the
+Dired buffer, so that file names with tab or space characters now show
+literal spaces without a backslash.  If you enable or disable
+@code{dired-auto-toggle-b-switch} after visiting a directory containing
+a file name with a newline, Emacs will add or remove the @samp{-b}
+switch as appropriate and automatically redisplay the Dired buffer.
+@end itemize
=20
 @vindex dired-switches-in-mode-line
   Dired displays in the mode line an indication of what were the
diff --git a/etc/NEWS b/etc/NEWS
index e4024129dec..1f8bac76a4a 100644
=2D-- a/etc/NEWS
+++ b/etc/NEWS
@@ -1997,6 +1997,24 @@ name of the directory now reverts the Dired buffer.
 With a new value of the prefix argument (1), this command copies file
 names relative to the root directory of the current project.
=20
++++
+*** Warning when Dired displays a file name with a literal newline.
+On visiting a directory that contains a file whose name has a newline,
+and Dired displays that character as a literal newline, Emacs now
+automatically pops up a buffer warning that such a display can be
+problematic for Dired and showing a way to change the display to use the
+unproblematic character '\n'.
+
++++
+*** New user option 'dired-auto-toggle-b-switch'
+When this user option is non-nil and 'dired-listing-switches' does not
+include the '-b' switch, then on visiting a directory containing a file
+whose name has a newline, Emacs automatically adds the '-b' switch and
+redisplays the directory in Dired to show '\n' in the file name instead
+of a literal newline.  This prevents executing many Dired operations on
+such a file from failing and signaling an error.  The default value of
+this user option is nil.
+
 ** Grep
=20
 +++
diff --git a/lisp/dired.el b/lisp/dired.el
index 996ca9c23bb..78a6637c133 100644
=2D-- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -550,6 +550,16 @@ dired-filename-display-length
   :group 'dired
   :version "30.1")
=20
+(defcustom dired-auto-toggle-b-switch nil
+  "Whether to automatically add or remove the `b' switch.
+If non-nil, the function `dired--toggle-b-switch' (which see) is added
+to `post-command-hook' in Dired mode."
+  :type 'boolean
+  :group 'dired
+  :initialize #'custom-initialize-default
+  :set #'dired--set-auto-toggle-b-switch
+  :version "31.1")
+
 =0C
 ;;; Internal variables
=20
@@ -1434,6 +1444,11 @@ dired-internal-noselect
       (dired-initial-position dirname))
     (when (consp dired-directory)
       (dired--align-all-files))
+    (unless (or dired-auto-toggle-b-switch
+                (dired-switches-escape-p dired-listing-switches)
+                (dired-switches-escape-p dired-actual-switches))
+      (when (dired--filename-with-newline-p)
+        (dired--display-filename-with-newline-warning buffer)))
     (set-buffer old-buf)
     buffer))
=20
@@ -2852,6 +2867,8 @@ dired-mode
   (add-hook 'file-name-at-point-functions #'dired-file-name-at-point nil =
t)
   (add-hook 'isearch-mode-hook #'dired-isearch-filenames-setup nil t)
   (add-hook 'context-menu-functions 'dired-context-menu 5 t)
+  (when dired-auto-toggle-b-switch
+    (add-hook 'post-command-hook #'dired--toggle-b-switch nil t))
   (run-mode-hooks 'dired-mode-hook))
=20
 =0C
@@ -3430,7 +3447,14 @@ dired-move-to-end-of-filename
   ;; On failure, signals an error (with non-nil NO-ERROR just returns nil=
).
   ;; This is the UNIX version.
   (if (get-text-property (point) 'dired-filename)
-      (goto-char (next-single-property-change (point) 'dired-filename))
+      (goto-char (or (next-single-property-change (point) 'dired-filename=
)
+                     ;; No property change can happen on or before the
+                     ;; last file name in the Dired listing when there
+                     ;; is at least one prior file name containing a
+                     ;; newline.  To prevent an error in this case we
+                     ;; take the position just before the final newline
+                     ;; as the end of the last file name (bug#79528).
+                     (1- (point-max))))
     (let ((opoint (point))
           (used-F (dired-check-switches dired-actual-switches "F" "classi=
fy"))
           (eol (line-end-position))
@@ -3964,6 +3988,82 @@ dired-buffer-more-recently-used-p
        (memq buffer1 (buffer-list))
        (not (memq buffer1 (memq buffer2 (buffer-list))))))
=20
+(defun dired--filename-with-newline-p ()
+  "Check if a file name in this directory has a newline.
+Return non-nil if at least one file name in this directory contains
+either a literal newline or the string \"\\n\")."
+  (save-excursion
+    (goto-char (point-min))
+    (catch 'found
+      (while (not (eobp))
+        (when (dired-move-to-filename)
+          (let ((fn (buffer-substring-no-properties
+                     (point) (dired-move-to-end-of-filename))))
+            (when (or (memq 10 (seq-into fn 'list))
+                      (string-search "\\n" fn))
+              (throw 'found t))))
+        (forward-line)))))
+
+(defun dired--toggle-b-switch ()
+  "Add or remove `b' switch and redisplay Dired buffer.
+When the current Dired buffer has a file name containing a newline, add
+the `b' switch to the actual switches if it isn't already among them;
+otherwise remove the `b' switch unless it is in `dired-listing-switches'.
+Then redisplay the Dired buffer.  This function is called from
+`post-command-hook' in Dired mode buffers."
+  (when (eq major-mode 'dired-mode)
+    (if (dired--filename-with-newline-p)
+        (unless (dired-switches-escape-p dired-actual-switches)
+          (setq dired-actual-switches (concat dired-actual-switches " -b"=
))
+          (dired-revert))
+      (unless (dired-switches-escape-p dired-listing-switches)
+        (when (dired-switches-escape-p dired-actual-switches)
+          (setq dired-actual-switches
+                (replace-regexp-in-string "\\( -\\)?b" ""
+                                          dired-actual-switches))
+          (dired-revert))))))
+
+(defun dired--set-auto-toggle-b-switch (symbol value)
+  "The :set function for user option `dired-auto-toggle-b-switch'."
+  (custom-set-default symbol value)
+  (if value
+      (add-hook 'post-command-hook #'dired--toggle-b-switch nil t)
+    (remove-hook 'post-command-hook #'dired--toggle-b-switch t)
+    (setq dired-actual-switches
+          (replace-regexp-in-string "\\( -\\)?b" "" dired-actual-switches=
))
+    (dired-revert)))
+
+(defun dired--display-filename-with-newline-warning (dir)
+  "Display a warning if buffer DIR has a file name with a newline."
+  (let ((msg "Literal newline in file name.
+This Dired buffer is displaying a file name containing a literal newline
+character.  Executing Dired operations on such files when they are
+displayed this way may fail and signal an error.  To avoid this you can
+change the display so that newlines in file names are shown as \"\\n\"
+by entering `%s' in the minibuffer
+(or by clicking on the highlighted text here).
+See `%s' for more information."))
+    (display-warning
+     'dired
+     (format-message
+      msg
+      (buttonize "M-: (setopt dired-auto-toggle-b-switch t)"
+                 (lambda (_)
+                   (with-current-buffer dir
+                     (setopt dired-auto-toggle-b-switch t)))
+                 nil "mouse-2: Execute code")
+      (buttonize "(emacs) Dired Enter"
+                 (lambda (_)
+                   (info "(emacs) Dired Enter")
+                   (with-current-buffer "*info*"
+                     (Info-goto-node "File names with newline")))
+                 nil "mouse-2: Jump to Info node")))
+    ;; Display *Warnings* buffer with point at start of message instead
+    ;; of at the end.
+    (with-current-buffer "*Warnings*"
+      (set-window-point (get-buffer-window)
+                        (search-backward "Warning (dired)")))))
+
 =0C
 ;;; Deleting files
=20

--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79528; Package emacs. Full text available.

Message received at 79528 <at> debbugs.gnu.org:


Received: (at 79528) by debbugs.gnu.org; 14 Oct 2025 14:15:48 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Oct 14 10:15:48 2025
Received: from localhost ([127.0.0.1]:39309 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1v8foW-0001SQ-Ov
	for submit <at> debbugs.gnu.org; Tue, 14 Oct 2025 10:15:48 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:42610)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1v8foK-0001Rz-KD
 for 79528 <at> debbugs.gnu.org; Tue, 14 Oct 2025 10:15:34 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1v8foC-0005v5-Kg; Tue, 14 Oct 2025 10:15:24 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=GunvRpgnBtA9rVf30ntjECZmTAcrAuiPLKaoK3I5ETw=; b=XQvwzXz8/Ldy
 hsfx6qOU7DLxJKuCuCM+LdGcBEXA8vRWMg4dSrjthruevv8O4eKLpp4263OXhPS6V/tyQm4USnJd3
 YhEZlWBkEqQxcA0RzoHFpieULMNVmEXO1I4ipsQe/l9BXGIFFfHkGPfVDpZuvxotOE9w2/OqPA50v
 YDb0OR+ePlWHepigHzxII916RxVgEbnNK6O3wpzJR4gn+BwaKfHEGccacV7JkgcytgRUK653BtCr7
 P3K7o9kTZIx8ea65F3GvBgduluxRXMUYKDYoyvOngORQKhdLsuRXvbdnAbgNz6lyst9gJm5VacDtF
 /RwjimSipbOcaz7AwkKS6w==;
Date: Tue, 14 Oct 2025 17:15:21 +0300
Message-Id: <86bjm936yu.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Stephen Berman <stephen.berman@HIDDEN>
In-Reply-To: <87jz0x7f7z.fsf@HIDDEN> (message from Stephen Berman on Tue, 14
 Oct 2025 16:03:28 +0200)
Subject: Re: bug#79528: 30.1; dired errors while handling file names
 embedding newlines
References: <E1v2o26-0000000BTsr-2GVJ@HIDDEN>
 <87seg6uc71.fsf@HIDDEN> <E1v2oOc-0000000BV25-1pHC@HIDDEN>
 <87o6quu9tu.fsf@HIDDEN> <86cy73f4ys.fsf@HIDDEN>
 <87v7kl4qzh.fsf@HIDDEN> <868qhh5x42.fsf@HIDDEN>
 <87cy6qkeke.fsf@HIDDEN> <861pn64xlz.fsf@HIDDEN> <87jz0x7f7z.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79528
Cc: pot@HIDDEN, 79528 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Stephen Berman <stephen.berman@HIDDEN>
> Cc: pot@HIDDEN,  79528 <at> debbugs.gnu.org
> Date: Tue, 14 Oct 2025 16:03:28 +0200
> 
> > Thanks.  I don't ATM have time to try this, so if you think the code
> > is solid, feel free to install the changes, and let's see if it causes
> > any regressions or unwanted consequences.
> 
> Thanks.  I haven't given it thorough testing but the basic approach
> seems viable, though it's likely to need tweaking for cases I haven't
> considered or encountered yet.  In addition, I've now tried to at least
> partly accommodate Francesco's proposal (see below), and would also
> appreciate your feedback on that before installing the patch (latest
> version attached).

I see nothing wrong with the warning text per se, but an alternative
you perhaps should consider is to place that text in the user manual,
and then have the warning refer to it.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79528; Package emacs. Full text available.

Message received at 79528 <at> debbugs.gnu.org:


Received: (at 79528) by debbugs.gnu.org; 14 Oct 2025 14:03:59 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Oct 14 10:03:59 2025
Received: from localhost ([127.0.0.1]:39182 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1v8fd5-0000Zq-6g
	for submit <at> debbugs.gnu.org; Tue, 14 Oct 2025 10:03:59 -0400
Received: from mout.gmx.net ([212.227.15.18]:33757)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <stephen.berman@HIDDEN>)
 id 1v8fcu-0000Z7-PG
 for 79528 <at> debbugs.gnu.org; Tue, 14 Oct 2025 10:03:46 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net;
 s=s31663417; t=1760450609; x=1761055409; i=stephen.berman@HIDDEN;
 bh=zuyOmT72qAruyKd50R9wtPGx7fKFbhGLH+DIlvA26oI=;
 h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date:
 Message-ID:MIME-Version:Content-Type:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=LBhS4IwIOJ39nWU0VI/furTI86GOf3rIUdlL8VPAXR9iThkHs+DWnAwrvwvVzw/q
 +8G++bE+uOXFnwVzXvEdTXr2nYgbZ0jSjMcftiPM5aJOHnidduhm4EVslh1pyrXEW
 oI6ThlMQlbAFz//uUuHA6kekHSEnbLNBooxFrIkZkTiGvGce1Xt18+HS7xtVviW8S
 SYoggGMTc8/beM7ECqx1jGI3PPDQxnKUIXqYEpGnrtaejIx3cVdQ12gbOT1ft3XJh
 UakA3rpzhD0NyBsD0dl/C1FLnccD+yosjr5m+fMj4IFb1Lfg4l6RZPalxRG072h5E
 slF3XLNgePuaZjP7EA==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from strobelfs2 ([94.134.95.221]) by mail.gmx.net (mrgmx005
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1M2wL0-1v5Mlx08nE-008O3w; Tue, 14
 Oct 2025 16:03:29 +0200
From: Stephen Berman <stephen.berman@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#79528: 30.1; dired errors while handling file names
 embedding newlines
In-Reply-To: <861pn64xlz.fsf@HIDDEN>
References: <E1v2o26-0000000BTsr-2GVJ@HIDDEN>
 <87seg6uc71.fsf@HIDDEN> <E1v2oOc-0000000BV25-1pHC@HIDDEN>
 <87o6quu9tu.fsf@HIDDEN> <86cy73f4ys.fsf@HIDDEN>
 <87v7kl4qzh.fsf@HIDDEN> <868qhh5x42.fsf@HIDDEN>
 <87cy6qkeke.fsf@HIDDEN> <861pn64xlz.fsf@HIDDEN>
Date: Tue, 14 Oct 2025 16:03:28 +0200
Message-ID: <87jz0x7f7z.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Provags-ID: V03:K1:gT4/GpUm5t0fR3xQNhm7OEbAiMz/lOVJDv+A2QDm0B9TFWPbMct
 8/tQMMsCRvnvYrgOealnargxm0eXDOPGsgOJzJ2HGpip9kQkfDBeg4To20NZIJ4uSATO1Al
 XnyqUPRexSfEeOsNHA5HSrslqWHAXJDRrc9lSlDbDM+F08wi9x4/gyxAL8OHchT7KtTrkju
 oeGJ4asIc+S8dsVtp6Qaw==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:+F7Qe4YrxZ0=;VEse8SiKXuCxHxUpczhUHCzAClO
 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
 thjh33mglI+QJKn3o=
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 79528
Cc: pot@HIDDEN, 79528 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, 13 Oct 2025 18:42:16 +0300 Eli Zaretskii <eliz@HIDDEN> wrote:

>> From: Stephen Berman <stephen.berman@HIDDEN>
>> Cc: pot@HIDDEN,  79528 <at> debbugs.gnu.org
>> Date: Mon, 13 Oct 2025 17:26:57 +0200
>>=20
>> On Sat, 11 Oct 2025 17:30:53 +0300 Eli Zaretskii <eliz@HIDDEN> wrote:
[...]
>> > AFAIR, using -b has some unpleasant consequences in other cases (if it
>> > didn't, we ought to include -b in the default value of the switches),
>> > so I wouldn't apply it automatically.
>>=20
>> How about if it's enabled by setting a user option?  The attached patch
>> does that.
[...]
> Thanks.  I don't ATM have time to try this, so if you think the code
> is solid, feel free to install the changes, and let's see if it causes
> any regressions or unwanted consequences.

Thanks.  I haven't given it thorough testing but the basic approach
seems viable, though it's likely to need tweaking for cases I haven't
considered or encountered yet.  In addition, I've now tried to at least
partly accommodate Francesco's proposal (see below), and would also
appreciate your feedback on that before installing the patch (latest
version attached).

On Mon, 13 Oct 2025 17:50:22 +0200 Francesco Potort=C3=AC <pot@HIDDEN> =
wrote:

>>On Sat, 11 Oct 2025 18:59:12 +0200 Francesco Potort=C3=AC <pot@HIDDEN=
> wrote:
>>> Thank you for working on this issue.  This is a user view of what I thi=
nk
>>> would be a good behaviour ...
>
> Stephen Berman:
>>This seems like a rather complex UI, and seeing the message each time
>>and having to answer the question could be annoying.
>
> I fear my message was confusing, as this looks a simple interface to me.
> Whether it is easy to detect am embedded newline is another matter.  Tryi=
ng to
> reformulate:
>
> Each time an operation is requested on any file, Dired checks whether the=
 file
> name contains a newline.  If it does, Dired will not perform the requested
> action, but rather asks this question:
>
> |Dired cannot perform the requested action, because the file name
> |contains a newline.  Dired can redisplay the directory using the -b
> |option to ls, which has the effect of quoting all spaces for all
> |files in the directory.  After redisplay, you can issue the command
> |again.
> |
> |Do you want to launch Dired now using the -b flag to ls?
>
> In other words, rather than erroring out as Dired does now, the above que=
stion
> is asked.  If the user answers no, Dired does nothing.  If the user answe=
rs
> yes, Dired redisplays with -b and does nothing more.

Thanks for the clarification.  With my patch there is no longer an error
on invoking Dired to display a directory with a file whose name contains
a newline, though errors can occur when try to perfom certain
operations.  Therefore, my patch enables automatically switching to a
Dired display using -b, conditioned by a user option.  I've now
augmented my patch (attached) so that when the user option is disabled
(as it is by default), displaying a problematic directory in Dired pops
up a *Warnings* buffer that explains the problem and what you can do
about it (and includes buttons to act immediately).  The text I've
written is rather verbose and I'm not sure it's appropriate for a
warning; it's actually more or less what I would add to the Emacs manual
to update node "Dired Enter" when the patch is committed.  In that case,
the warning could be shortened and contain a link to that node.  But I'm
not sure what to omit while keeping the warning useful.  Here's the
current text of the warning:

---------------------------------------------------------------------
=E2=9B=94 Warning (dired): Literal newline in file name.

This Dired buffer is displaying a file name with a literal embedded
newline character.  Dired cannot perform certain operations, such as
renaming and deletion, on such files when they are displayed this way.
You can change the display so that newlines in file names are shown as
"\n".  Then the corresponding file listings occupy a single line and
you can execute all applicable Dired operations on them.

To change the display of newlines in file names temporarily, enter
=E2=80=98M-: (setopt dired-auto-toggle-b-switch t)=E2=80=99 in the minibuff=
er
(or click on the highlighted text here).  This also displays tab
characters and spaces in file names as "\t" and "\ ",
respectively.  If you edit the file names to delete the newlines, the
display automatically reverts to showing literal tabs and spaces.  You
can manually restore the literal display by entering (or clicking on)
=E2=80=98M-: (setopt dired-auto-toggle-b-switch nil)=E2=80=99.

To permanently change the display of such characters in file names,
type (or click on) =E2=80=98M-x customize-option RET dired-auto-toggle-b-sw=
itch RET=E2=80=99
and then enable (or disable) this user option and save the setting for
future sessions.
---------------------------------------------------------------------

Steve Berman


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment
Content-Description: dired file name with newline patch
Content-Transfer-Encoding: quoted-printable

diff --git a/lisp/dired.el b/lisp/dired.el
index 996ca9c23bb..1f1d9ca0a84 100644
=2D-- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -550,6 +550,16 @@ dired-filename-display-length
   :group 'dired
   :version "30.1")
=20
+(defcustom dired-auto-toggle-b-switch nil
+  "Whether to automatically add or remove the `b' switch.
+If non-nil, the function `dired--toggle-b-switch' (which see) is added
+to `post-command-hook' in Dired mode."
+  :type 'boolean
+  :group 'dired
+  :initialize #'custom-initialize-default
+  :set #'dired--set-auto-toggle-b-switch
+  :version "31.1")
+
 =0C
 ;;; Internal variables
=20
@@ -1434,6 +1444,9 @@ dired-internal-noselect
       (dired-initial-position dirname))
     (when (consp dired-directory)
       (dired--align-all-files))
+    (unless dired-auto-toggle-b-switch
+      (when (dired--filename-with-newline-p)
+        (dired--display-filename-with-newline-warning buffer)))
     (set-buffer old-buf)
     buffer))
=20
@@ -2852,6 +2865,8 @@ dired-mode
   (add-hook 'file-name-at-point-functions #'dired-file-name-at-point nil =
t)
   (add-hook 'isearch-mode-hook #'dired-isearch-filenames-setup nil t)
   (add-hook 'context-menu-functions 'dired-context-menu 5 t)
+  (when dired-auto-toggle-b-switch
+    (add-hook 'post-command-hook #'dired--toggle-b-switch nil t))
   (run-mode-hooks 'dired-mode-hook))
=20
 =0C
@@ -3430,7 +3445,14 @@ dired-move-to-end-of-filename
   ;; On failure, signals an error (with non-nil NO-ERROR just returns nil=
).
   ;; This is the UNIX version.
   (if (get-text-property (point) 'dired-filename)
-      (goto-char (next-single-property-change (point) 'dired-filename))
+      (goto-char (or (next-single-property-change (point) 'dired-filename=
)
+                     ;; No property change can happen on or before the
+                     ;; last file name in the Dired listing when there
+                     ;; is at least one prior file name containing a
+                     ;; newline.  To prevent an error in this case we
+                     ;; take the position just before the final newline
+                     ;; as the end of the last file name (bug#79528).
+                     (1- (point-max))))
     (let ((opoint (point))
           (used-F (dired-check-switches dired-actual-switches "F" "classi=
fy"))
           (eol (line-end-position))
@@ -3964,6 +3986,99 @@ dired-buffer-more-recently-used-p
        (memq buffer1 (buffer-list))
        (not (memq buffer1 (memq buffer2 (buffer-list))))))
=20
+(defun dired--filename-with-newline-p ()
+  "Check if a file name in this directory has a newline.
+Return non-nil if at least one file name in this directory contains
+either a literal newline or the string \"\\n\")."
+  (save-excursion
+    (goto-char (point-min))
+    (catch 'found
+      (while (not (eobp))
+        (when (dired-move-to-filename)
+          (let ((fn (buffer-substring-no-properties
+                     (point) (dired-move-to-end-of-filename))))
+            (when (or (memq 10 (seq-into fn 'list))
+                      (string-search "\\n" fn))
+              (throw 'found t))))
+        (forward-line)))))
+
+(defun dired--toggle-b-switch ()
+  "Add or remove `b' switch and redisplay Dired buffer.
+When the current Dired buffer has a file name containing a newline, add
+the `b' switch to the actual switches if it isn't already among them;
+otherwise remove the `b' switch unless it is in `dired-listing-switches'.
+Then redisplay the Dired buffer.  This function is called from
+`post-command-hook' in Dired mode buffers."
+  (when (eq major-mode 'dired-mode)
+    (if (dired--filename-with-newline-p)
+        (unless (and dired-actual-switches
+                     (dired-switches-escape-p dired-actual-switches))
+          (setq dired-actual-switches (concat dired-actual-switches " -b"=
))
+          (dired-revert))
+      (unless (dired-switches-escape-p dired-listing-switches)
+        (when (and dired-actual-switches
+                   (dired-switches-escape-p dired-actual-switches))
+          (setq dired-actual-switches
+                (replace-regexp-in-string "\\( -\\)?b" ""
+                                          dired-actual-switches))
+          (dired-revert))))))
+
+(defun dired--set-auto-toggle-b-switch (symbol value)
+  "The :set function for user option `dired-auto-toggle-b-switch'."
+  (custom-set-default symbol value)
+  (if value
+      (add-hook 'post-command-hook #'dired--toggle-b-switch nil t)
+    (remove-hook 'post-command-hook #'dired--toggle-b-switch t)
+    (setq dired-actual-switches
+                    (replace-regexp-in-string "\\( -\\)?b" ""
+                                              dired-actual-switches))
+    (dired-revert)))
+
+(defun dired--display-filename-with-newline-warning (dir)
+  "Display a warning if buffer DIR has a file name with a newline."
+  (let ((msg "Literal newline in file name.
+
+This Dired buffer is displaying a file name with a literal embedded
+newline character.  Dired cannot perform certain operations, such as
+renaming and deletion, on such files when they are displayed this way.
+You can change the display so that newlines in file names are shown as
+\"\\n\".  Then the corresponding file listings occupy a single line and
+you can execute all applicable Dired operations on them.
+
+To change the display of newlines in file names temporarily, enter
+`%s' in the minibuffer
+(or click on the highlighted text here).  This also displays tab
+characters and spaces in file names as \"\\t\" and \"\\ \",
+respectively.  If you edit the file names to delete the newlines, the
+display automatically reverts to showing literal tabs and spaces.  You
+can manually restore the literal display by entering (or clicking on)
+`%s'.
+
+To permanently change the display of such characters in file names,
+type (or click on) `%s'
+and then enable (or disable) this user option and save the setting for
+future sessions."))
+    ;; FIXME: How to display *Warnings* buffer with point at start of
+    ;; message instead of at the end?  The following does not do this.
+    (let (warning-display-at-bottom)
+      (display-warning
+       'dired
+       (format-message
+        msg
+        (buttonize "M-: (setopt dired-auto-toggle-b-switch t)"
+                   (lambda (_)
+                     (with-current-buffer dir
+                       (setopt dired-auto-toggle-b-switch t))))
+        (buttonize "M-: (setopt dired-auto-toggle-b-switch nil)"
+                   (lambda (_)
+                     (with-current-buffer dir
+                       (setopt dired-auto-toggle-b-switch nil))))
+        (buttonize "M-x customize-option RET dired-auto-toggle-b-switch R=
ET"
+                   (lambda (_) (customize-option 'dired-auto-toggle-b-swi=
tch)))))
+      (with-current-buffer "*Warnings*"
+        (goto-char (search-backward "Warning (dired)"))
+        (set-window-point (selected-window) (point))))))
+
 =0C
 ;;; Deleting files
=20

--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79528; Package emacs. Full text available.

Message received at 79528 <at> debbugs.gnu.org:


Received: (at 79528) by debbugs.gnu.org; 13 Oct 2025 15:50:38 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Oct 13 11:50:38 2025
Received: from localhost ([127.0.0.1]:52603 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1v8Koo-0007zT-6e
	for submit <at> debbugs.gnu.org; Mon, 13 Oct 2025 11:50:38 -0400
Received: from plesklin7.if2.ehiweb.it ([79.98.45.17]:49851
 helo=plesklin7.ehiweb.it)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <pot@HIDDEN>) id 1v8Koc-0007yt-UH
 for 79528 <at> debbugs.gnu.org; Mon, 13 Oct 2025 11:50:30 -0400
Received: from tucano.isti.cnr.it (tucano.isti.cnr.it [146.48.81.102])
 by plesklin7.ehiweb.it (Postfix) with ESMTPSA id EAB0F1CB34F;
 Mon, 13 Oct 2025 17:50:22 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=potorti.it;
 s=default; t=1760370623;
 bh=43gzFJqfRpk0ViDMLmLn7fFVgNd5XTbxAyFqXq7Tm80=;
 h=Received:From:To:Subject;
 b=BoPthYVoHVCimMouYCBkd35sJEVYeZAdyrxJYlWeKPPfxFAvG8dwhBxaN6/JPZB8S
 i9pF77kk3J+TTXBMc0c8+knaF95931dIhpzClBTxGkOePM6zYU+MrZjTaynLb+0TJB
 Qqaq3KOAmlkegUSf2oScC6mCJ1XZgSQn9oaa2d3Y=
Authentication-Results: plesklin7.ehiweb.it;
 spf=pass (sender IP is 146.48.81.102) smtp.mailfrom=pot@HIDDEN
 smtp.helo=tucano.isti.cnr.it
Received-SPF: pass (plesklin7.ehiweb.it: connection is authenticated)
Received: from pot by tucano.isti.cnr.it with local (Exim 4.98.2)
 (envelope-from <pot@HIDDEN>) id 1v8KoY-00000005HrG-37E9;
 Mon, 13 Oct 2025 17:50:22 +0200
From: =?utf-8?Q?Francesco_Potort=C3=AC?= <pot@HIDDEN>
Date: Mon, 13 Oct 2025 17:50:22 +0200
To: Stephen Berman <stephen.berman@HIDDEN>
In-Reply-To: <87cy6qkeke.fsf@HIDDEN> (stephen.berman@HIDDEN)
Subject: Re: bug#79528: 30.1; dired errors while handling file names
 embedding newlines
References: <E1v2o26-0000000BTsr-2GVJ@HIDDEN>
 <87seg6uc71.fsf@HIDDEN> <E1v2oOc-0000000BV25-1pHC@HIDDEN>
 <87o6quu9tu.fsf@HIDDEN> <86cy73f4ys.fsf@HIDDEN>
 <87v7kl4qzh.fsf@HIDDEN> <868qhh5x42.fsf@HIDDEN> <87cy6qkeke.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-fingerprint: 4B02 6187 5C03 D6B1 2E31  7666 09DF 2DC9 BE21 6115
Message-Id: <E1v8KoY-00000005HrG-37E9@HIDDEN>
X-PPP-Message-ID: <176037062305.3634169.17207825759200280806@HIDDEN>
X-PPP-Vhost: potorti.it
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 79528
Cc: Eli Zaretskii <eliz@HIDDEN>, 79528 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

>On Sat, 11 Oct 2025 18:59:12 +0200 Francesco Potort=C3=AC <pot@HIDDEN>=
 wrote:
>> Thank you for working on this issue.  This is a user view of what I think
>> would be a good behaviour ...

Stephen Berman:
>This seems like a rather complex UI, and seeing the message each time
>and having to answer the question could be annoying.

I fear my message was confusing, as this looks a simple interface to me.  W=
hether it is easy to detect am embedded newline is another matter.  Trying =
to reformulate:

Each time an operation is requested on any file, Dired checks whether the f=
ile name contains a newline.  If it does, Dired will not perform the reques=
ted action, but rather asks this question:

|Dired cannot perform the requested action, because the file name contains =
a newline.
|Dired can redisplay the directory using the -b option to ls, which has the=
 effect of quoting
|all spaces for all files in the directory.  After redisplay, you can issue=
 the command again.
|
|Do you want to launch Dired now using the -b flag to ls?

In other words, rather than erroring out as Dired does now, the above quest=
ion is asked.  If the user answers no, Dired does nothing.  If the user ans=
wers yes, Dired redisplays with -b and does nothing more.

If redisplaying using the -b flag is too complex, or if you think it isn't =
worth doing that, then Dired can just display a warning and do nothing else=
, like this:

|Dired cannot perform the requested action, because the file name contains =
a newline.
|You can call Dired with the -b option to ls, which has the effect of quoti=
ng
|all spaces for all files in the directory.  After redisplay, you can issue=
 the command again.
|Use C-u M-x dired to do that.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79528; Package emacs. Full text available.

Message received at 79528 <at> debbugs.gnu.org:


Received: (at 79528) by debbugs.gnu.org; 13 Oct 2025 15:42:32 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Oct 13 11:42:32 2025
Received: from localhost ([127.0.0.1]:52592 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1v8Kgx-0007Xh-Ub
	for submit <at> debbugs.gnu.org; Mon, 13 Oct 2025 11:42:32 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:55186)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1v8Kgt-0007X4-Mx
 for 79528 <at> debbugs.gnu.org; Mon, 13 Oct 2025 11:42:29 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1v8Kgm-00072Y-GM; Mon, 13 Oct 2025 11:42:20 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=SUgYqDNwl3/ZSymQwgLWGuYA+ThVXPIHriYK1XqeyLY=; b=HadWVrU6p1xM
 Qy/jKEiSv4HJX2wZlaw2cpdKR775H+1kkzCoL574aQfh3N7rEyov+nk87vO5tJPLuLRkrXwhO9+uq
 pNVxFB4HBjfSUvsYW6MCy+aAfoRYksVTKeyzQNf/NF+dDmoTy7oVHVwf8NHbnn7mqGGnF8GHUx847
 7OjuNdFNq38pv6+OVwz4HUwJy5w/BKXynKGzqDKyiWZHZ7wV4+r3b5F0yrJQSsg/NywaMqXSon1yh
 DZxcv4mHKFXsk2+ru4dNUelrWKDwr0g86JD1Dp/Z+hN3UpSTMkcoWV9mNX6cI9mCtMX5ssCozFJTr
 AteoTUL6G1Ip04chVwFUqQ==;
Date: Mon, 13 Oct 2025 18:42:16 +0300
Message-Id: <861pn64xlz.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Stephen Berman <stephen.berman@HIDDEN>
In-Reply-To: <87cy6qkeke.fsf@HIDDEN> (message from Stephen Berman on Mon, 13
 Oct 2025 17:26:57 +0200)
Subject: Re: bug#79528: 30.1; dired errors while handling file names
 embedding newlines
References: <E1v2o26-0000000BTsr-2GVJ@HIDDEN>
 <87seg6uc71.fsf@HIDDEN> <E1v2oOc-0000000BV25-1pHC@HIDDEN>
 <87o6quu9tu.fsf@HIDDEN> <86cy73f4ys.fsf@HIDDEN>
 <87v7kl4qzh.fsf@HIDDEN> <868qhh5x42.fsf@HIDDEN> <87cy6qkeke.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79528
Cc: pot@HIDDEN, 79528 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Stephen Berman <stephen.berman@HIDDEN>
> Cc: pot@HIDDEN,  79528 <at> debbugs.gnu.org
> Date: Mon, 13 Oct 2025 17:26:57 +0200
> 
> On Sat, 11 Oct 2025 17:30:53 +0300 Eli Zaretskii <eliz@HIDDEN> wrote:
> 
> >> From: Stephen Berman <stephen.berman@HIDDEN>
> >> Cc: pot@HIDDEN,  79528 <at> debbugs.gnu.org
> >> Date: Sat, 11 Oct 2025 13:28:34 +0200
> >> 
> >> > I'm okay with something like that, but could the code make sure we
> >> > indeed have a file name with an embedded newline?  It looks to me like
> >> > the above is a somewhat far-fetched conjecture, and if so, the
> >> > user-friendly error message might be inaccurate.
> >> 
> >> After looking into this issue more closely, I think the situation is
> >> unclear and somewhat complex; however, to avoid opening a can of worms
> >> in this bug thread, for now I'll assume you're right.  In that case, I
> >> think this patch addresses your concern:
> >
> > LGTM, thanks.  I think we should install this.
> 
> Unfortunately, I didn't adequately test that patch.  It turns out that
> if a directory contains both a file whose name has a newline and a file
> whose name does not have a newline and in the default display of this
> directory the latter file is the last one, then visiting this directory
> in Dired does not signal an error.  Morever, typing "R" on the first
> file listing (with the newline) also does not signal an error (but
> renaming fails with a file-missing error), while typing "R" on the last
> file (without the newline) does signal a wrong-type-argument error.  The
> reason for these observations has to do with the "can of worms" I
> referred to above; I still don't want to go into that here, but my
> conclusion is that it is not sufficient to test only whether the current
> file name in the Dired listing contains a newline; rather, it is
> necessary to test whether there is at least one file in the directory
> whose name contains a newline.  I've implemented a function that does
> that in the attached patch.
> 
> However, such a check is not needed to avoid the wrong-type-argument
> error; instead, I found a simple way: in the definition of
> `dired-move-to-end-of-filename', if there is no change in the
> `dired-filename' text property, just use the position before the last
> newline in the buffer as the end of the file name.  I already did this
> in my previous patch when checking for a newline in the file name, but
> it turns out to be sufficient irrespective of the newline check (the
> reason has to do again with the "can of worms"...).  With this change
> all dired-* ERT tests still pass (though I'm sure that's because the
> current tests do not consider cases where there is no change in the
> `dired-filename' text property; if the attached patch is accepted, I
> will try to add relevant tests).
> 
> Although this simple change avoids the errors reported in this bug,
> there are still problems with literal newlines in file names in Dired
> buffers, e.g, renaming and deleting fail as above with a file-missing
> error.  So I think redisplaying the Dired buffer using the -b switch,
> which I believe does not have such problems, is still worth doing.
> 
> >> But I think we can do better than signalling an error and giving it a
> >> more helpful message.  If we think that the best way for Dired to handle
> >> file names containing newlines is to use the -b switch, we can have
> >> Emacs automatically redisplay the Dired buffer using that switch when it
> >> detects such a file name.  The following patch does this:
> >
> > AFAIR, using -b has some unpleasant consequences in other cases (if it
> > didn't, we ought to include -b in the default value of the switches),
> > so I wouldn't apply it automatically.
> 
> How about if it's enabled by setting a user option?  The attached patch
> does that.
> 
> >> In my initial testing I haven't noticed serious problem with this patch,
> >> but there is a minor issue: If the directory contains both a file whose
> >> name contains a newline and one whose name contains a space, using -b
> >> adds an escape before the space; if the newline (displayed as `\n') is
> >> removed from the name of the first file, the backslash remains before
> >> the space, because the -b switch is still in effect, though after
> >> killing the Dired buffer and revisiting it, the backslash is gone.
> >
> > This is one unpleasant consequence of using -b, but there are others
> > (I just don't remember them ATM).
> 
> Another one I found is file names with a tab character, displayed as
> `\t' with -b but as a space without -b.
> 
> >> If this is deemed unacceptable, I'll try to fix it.
> >
> > I'm not sure it's worth your time, but feel free to try, of course.
> 
> I came up with a function that, when all newlines in file names are
> removed, automatically removes the -b switch from the actual switches
> and redisplays the Dired buffer, so names with spaces or tabs are shown
> just with spaces, i.e., no backslash or `\t'.  (Again, as with adding
> -b, removing it is conditioned by enabling the user option.)

Thanks.  I don't ATM have time to try this, so if you think the code
is solid, feel free to install the changes, and let's see if it causes
any regressions or unwanted consequences.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79528; Package emacs. Full text available.

Message received at 79528 <at> debbugs.gnu.org:


Received: (at 79528) by debbugs.gnu.org; 13 Oct 2025 15:27:21 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Oct 13 11:27:21 2025
Received: from localhost ([127.0.0.1]:52562 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1v8KSG-0006gf-Km
	for submit <at> debbugs.gnu.org; Mon, 13 Oct 2025 11:27:21 -0400
Received: from mout.gmx.net ([212.227.15.15]:41931)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <stephen.berman@HIDDEN>)
 id 1v8KSA-0006gC-Vo
 for 79528 <at> debbugs.gnu.org; Mon, 13 Oct 2025 11:27:17 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net;
 s=s31663417; t=1760369218; x=1760974018; i=stephen.berman@HIDDEN;
 bh=rO85hQ+dI4kMDxG/Ju6q5nsHzG0iDDcWyfXQphka3eA=;
 h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date:
 Message-ID:MIME-Version:Content-Type:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=dMYxpzZLNhU2tZIOtJhFrpViu5rnX/WEPwhNqJFhbMbbSbj0+njfKuoHQ+akuBS9
 xD7UAadcK829JJR/5xWKipAO69Qij4kembgPqpHvC2DLPf1uue3HUvPf5Vi62VRVk
 qpcGp22xAz5N88Ii1CeWm4nL+LSYvf5cnR0ONnXcJ9nf7Heq1aJkkHkOOns4Ve5WR
 BVmb8MJ4sqYzA0hc3go4XUEhDL8+l8/bA1yZIJWAnsTKPzftdrAA7Ur/hdkcsLX6/
 dX35etMlXw6Fy825hmyjFEL1UZTHwL+TjVc66ZNa/ypDRQg9c08Y8Keqzo0GbMTp5
 ZJQt91hH0rcVv4e3ig==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from strobelfs2 ([94.134.95.168]) by mail.gmx.net (mrgmx005
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MMofW-1uphdV435Y-00Nrul; Mon, 13
 Oct 2025 17:26:58 +0200
From: Stephen Berman <stephen.berman@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#79528: 30.1; dired errors while handling file names
 embedding newlines
In-Reply-To: <868qhh5x42.fsf@HIDDEN>
References: <E1v2o26-0000000BTsr-2GVJ@HIDDEN>
 <87seg6uc71.fsf@HIDDEN> <E1v2oOc-0000000BV25-1pHC@HIDDEN>
 <87o6quu9tu.fsf@HIDDEN> <86cy73f4ys.fsf@HIDDEN>
 <87v7kl4qzh.fsf@HIDDEN> <868qhh5x42.fsf@HIDDEN>
Date: Mon, 13 Oct 2025 17:26:57 +0200
Message-ID: <87cy6qkeke.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Provags-ID: V03:K1:O7FFMTQnxK7qpWvhYGih8RgcnkoNRfbnExgKB87y6+txQWhrcr0
 EaEgOmqHBVDFKvWvN0thr5RMEcELKw7Sd8la4D2HqB5zAkNFV7DGzpP6hVsBBG4sScsLUq7
 RQsyLwT+mZy5Q6vIT942zESXVsYRLeZd7KLmpzktVexpjotOdJjBGtqYWk3v0lxY+WH46yb
 /I28uJzMBWO8YbnJw6KZw==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:Fr9i4wmCPYQ=;C0Ah3Z2/KQsq45nIR5GLOsOsbS6
 8wu08iEx5yx7ixV7mjsARcKAsWpEUR31K+UIme2CshitIouztB57YuPGdTxPfUxa/hCj4rl+5
 0pZUydAFZ0lGO5L8QmiqE0w/ZfqK+ZEO+x8WgN/fOavc569CNCmMOCKgg2ZldHqffmKQr+FSn
 1/guV2UR9WD5LCb1fEgu+pv8tcer3k8kq9UvqynjcMk5aU9Vteptw+cCWI8ueD+E0KoP905Qt
 bd/7kNzceKGLZtnrLw0OVJjQQrrEuh9XBL1jogVc2CHCnJVCu9iTiPyHLYg1xy+Kzk+GIDpkL
 yiri6U6tLA1t9bIz+lJZP0yZUlNWBL0e9H4L30Olg3C424IFWc6RqchdcZc8fovN3OczQBX/u
 VKHojMlzyTyn8AtyrDpG4TRS/M6k7OBeNUUKWl3J9BJrvg1foHMz1sRbfyhtU60ISXbP2Ram5
 cTgMgL+iKfWu+R/uokrIro4sk2NXhS7C5WuUEUX+O4uoc83PH0GJxoZbe8ZLOSdFdSgMsyvyx
 gdayZYLN+NIKtUWMv+pGezJUO7KwJxx5ble2swQvhIk8QBNFciSUpgkgaBJ31ZVu6YCnivB9y
 2oTA9NEO0li1xhCZt96AB3+tKKYBKxr28M/SZsxtvXzfoJuW7D4SM5SrLr2ZRD2a37P+ZaW0c
 b/94IrqcbJQ3wi2x3q57dOU2TCPxdoH1QHmlV4dCQRLeE/cx76E0Hwbcuau/s+XsHJai7zI2a
 SsXYxID/OQHfBoG1JYm05eT7qo/VkNE/7jctxl3ZZMHB0xdeiZrLq4HeGMVDmDTP+wfFeg3mE
 GXpbOhmat/NPfyJ3jADo5Rh196pP08GUSWCQBiz2fXPyD5MvxTjkulbotWWbsXgtut8s7XijN
 H4KXrBz4n7ZzxsYYuSa/z9o9PGNOWfz/+Qr0YU423d7Hpdb5q+Mwofx7Zg94TyRsWSmdx6F3I
 Y5wmwC/pD44CSwUKhZS4WVtQrIYsggEAljpSHbrs4+rsaEe1+O0Fj6/XjEZKDur/4EzFhF2To
 s4ufrRLYKLRvYuGUyuWyk5207RnzlV/FbdU7DAG6Pqf/BPN+rqf229Gc+HLySW37feFtbXbtP
 5jAEkFb9hPY7z3exk73EQrp2NTjS4MXZSIW34bbUUCh3UH98bwZr9945brVqesx51eaSWtolp
 R8imadypsKbgrau2FF71rcfXBkGazAK+gaNK/vHzbDV2wdpIAU4CjsSO66shujes4RJ3AOdrG
 ucssmGgOygw8kIXI2cWOC3iepKZXBJfegQWcRLlY1IJYT3Kltah/qW9Q4CZI973O+/UEmzczL
 U6jTTZqzBoiDY5JdjoJ8RtmLtdydo4D8qon39A+WlvPAs9BnAsUjcVlGpN3ApHK24ff8vmQMU
 NTf92PavVTDM33m4N42dq+3nuI7cFnr53vwUCO6++RQvr53q6WoEHtiudQ4RPoyGgdsd88w79
 uWP9zB+oRmxKp/6fu7E4ZMkEwfu7QXnEjee6s+Q3xo/lsi1plNzbcjwF8NFBjuGlAzvXZurJ1
 RnNtPHeerMRqv23J8Vv+j2k0CKKLyjYtqZoybSUfMmqKItheXrpBKqhXXjPP8gtvWUNmHv419
 27EvN/Pjzqy2p5MmZyvT7ZZiyMOBRDjucRNH/uLj8H4DSoVuqZf650xWnRvdYMlXLSHC+Y3R1
 4wvHQjLGLFynNG/WE66ALeELJ4yRt407Q6sDgpNV+Pcav97pECp8u0+0ZYznM9BCG5Nbs3OZF
 plj7nGIAiTkQ57N+9Ce6tipDxENS/rTaM+xIzvaaKL5VqRdYgZdLWfD4JvDRvuPB3qXORJz6l
 7MLki5ZkInpLNBqkrZTK6FmuSMWtgALQinI98NCm0O/COHDzQbWdsEPWhK+t9KvhoH+k0iWYz
 XyCcOiBBE68qdafhVbuMMeDkjpWvQQX/d9jYJZpSoWTzVq8PeR0hADiTRnJZceKcHpL5UyoD+
 ef7yCfgOln6uO10thcSjCY+N0gJBq4KEE2pP38Hu6X1Bme667QS5gDjgEX11kM+npcsXEpWoo
 J8rvZs2fIQN9uvzTk5HhmZM4Efq9pQyZdet/BxoFPytKGjU8RXOLEqzQzw1Lbvc+oKXeryILN
 T/zU/5wdS7ZD0iWKEg7bS1hZzmcLxvK7rzgxyd6inE1Ut2TwwUWdBSk0leyHyoejHzqHBY45H
 1uUZ6+tSnuyfTKdqg43fosmrzpYa/uCkTIPSv61KZMQ6noLy8TqgsjOT2NmubzZeov4s7KKK7
 0cyUSvSjYVmPCC8d1Lfo1/A8ia7NS3/MPXWz7yRM0yLNFkFfamS4yXyY9Q7CM1I/CBXe5cQhz
 GuVa8o1xIZt5yuW93WJfVogaQ0YZXHT91SOdlZVfztIC+HqpjTPH0Wyum84J+NRD9r2+hon/p
 J3gD72HNkTEMt/0BmBBxnVlhDlR+BZcAEugV312Ebn0F/C1o/axUocHp8PgL+rgP3S57fT4iW
 CCLlip3cyX9XKMzQhdp2H1C7nbvXjan3BrCyCgYQA1ftNJsDec4psHbHGrF2jqtFqD3CG4f+Q
 EJQ4Yog1UPH1f01Ba8wz30ZVroW3nqYtYIXFFvac4GJ3k2gxOidriSWWpIfMkudntY3gzL329
 OVXdq/76Pg1sNPSjy8BywVaLpCI9br4VgoWW8qt/Rq1TFXoj0hJut/dZ97watD+fuAdyywxbl
 84K7sMAFQmGSQRM1cLybnNvtzRfBXE1HBoF3YD/aHUIfE9bBAvnhKIZB+U+FptuXfwCRr1Zoz
 0z/7VijdYzZnejHk2TxXgOGLQQtNsb4JG4vH4Dye3ZtyGZ4fPMPMVE0znLk5dp/r0q2u6au+v
 VKZzDX5zXiyh4Tl8o6v1wItOK7dHd4/cFW6Xa6OhCZxWPrnXtbGVyibEI36O+DrDVvg0JGhqI
 72GbMACTN8Dn4YFJOORC8JQsPQH1OxKuabr3bGqXYGuwjqE3tc5lKFinHmEuDIWfrYTsjZt1M
 znLyRAM2sMxMERMLlVe7EREGpu2ES4ZCJ/rsH0GcB/c2bczpeM40B+R1M6lISaELhgdloY1ui
 M/oTVBK0zPv5XlJ4PnCaqi6uYNMp4xV39+ZOuSlewS4NKVnqoWMd3+GLgCAQvp1Jec1NRJ6e0
 DV74Y4ldIR0PqXZi9avBKt64uGaKM2i0zYRUb7NKliwTaBXixwmP4uTPJmLTWW76pEzeIxWW8
 4S2X2YHrCQkx187/Y3r8J4KTphtREYBOMXshjGHkXdnAQlq5oD9xVYHBwBcCWVzKxrH3ILyKy
 Ik8et77M1x7/+b0/j569O6ODbhUmLsqC3iT/nwc4rbk2Siv0F9eOtjeC9t1BUps+W1WdS0VoN
 FMG96jfM207O6qjDCm3d2EVLUhR2s4TnDyujA3Tmwpfwkuv2pmPjetm07qecXz9ts804aAzUG
 NZwv1TK984cSvCvFKCLrLql96DkXS/3xJikJ16RStH15v543LMFI1GcORYjTk2Mm/zOIUV/7F
 +19Lp05YU7sVD1cQGdmi1GOuC0uf1hJrYiIfco0LAKBVhYXytkNsTXoqILyRbN42FZ9vyEJWx
 qmXkMxD9vzLFG7v/GnQDpIKJyrk/FfeWf6jjh+Fyl8zrruWS/fB4RC7yJCcDNsW75dQ+KOTLo
 MLIcQsfM33wmL2op1VygvU4fJE8PY5LP4xCym7WDayIt9VJXFUbnd+bvieEDAMAFkwl52aVaS
 TnKMfYo1pi9XTMsShPdxwpjz+NbHnlNp3xo56TRnBq2c3n0fcVNgrEgq13RAxuI4vw1P1QClQ
 0p3Ce8d9LVMefuTxh7FRJnCtx4EPLF5+0X+C09cktDqZWroMtynnEfkf9NteNbBHeQdB0xUrf
 1vmeM/XqtOMT/vlPBQ5weBazDa4Hd3s4gqWz+WTmlHQs4U/ZwGmN4dqizzNStuXp4ll5i/4hK
 HsXbli7B8i5KBlk7qDc+Fhiem0I02MsDsy4HDkCYUn3DWbZhixiIE6rRogV5SKQFebEQgVIql
 yQG2LsRHPj7DO11zYbWhYiKhYTPxlHIVFq0qq6y/pCIcP8uNYW46cUySbwDl/pXylzaJgjd+L
 lY9tCmncid9tpB7OccecI06ZO4SWFLlkJ0JszXDm5SvttQVLwbU5pSiTZ8nnuxUQ5cajDeGwh
 yPVHIC/EG4AOiapmWeuiflid0c0G6iNU7weW7gywexsrMSTWBuMiOtoHAZkVBd9GK+ynpIOH5
 c5d7hpJmh1gFeWK/GE1qO5MDO/awFtzhyDgMECDoKyjgac8tMLcWl7qGuwrbHz506mpEgI6+f
 x9gV3/glOBKiofv8v+q/ZFJE3N+oRg5LpF9MQM+xmLy63QG+WNfQqD146sEnYvUY+ic6C4WRC
 /QlMQhnpXZD+ghBYiqvgJF4RC1hXXex2W4qs9DE2rdih33eLoEDjFU3d7EqT4c3gUllLZF13D
 gMtgmPiU8woNfH3AAghV1ZY8xbJKnPomY058JFH1g3wtwGDAwcAjeLGcPTN3eb/9vqwdJeDH3
 RkGyaFMMLKC4YmbUM6khzzKJecv7EomAoB/KpNCfk+QwS3ayWUQ5isXUyjdH+t5Mj2mTZchSw
 0i7IyLDo3c8syom2JOVgLFOcEzv7ouNZl5UORQJ1EC6XljpE60lf+VS+nnFkow33/W7sGW/qG
 TJyxCYZI1iGk8HN2QbabYR/4B0c4x0+bccG0mChKe0N7I0ceBkHMz+/oZlT60T+/Gx0VB/iq/
 Sf/vdfTCZhYKjCUwIsIDrqJdHn8wfr9hAJl9kiHWFaPTB7MuowBgUyOWPkGeMZ0mxQVszLU5x
 ljw3qlbLmODeYjSFsI7ARmSHLL53Mjw876Adh3A1iZkR7Fo/eF4Y+PnX3+o6VU2+l/FXswC6k
 pcqqbODnxczUhbcpaXzpzWGFbe4C94gJw4ZYh2OkIQ5RvJ71PCvR2/BROky8+4UBwGQ6g9Bak
 ve6dmYQFzSjw7McDBUhU19BIHRyyoaevUOig1S9mmtEtOxxwl//kYW+aVxMmDAJuB5zscaDJ9
 R1zrJom0GnU5GzjzJCIFSSF4DSTRh54vEZH8M0WJFEwgScbUk1Xcu4jHzwZlvSnRta67Gw50m
 WnN7HJ3X6AHjktOIj4tEcwagONyL1LPNhMy/Bu4v8Mr0i4EpNpC9Un+6KQWL9t+g2Nk/Q==
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 79528
Cc: pot@HIDDEN, 79528 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Sat, 11 Oct 2025 17:30:53 +0300 Eli Zaretskii <eliz@HIDDEN> wrote:

>> From: Stephen Berman <stephen.berman@HIDDEN>
>> Cc: pot@HIDDEN,  79528 <at> debbugs.gnu.org
>> Date: Sat, 11 Oct 2025 13:28:34 +0200
>>=20
>> > I'm okay with something like that, but could the code make sure we
>> > indeed have a file name with an embedded newline?  It looks to me like
>> > the above is a somewhat far-fetched conjecture, and if so, the
>> > user-friendly error message might be inaccurate.
>>=20
>> After looking into this issue more closely, I think the situation is
>> unclear and somewhat complex; however, to avoid opening a can of worms
>> in this bug thread, for now I'll assume you're right.  In that case, I
>> think this patch addresses your concern:
>
> LGTM, thanks.  I think we should install this.

Unfortunately, I didn't adequately test that patch.  It turns out that
if a directory contains both a file whose name has a newline and a file
whose name does not have a newline and in the default display of this
directory the latter file is the last one, then visiting this directory
in Dired does not signal an error.  Morever, typing "R" on the first
file listing (with the newline) also does not signal an error (but
renaming fails with a file-missing error), while typing "R" on the last
file (without the newline) does signal a wrong-type-argument error.  The
reason for these observations has to do with the "can of worms" I
referred to above; I still don't want to go into that here, but my
conclusion is that it is not sufficient to test only whether the current
file name in the Dired listing contains a newline; rather, it is
necessary to test whether there is at least one file in the directory
whose name contains a newline.  I've implemented a function that does
that in the attached patch.

However, such a check is not needed to avoid the wrong-type-argument
error; instead, I found a simple way: in the definition of
`dired-move-to-end-of-filename', if there is no change in the
`dired-filename' text property, just use the position before the last
newline in the buffer as the end of the file name.  I already did this
in my previous patch when checking for a newline in the file name, but
it turns out to be sufficient irrespective of the newline check (the
reason has to do again with the "can of worms"...).  With this change
all dired-* ERT tests still pass (though I'm sure that's because the
current tests do not consider cases where there is no change in the
`dired-filename' text property; if the attached patch is accepted, I
will try to add relevant tests).

Although this simple change avoids the errors reported in this bug,
there are still problems with literal newlines in file names in Dired
buffers, e.g, renaming and deleting fail as above with a file-missing
error.  So I think redisplaying the Dired buffer using the -b switch,
which I believe does not have such problems, is still worth doing.

>> But I think we can do better than signalling an error and giving it a
>> more helpful message.  If we think that the best way for Dired to handle
>> file names containing newlines is to use the -b switch, we can have
>> Emacs automatically redisplay the Dired buffer using that switch when it
>> detects such a file name.  The following patch does this:
>
> AFAIR, using -b has some unpleasant consequences in other cases (if it
> didn't, we ought to include -b in the default value of the switches),
> so I wouldn't apply it automatically.

How about if it's enabled by setting a user option?  The attached patch
does that.

>> In my initial testing I haven't noticed serious problem with this patch,
>> but there is a minor issue: If the directory contains both a file whose
>> name contains a newline and one whose name contains a space, using -b
>> adds an escape before the space; if the newline (displayed as `\n') is
>> removed from the name of the first file, the backslash remains before
>> the space, because the -b switch is still in effect, though after
>> killing the Dired buffer and revisiting it, the backslash is gone.
>
> This is one unpleasant consequence of using -b, but there are others
> (I just don't remember them ATM).

Another one I found is file names with a tab character, displayed as
`\t' with -b but as a space without -b.

>> If this is deemed unacceptable, I'll try to fix it.
>
> I'm not sure it's worth your time, but feel free to try, of course.

I came up with a function that, when all newlines in file names are
removed, automatically removes the -b switch from the actual switches
and redisplays the Dired buffer, so names with spaces or tabs are shown
just with spaces, i.e., no backslash or `\t'.  (Again, as with adding
-b, removing it is conditioned by enabling the user option.)


On Sat, 11 Oct 2025 18:59:12 +0200 Francesco Potort=C3=AC <pot@HIDDEN> =
wrote:

> Thank you for working on this issue.  This is a user view of what I think
> would be a good behaviour.  When an operation is requested on a file whose
> name contains a newline, a message appears telling that the file name con=
tains
> a newline, and Dired can redisplay the directory using the -b option to l=
s,
> which has the effect of quoting all spaces for all files in the directory;
> after redisplay, you can issue the command again; do you want to launch D=
ired
> using the -b flag to ls?

This seems like a rather complex UI, and seeing the message each time
and having to answer the question could be annoying.  Would setting a
user option as in the attached patch be satisfactory to you?  Granted,
that's not as obvious as a message, though it would of course be called
out in NEWS, and perhaps also documented in the Emacs manual.


Anyway, thanks to both of you for the feedback, and I welcome more on
the new patch.

Steve Berman


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment
Content-Description: dired file name with newline patch
Content-Transfer-Encoding: quoted-printable

diff --git a/lisp/dired.el b/lisp/dired.el
index 996ca9c23bb..2bf405e371e 100644
=2D-- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -550,6 +550,16 @@ dired-filename-display-length
   :group 'dired
   :version "30.1")
=20
+(defcustom dired-auto-toggle-b-switch nil
+  "Whether to automatically add or remove the `b' switch.
+If non-nil, the function `dired--toggle-b-switch' (which see) is added
+to `post-command-hook' in Dired mode."
+  :type 'boolean
+  :group 'dired
+  :initialize #'custom-initialize-default
+  :set #'dired--set-auto-toggle-b-switch
+  :version "31.1")
+
 =0C
 ;;; Internal variables
=20
@@ -2852,6 +2862,8 @@ dired-mode
   (add-hook 'file-name-at-point-functions #'dired-file-name-at-point nil =
t)
   (add-hook 'isearch-mode-hook #'dired-isearch-filenames-setup nil t)
   (add-hook 'context-menu-functions 'dired-context-menu 5 t)
+  (when dired-auto-toggle-b-switch
+    (add-hook 'post-command-hook #'dired--toggle-b-switch nil t))
   (run-mode-hooks 'dired-mode-hook))
=20
 =0C
@@ -3430,7 +3442,14 @@ dired-move-to-end-of-filename
   ;; On failure, signals an error (with non-nil NO-ERROR just returns nil=
).
   ;; This is the UNIX version.
   (if (get-text-property (point) 'dired-filename)
-      (goto-char (next-single-property-change (point) 'dired-filename))
+      (goto-char (or (next-single-property-change (point) 'dired-filename=
)
+                     ;; No property change can happen on or before the
+                     ;; last file name in the Dired listing when there
+                     ;; is at least one prior file name containing a
+                     ;; newline.  To prevent an error in this case we
+                     ;; take the position just before the final newline
+                     ;; as the end of the last file name (bug#79528).
+                     (1- (point-max))))
     (let ((opoint (point))
           (used-F (dired-check-switches dired-actual-switches "F" "classi=
fy"))
           (eol (line-end-position))
@@ -3964,6 +3983,54 @@ dired-buffer-more-recently-used-p
        (memq buffer1 (buffer-list))
        (not (memq buffer1 (memq buffer2 (buffer-list))))))
=20
+(defun dired--filename-with-newline-p ()
+  "Check if a file name in this directory has a newline.
+Return non-nil if at least one file name in this directory contains
+either a literal newline or the string \"\\n\")."
+  (save-excursion
+    (goto-char (point-min))
+    (catch 'found
+      (while (not (eobp))
+        (when (dired-move-to-filename)
+          (let ((fn (buffer-substring-no-properties
+                     (point) (dired-move-to-end-of-filename))))
+            (when (or (memq 10 (seq-into fn 'list))
+                      (string-search "\\n" fn))
+              (throw 'found t))))
+        (forward-line)))))
+
+(defun dired--toggle-b-switch ()
+  "Add or remove `b' switch and redisplay Dired buffer.
+When the current Dired buffer has a file name containing a newline, add
+the `b' switch to the actual switches if it isn't already among them;
+otherwise remove the `b' switch unless it is in `dired-listing-switches'.
+Then redisplay the Dired buffer.  This function is called from
+`post-command-hook' in Dired mode buffers."
+  (when (eq major-mode 'dired-mode)
+    (if (dired--filename-with-newline-p)
+        (unless (and dired-actual-switches
+                     (dired-switches-escape-p dired-actual-switches))
+          (setq dired-actual-switches (concat dired-actual-switches " -b"=
))
+          (dired-revert))
+      (unless (dired-switches-escape-p dired-listing-switches)
+        (when (and dired-actual-switches
+                   (dired-switches-escape-p dired-actual-switches))
+          (setq dired-actual-switches
+                (replace-regexp-in-string "\\( -\\)?b" ""
+                                          dired-actual-switches))
+          (dired-revert))))))
+
+(defun dired--set-auto-toggle-b-switch (symbol value)
+  "The :set function for user option `dired-auto-toggle-b-switch'."
+  (custom-set-default symbol value)
+  (if value
+      (add-hook 'post-command-hook #'dired--toggle-b-switch nil t)
+    (remove-hook 'post-command-hook #'dired--toggle-b-switch t)
+    (setq dired-actual-switches
+                    (replace-regexp-in-string "\\( -\\)?b" ""
+                                              dired-actual-switches))
+    (dired-revert)))
+
 =0C
 ;;; Deleting files
=20

--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79528; Package emacs. Full text available.

Message received at 79528 <at> debbugs.gnu.org:


Received: (at 79528) by debbugs.gnu.org; 11 Oct 2025 16:59:28 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 11 12:59:28 2025
Received: from localhost ([127.0.0.1]:46723 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1v7cwJ-0002go-6X
	for submit <at> debbugs.gnu.org; Sat, 11 Oct 2025 12:59:28 -0400
Received: from plesklin7.if2.ehiweb.it ([79.98.45.17]:39333
 helo=plesklin7.ehiweb.it)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <pot@HIDDEN>) id 1v7cw9-0002g9-9B
 for 79528 <at> debbugs.gnu.org; Sat, 11 Oct 2025 12:59:20 -0400
Received: from tucano.isti.cnr.it (tucano.isti.cnr.it [146.48.81.102])
 by plesklin7.ehiweb.it (Postfix) with ESMTPSA id 138F91CB44F;
 Sat, 11 Oct 2025 18:59:13 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=potorti.it;
 s=default; t=1760201953;
 bh=KEJDN9gJfSzw2R8d9X8McS8ZMl7rIk5XrhtdEMPGaQU=;
 h=Received:From:To:Subject;
 b=p3XD/8hlJQ4zPq3KToPNnruoYaZ3N1uzoT7E2LcQahBtz4M0h8/9R1P1Cj+qigqVk
 NQeUofYJ7QInvg1OkONgHbViWD1MJgPtWlYIjPmO+splSovPRU7M9LDt1PzKtapFfQ
 f0iJAzyBRhe9QnztnP4A00U0vnUNZgb9iSqpKxzI=
Authentication-Results: plesklin7.ehiweb.it;
 spf=pass (sender IP is 146.48.81.102) smtp.mailfrom=pot@HIDDEN
 smtp.helo=tucano.isti.cnr.it
Received-SPF: pass (plesklin7.ehiweb.it: connection is authenticated)
Received: from pot by tucano.isti.cnr.it with local (Exim 4.98.2)
 (envelope-from <pot@HIDDEN>) id 1v7cw4-00000001Rno-0AoB;
 Sat, 11 Oct 2025 18:59:12 +0200
From: =?utf-8?Q?Francesco_Potort=C3=AC?= <pot@HIDDEN>
Date: Sat, 11 Oct 2025 18:59:12 +0200
To: Stephen Berman <stephen.berman@HIDDEN>
In-Reply-To: <87v7kl4qzh.fsf@HIDDEN> (stephen.berman@HIDDEN)
Subject: Re: bug#79528: 30.1; dired errors while handling file names
 embedding newlines
References: <E1v2o26-0000000BTsr-2GVJ@HIDDEN>
 <87seg6uc71.fsf@HIDDEN> <E1v2oOc-0000000BV25-1pHC@HIDDEN>
 <87o6quu9tu.fsf@HIDDEN> <86cy73f4ys.fsf@HIDDEN> <87v7kl4qzh.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-fingerprint: 4B02 6187 5C03 D6B1 2E31  7666 09DF 2DC9 BE21 6115
Message-Id: <E1v7cw4-00000001Rno-0AoB@HIDDEN>
X-PPP-Message-ID: <176020195317.2694817.12509382624098552476@HIDDEN>
X-PPP-Vhost: potorti.it
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 79528
Cc: Eli Zaretskii <eliz@HIDDEN>, 79528 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

>>> >>See (info "(emacs) Dired Enter"):
>>> >>
>>> >>     Dired does not handle files that have names with embedded newline
>>> >>  characters well.  If you have many such files, you may consider add=
ing
>>> >>  =E2=80=98-b=E2=80=99 to =E2=80=98dired-listing-switches=E2=80=99.  =
This will quote all special
>>> >>  characters and allow Dired to handle them better.  (You can also us=
e the
>>> >>  =E2=80=98C-u C-x d=E2=80=99 command to add =E2=80=98-b=E2=80=99 tem=
porarily.)

Francesco Potort=C3=AC:
>>> > But expecting that a user reads the manual after getting an error is =
not the
>>> > right thing.  Consider that I have created such a file because of an =
error,
>>> > and I just wanted to rename it using dired.  So I did not voluntarily=
 try a
>>> > corner case.
>>> >
>>> > Maybe one could find a way to error with a more helpful message?

Stephen Berman:
>But I think we can do better than signalling an error and giving it a
>more helpful message.  If we think that the best way for Dired to handle
>file names containing newlines is to use the -b switch, we can have
>Emacs automatically redisplay the Dired buffer using that switch when it
>detects such a file name.
...
>but there is a minor issue: If the directory contains both a file whose
>name contains a newline and one whose name contains a space, using -b
>adds an escape before the space; if the newline (displayed as `\n') is
>removed from the name of the first file, the backslash remains before
>the space, because the -b switch is still in effect

Thank you for working on this issue.  This is a user view of what I think w=
ould be a good behaviour.  When an operation is requested on a file whose n=
ame contains a newline, a message appears telling that the file name contai=
ns a newline, and Dired can redisplay the directory using the -b option to =
ls, which has the effect of quoting all spaces for all files in the directo=
ry; after redisplay, you can issue the command again; do you want to launch=
 Dired using the -b flag to ls?





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79528; Package emacs. Full text available.

Message received at 79528 <at> debbugs.gnu.org:


Received: (at 79528) by debbugs.gnu.org; 11 Oct 2025 14:31:46 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 11 10:31:46 2025
Received: from localhost ([127.0.0.1]:46548 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1v7adN-0004Z7-Pj
	for submit <at> debbugs.gnu.org; Sat, 11 Oct 2025 10:31:46 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:38848)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1v7adA-0004Yc-Ej
 for 79528 <at> debbugs.gnu.org; Sat, 11 Oct 2025 10:31:33 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1v7acz-0002Tc-Gt; Sat, 11 Oct 2025 10:31:21 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=RMNuu72LTeXwygT8XzZcjgpIrEjJBkp/1xwzV317l2A=; b=mRxS9r4PfvhF
 a2vgiPpZIlqQn7uOtSHMYcf68BCCdFX3fPXC5nNZ0N5KPHJthk9+94HVWYIhI7SSylsgnG6wRIiwv
 9FpJCEiBn1zmVglymUUynta6IyeQS0s3vaxHSOgFdEQyF+1HnjhS/xau1rY4qPugTCb+4mzXXISN8
 nQZdhwcQhsBp5UGLMM439+i0+TOQHfyHKQZATueZYN1LMZ8GzLmeddcoFS5i0GGhXZTRn0deu/xRh
 uVplXoPeOTaxf9gDzuydfd8Lfo+2ZVcdf4TN/3Fk/6YO6dx2awYpIAcR4tti8TzTUCqEqUemUOTCT
 DmSXGYBkD3dGTNQV4drrUg==;
Date: Sat, 11 Oct 2025 17:30:53 +0300
Message-Id: <868qhh5x42.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Stephen Berman <stephen.berman@HIDDEN>
In-Reply-To: <87v7kl4qzh.fsf@HIDDEN> (message from Stephen Berman on Sat, 11
 Oct 2025 13:28:34 +0200)
Subject: Re: bug#79528: 30.1; dired errors while handling file names
 embedding newlines
References: <E1v2o26-0000000BTsr-2GVJ@HIDDEN>
 <87seg6uc71.fsf@HIDDEN> <E1v2oOc-0000000BV25-1pHC@HIDDEN>
 <87o6quu9tu.fsf@HIDDEN> <86cy73f4ys.fsf@HIDDEN> <87v7kl4qzh.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79528
Cc: pot@HIDDEN, 79528 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Stephen Berman <stephen.berman@HIDDEN>
> Cc: pot@HIDDEN,  79528 <at> debbugs.gnu.org
> Date: Sat, 11 Oct 2025 13:28:34 +0200
> 
> > I'm okay with something like that, but could the code make sure we
> > indeed have a file name with an embedded newline?  It looks to me like
> > the above is a somewhat far-fetched conjecture, and if so, the
> > user-friendly error message might be inaccurate.
> 
> After looking into this issue more closely, I think the situation is
> unclear and somewhat complex; however, to avoid opening a can of worms
> in this bug thread, for now I'll assume you're right.  In that case, I
> think this patch addresses your concern:

LGTM, thanks.  I think we should install this.

> But I think we can do better than signalling an error and giving it a
> more helpful message.  If we think that the best way for Dired to handle
> file names containing newlines is to use the -b switch, we can have
> Emacs automatically redisplay the Dired buffer using that switch when it
> detects such a file name.  The following patch does this:

AFAIR, using -b has some unpleasant consequences in other cases (if it
didn't, we ought to include -b in the default value of the switches),
so I wouldn't apply it automatically.

> In my initial testing I haven't noticed serious problem with this patch,
> but there is a minor issue: If the directory contains both a file whose
> name contains a newline and one whose name contains a space, using -b
> adds an escape before the space; if the newline (displayed as `\n') is
> removed from the name of the first file, the backslash remains before
> the space, because the -b switch is still in effect, though after
> killing the Dired buffer and revisiting it, the backslash is gone.

This is one unpleasant consequence of using -b, but there are others
(I just don't remember them ATM).

> If this is deemed unacceptable, I'll try to fix it.

I'm not sure it's worth your time, but feel free to try, of course.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79528; Package emacs. Full text available.

Message received at 79528 <at> debbugs.gnu.org:


Received: (at 79528) by debbugs.gnu.org; 11 Oct 2025 11:29:26 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 11 07:29:26 2025
Received: from localhost ([127.0.0.1]:44980 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1v7Xmv-0001RW-K3
	for submit <at> debbugs.gnu.org; Sat, 11 Oct 2025 07:29:26 -0400
Received: from mout.gmx.net ([212.227.17.20]:36909)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <stephen.berman@HIDDEN>)
 id 1v7Xmk-0001R9-QU
 for 79528 <at> debbugs.gnu.org; Sat, 11 Oct 2025 07:29:16 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net;
 s=s31663417; t=1760182115; x=1760786915; i=stephen.berman@HIDDEN;
 bh=WUTZttBUNkI58YA1VFNRxmTEXUEhfkwJSvJPioSGKzs=;
 h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date:
 Message-ID:MIME-Version:Content-Type:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=OFfk22GZv0JswlpDHavEeR0lRNOsYLfHiRlOT0FWn5dP6P3Gh1JnLfW/Uix03/xx
 /vm1EQAUXczThDi8u8B/sInP+5ELKvhgCB8DAU5/J5tIf2HA6JdGKpkTvySHaF8Wq
 yOOIHRV5vVzQ140puftFCgRDzMgnjFRSk7dGqeGv/upaUnQ8omBa1s72Lf2xacVcd
 /X2apFDIwrc1wavys4BbkWgNqnFoEMYTsi4iUIbbcfh1XvcIpNUqeI93w7ykgmNLA
 1c3ICkALWBHXhqpifAtph6b2jIjQwPWK9S7ZhKIrg0KFqZBtr/I8v5r7G8ubh10v3
 zBFdeBaywGEvNjjofQ==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from strobelfs2 ([88.130.62.67]) by mail.gmx.net (mrgmx104
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1M6ll8-1vAGGy3dlu-009EbP; Sat, 11
 Oct 2025 13:28:35 +0200
From: Stephen Berman <stephen.berman@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#79528: 30.1; dired errors while handling file names
 embedding newlines
In-Reply-To: <86cy73f4ys.fsf@HIDDEN>
References: <E1v2o26-0000000BTsr-2GVJ@HIDDEN>
 <87seg6uc71.fsf@HIDDEN> <E1v2oOc-0000000BV25-1pHC@HIDDEN>
 <87o6quu9tu.fsf@HIDDEN> <86cy73f4ys.fsf@HIDDEN>
Date: Sat, 11 Oct 2025 13:28:34 +0200
Message-ID: <87v7kl4qzh.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Provags-ID: V03:K1:j4ERoDDIRRlPgaInDMrAmB/6kZ7MBGCyYK+lXQPWX8eCD7mIBRa
 LaR55d5fGlJPm+llbuc70N2RYT31orw8+3SxYnm34SRA8wqFQYJRB2K7YuNFgh/3MT5vNPm
 bhd6oJFVSYT1fqg+09Qz+D/ifkFinhFNJ4/EqyaiDHnyfve3WfFW8XPNl+uqoJjhQhWGmTE
 R3oXg2BglZI2Gt+iyQKxA==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:YKPH6o67CRI=;K/Wb9NDj20GugnyIU6OrKIq9Qem
 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
X-Spam-Score: 2.9 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  On Sat, 04 Oct 2025 11:26:03 +0300 Eli Zaretskii wrote: >>
 Cc: 79528 <at> debbugs.gnu.org >> Date: Sun, 28 Sep 2025 12:53:49 +0200 >> From:
 Stephen Berman via "Bug reports for GNU Emacs, >> the Swiss army knife of
 text editors" >> >> On Sun, 28 Sep 2025 12:12 [...] 
 Content analysis details:   (2.9 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [88.130.62.67 listed in zen.spamhaus.org]
 0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
 [212.227.17.20 listed in wl.mailspike.net]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [212.227.17.20 listed in list.dnswl.org]
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (stephen.berman[at]gmx.net)
 0.0 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED RBL: ADMINISTRATOR NOTICE:
 The query to Validity was blocked.  See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243
 for more information.
 [212.227.17.20 listed in sa-accredit.habeas.com]
 0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The
 query to Validity was blocked.  See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243
 for more information.
 [212.227.17.20 listed in bl.score.senderscore.com]
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.0 SPF_PASS               SPF: sender matches SPF record
 0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
X-Debbugs-Envelope-To: 79528
Cc: pot@HIDDEN, 79528 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.9 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  On Sat, 04 Oct 2025 11:26:03 +0300 Eli Zaretskii wrote: >>
    Cc: 79528 <at> debbugs.gnu.org >> Date: Sun, 28 Sep 2025 12:53:49 +0200 >> From:
    Stephen Berman via "Bug reports for GNU Emacs, >> the Swiss army knife of
    text editors" >> >> On Sun, 28 Sep 2025 12:12 [...] 
 
 Content analysis details:   (1.9 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  0.0 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED RBL: ADMINISTRATOR NOTICE:
                             The query to Validity was blocked.  See
                             https://knowledge.validity.com/hc/en-us/articles/20961730681243
                              for more information.
                             [212.227.17.20 listed in sa-accredit.habeas.com]
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [88.130.62.67 listed in zen.spamhaus.org]
  0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
                             [212.227.17.20 listed in wl.mailspike.net]
  0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The
                             query to Validity was blocked.  See
                             https://knowledge.validity.com/hc/en-us/articles/20961730681243
                              for more information.
                             [212.227.17.20 listed in bl.score.senderscore.com]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
                             low trust
                             [212.227.17.20 listed in list.dnswl.org]
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (stephen.berman[at]gmx.net)
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.0 SPF_PASS               SPF: sender matches SPF record
  0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Sat, 04 Oct 2025 11:26:03 +0300 Eli Zaretskii <eliz@HIDDEN> wrote:

>> Cc: 79528 <at> debbugs.gnu.org
>> Date: Sun, 28 Sep 2025 12:53:49 +0200
>> From:  Stephen Berman via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
>>=20
>> On Sun, 28 Sep 2025 12:12:46 +0200 Francesco Potort=C3=AC <pot@HIDDEN=
t> wrote:
>>=20
>> >>> Emacs starts and errors with 'Wrong type argument: integer-or-marker=
-p, nil'
>> >>>
>> >>> Inside dired, trying to rename the 'b\nc' file fails with the same e=
rror
>> >>
>> >>See (info "(emacs) Dired Enter"):
>> >>
>> >>     Dired does not handle files that have names with embedded newline
>> >>  characters well.  If you have many such files, you may consider addi=
ng
>> >>  =E2=80=98-b=E2=80=99 to =E2=80=98dired-listing-switches=E2=80=99.  T=
his will quote all special
>> >>  characters and allow Dired to handle them better.  (You can also use=
 the
>> >>  =E2=80=98C-u C-x d=E2=80=99 command to add =E2=80=98-b=E2=80=99 temp=
orarily.)
>> >
>> > Ok, thanks.  Better than nothing, for sure.
>> >
>> > But expecting that a user reads the manual after getting an error is n=
ot the
>> > right thing.  Consider that I have created such a file because of an e=
rror,
>> > and I just wanted to rename it using dired.  So I did not voluntarily =
try a
>> > corner case.
>> >
>> > Maybe one could find a way to error with a more helpful message?
>>=20
>> Maybe something like the attached patched?
>>=20
>>=20
>> diff --git a/lisp/dired.el b/lisp/dired.el
>> index 996ca9c23bb..8cad2830395 100644
>> --- a/lisp/dired.el
>> +++ b/lisp/dired.el
>> @@ -3430,7 +3430,10 @@ dired-move-to-end-of-filename
>>    ;; On failure, signals an error (with non-nil NO-ERROR just returns n=
il).
>>    ;; This is the UNIX version.
>>    (if (get-text-property (point) 'dired-filename)
>> -      (goto-char (next-single-property-change (point) 'dired-filename))
>> +      (let ((nspc (next-single-property-change (point) 'dired-filename)=
))
>> +        (if nspc
>> +            (goto-char nspc)
>> +          (error "Embedded newline in file name; add -b to `dired-listi=
ng-switches'")))
>>      (let ((opoint (point))
>>            (used-F (dired-check-switches dired-actual-switches "F" "clas=
sify"))
>>            (eol (line-end-position))
>
> I'm okay with something like that, but could the code make sure we
> indeed have a file name with an embedded newline?  It looks to me like
> the above is a somewhat far-fetched conjecture, and if so, the
> user-friendly error message might be inaccurate.

After looking into this issue more closely, I think the situation is
unclear and somewhat complex; however, to avoid opening a can of worms
in this bug thread, for now I'll assume you're right.  In that case, I
think this patch addresses your concern:


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment;
 filename=dired-move-to-end-of-filename_0.diff

diff --git a/lisp/dired.el b/lisp/dired.el
index 996ca9c23bb..1454f22bdab 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -3430,7 +3430,19 @@ dired-move-to-end-of-filename
   ;; On failure, signals an error (with non-nil NO-ERROR just returns nil).
   ;; This is the UNIX version.
   (if (get-text-property (point) 'dired-filename)
-      (goto-char (next-single-property-change (point) 'dired-filename))
+      (let ((nspc (next-single-property-change (point) 'dired-filename))
+            (defdir default-directory))
+        (if nspc
+            (goto-char nspc)
+          ;; No change in the `dired-filename' text property may be due
+          ;; to the file name containing a newline, so in that case
+          ;; signal an error with a helpful message (bug#79528).
+          (when (memq 10
+                      (seq-into (buffer-substring-no-properties
+                                 (dired-move-to-filename) (1- (point-max)))
+                                'list))
+            (error "Embedded newline in file name; add -b to `dired-listing-switches'"))
+          (point)))
     (let ((opoint (point))
           (used-F (dired-check-switches dired-actual-switches "F" "classify"))
           (eol (line-end-position))

--=-=-=
Content-Type: text/plain


But I think we can do better than signalling an error and giving it a
more helpful message.  If we think that the best way for Dired to handle
file names containing newlines is to use the -b switch, we can have
Emacs automatically redisplay the Dired buffer using that switch when it
detects such a file name.  The following patch does this:


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment;
 filename=dired-move-to-end-of-filename_1.diff

diff --git a/lisp/dired.el b/lisp/dired.el
index 996ca9c23bb..1a7b00531f8 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -3430,7 +3430,31 @@ dired-move-to-end-of-filename
   ;; On failure, signals an error (with non-nil NO-ERROR just returns nil).
   ;; This is the UNIX version.
   (if (get-text-property (point) 'dired-filename)
-      (goto-char (next-single-property-change (point) 'dired-filename))
+      (let ((nspc (next-single-property-change (point) 'dired-filename))
+            (defdir default-directory))
+        (if nspc
+            (goto-char nspc)
+          ;; No change in the `dired-filename' text property may be due
+          ;; to the file name containing a newline, so in that case,
+          ;; instead of signaling an error, redisplay the Dired buffer
+          ;; using the -b switch to use `\n' as the newline character,
+          ;; which does not cause problems for Dired (bug#79528).
+          (when (memq 10
+                      (seq-into (buffer-substring-no-properties
+                                 (dired-move-to-filename) (1- (point-max)))
+                                'list))
+            (unless (dired-switches-escape-p dired-actual-switches)
+              (let ((inhibit-read-only t))
+                (erase-buffer))
+              (dired defdir (concat dired-actual-switches " -b"))
+              ;; Now the Dired text properties are on almost all
+              ;; characters (FIXME: why?), so remove them and then
+              ;; insert them only where they should be.
+              (remove-text-properties
+               (point-min) (point-max)
+               `(mouse-face t dired-filename t help-echo t))
+              (dired-insert-set-properties)))
+          (point)))
     (let ((opoint (point))
           (used-F (dired-check-switches dired-actual-switches "F" "classify"))
           (eol (line-end-position))

--=-=-=
Content-Type: text/plain


In my initial testing I haven't noticed serious problem with this patch,
but there is a minor issue: If the directory contains both a file whose
name contains a newline and one whose name contains a space, using -b
adds an escape before the space; if the newline (displayed as `\n') is
removed from the name of the first file, the backslash remains before
the space, because the -b switch is still in effect, though after
killing the Dired buffer and revisiting it, the backslash is gone.  If
this is deemed unacceptable, I'll try to fix it.  (I also haven't
figured out why calling `dired' to redisplay the buffer here results in
the Dired text properties appearing on almost every character, hence the
hack of removing and then reapplying them.  I welcome any suggestions
for a better fix or to prevent the problem in the first place.)

What do you think of this solution to the newline issue?  (As for the
unclarity and complexity I referred to above, I need to investigate the
issue further, and then I'll either open a new bug or post to
emacs-devel to address it.)

Steve Berman

--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79528; Package emacs. Full text available.

Message received at 79528 <at> debbugs.gnu.org:


Received: (at 79528) by debbugs.gnu.org; 4 Oct 2025 08:26:14 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 04 04:26:13 2025
Received: from localhost ([127.0.0.1]:47770 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1v4xan-00066S-BW
	for submit <at> debbugs.gnu.org; Sat, 04 Oct 2025 04:26:13 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:38382)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1v4xal-00065d-CU
 for 79528 <at> debbugs.gnu.org; Sat, 04 Oct 2025 04:26:12 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1v4xae-0006UM-NH; Sat, 04 Oct 2025 04:26:04 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From:
 Date; bh=c3iUs8GabWAXrYFiBzJ9CZr/c1VK1zpEt6vqVLp5cW4=; b=FC3pipXNqbpvxcQxIdWZ
 NFfk/rRIo26ZUwRytN60hWsubjXmpcZlRk+WTbptBjPrNZU/MbhiWDW5oIOE6FJ5zQc+jYRKyJMyZ
 5gdfQiolRI4grPEc4yqCXVl4QqwK/TMLIjjjmbO3t9aZsxt2ptA5bYea6x586M8MkV/a0dW1CQBSh
 2fv/WcYLfmlOKRmJYQU9sM8N5JiyghBGmdGmbaW3NKQK2AdHu/Jl3SOh5w1MQEIjhlQbGkdVPjM0H
 70ftxX7+fo2n2d7XQT699Z0Uba+9anGi3OZVyurJuZ9WXQr1AFG492eDKpmON3mo7LX9MZYYpsQwd
 balGfZCScg8HYw==;
Date: Sat, 04 Oct 2025 11:26:03 +0300
Message-Id: <86cy73f4ys.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Stephen Berman <stephen.berman@HIDDEN>
In-Reply-To: <87o6quu9tu.fsf@HIDDEN> (bug-gnu-emacs@HIDDEN)
Subject: Re: bug#79528: 30.1;
 dired errors while handling file names embedding newlines
References: <E1v2o26-0000000BTsr-2GVJ@HIDDEN>
 <87seg6uc71.fsf@HIDDEN> <E1v2oOc-0000000BV25-1pHC@HIDDEN>
 <87o6quu9tu.fsf@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79528
Cc: pot@HIDDEN, 79528 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Cc: 79528 <at> debbugs.gnu.org
> Date: Sun, 28 Sep 2025 12:53:49 +0200
> From:  Stephen Berman via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
> 
> On Sun, 28 Sep 2025 12:12:46 +0200 Francesco Potortì <pot@HIDDEN> wrote:
> 
> >>> Emacs starts and errors with 'Wrong type argument: integer-or-marker-p, nil'
> >>>
> >>> Inside dired, trying to rename the 'b\nc' file fails with the same error
> >>
> >>See (info "(emacs) Dired Enter"):
> >>
> >>     Dired does not handle files that have names with embedded newline
> >>  characters well.  If you have many such files, you may consider adding
> >>  ‘-b’ to ‘dired-listing-switches’.  This will quote all special
> >>  characters and allow Dired to handle them better.  (You can also use the
> >>  ‘C-u C-x d’ command to add ‘-b’ temporarily.)
> >
> > Ok, thanks.  Better than nothing, for sure.
> >
> > But expecting that a user reads the manual after getting an error is not the
> > right thing.  Consider that I have created such a file because of an error,
> > and I just wanted to rename it using dired.  So I did not voluntarily try a
> > corner case.
> >
> > Maybe one could find a way to error with a more helpful message?
> 
> Maybe something like the attached patched?
> 
> 
> diff --git a/lisp/dired.el b/lisp/dired.el
> index 996ca9c23bb..8cad2830395 100644
> --- a/lisp/dired.el
> +++ b/lisp/dired.el
> @@ -3430,7 +3430,10 @@ dired-move-to-end-of-filename
>    ;; On failure, signals an error (with non-nil NO-ERROR just returns nil).
>    ;; This is the UNIX version.
>    (if (get-text-property (point) 'dired-filename)
> -      (goto-char (next-single-property-change (point) 'dired-filename))
> +      (let ((nspc (next-single-property-change (point) 'dired-filename)))
> +        (if nspc
> +            (goto-char nspc)
> +          (error "Embedded newline in file name; add -b to `dired-listing-switches'")))
>      (let ((opoint (point))
>            (used-F (dired-check-switches dired-actual-switches "F" "classify"))
>            (eol (line-end-position))

I'm okay with something like that, but could the code make sure we
indeed have a file name with an embedded newline?  It looks to me like
the above is a somewhat far-fetched conjecture, and if so, the
user-friendly error message might be inaccurate.

Thanks.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79528; Package emacs. Full text available.

Message received at 79528 <at> debbugs.gnu.org:


Received: (at 79528) by debbugs.gnu.org; 28 Sep 2025 10:54:03 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Sep 28 06:54:03 2025
Received: from localhost ([127.0.0.1]:46048 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1v2p2Y-0006vZ-Gi
	for submit <at> debbugs.gnu.org; Sun, 28 Sep 2025 06:54:02 -0400
Received: from mout.gmx.net ([212.227.17.20]:56251)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <stephen.berman@HIDDEN>)
 id 1v2p2T-0006v1-Hv
 for 79528 <at> debbugs.gnu.org; Sun, 28 Sep 2025 06:53:59 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net;
 s=s31663417; t=1759056830; x=1759661630; i=stephen.berman@HIDDEN;
 bh=gVOr3sgKWxZo/Myi1emnKV5kEBoHKwLGfHaKqlJvRT0=;
 h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date:
 Message-ID:MIME-Version:Content-Type:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=PRxHFP53+8fMg5PhFR/inh8MzAZQCtptx5+O5QKnlGzmslu+kjkCj0O461Y+wYGJ
 pd2TresTvcLw78FJCPyk1fvy82xo2kuXbxbbjOk5L/K0SQ5bvFzTvzIzCfsF+QNwG
 QGKQmeya7ADlNu3BhxzU86WV8Wb3JKqr3EQgqgmagierqaQaTBitj7brVIpK3uAln
 ZiFC0uvuSpeUtUNu13dv3T28Yd8phGGraF2/WP9TohkCRnylvObiZq9fUSSV8ru6l
 Qyo88uGFcZSDLe49izodVeMUtZeDd6fpXpXsutmObFjyLWcflfwuw1LxrEfhv0WB0
 HYZ4SK3KYm9KmYVHEg==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from strobelfs2 ([94.134.95.61]) by mail.gmx.net (mrgmx105
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1McH9Y-1uSfru0O0i-00dCUs; Sun, 28
 Sep 2025 12:53:50 +0200
From: Stephen Berman <stephen.berman@HIDDEN>
To: Francesco =?utf-8?Q?Potort=C3=AC?= <pot@HIDDEN>
Subject: Re: bug#79528: 30.1; dired errors while handling file names
 embedding newlines
In-Reply-To: <E1v2oOc-0000000BV25-1pHC@HIDDEN>
References: <E1v2o26-0000000BTsr-2GVJ@HIDDEN>
 <87seg6uc71.fsf@HIDDEN> <E1v2oOc-0000000BV25-1pHC@HIDDEN>
Date: Sun, 28 Sep 2025 12:53:49 +0200
Message-ID: <87o6quu9tu.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Provags-ID: V03:K1:Y43pXd2i4bOF0rvCGml7z0HXbgXRB1zFKjloeeD81B9kYpvDCtP
 ReI6a1mNmMzimgQu+AeIj0qTQlI1+LrzZ8WyWQ6zcz/83TthcAJyxbU3/lYVj64NYZp3jx8
 84wImeLrVnQbHXWeVV49J/JKMkJKjHvmJaXRfAfEQrf9fono3UkLiAx3QdW/2Fjf8wN6uk3
 o65cSe5Qu2IkN8cPRS8Cw==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:bXcaRmCo3Ak=;VtgfTcIbX2T0UCrK6Sj0JeuSNKK
 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
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 79528
Cc: 79528 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Sun, 28 Sep 2025 12:12:46 +0200 Francesco Potort=C3=AC <pot@HIDDEN> =
wrote:

>>> Emacs starts and errors with 'Wrong type argument: integer-or-marker-p,=
 nil'
>>>
>>> Inside dired, trying to rename the 'b\nc' file fails with the same error
>>
>>See (info "(emacs) Dired Enter"):
>>
>>     Dired does not handle files that have names with embedded newline
>>  characters well.  If you have many such files, you may consider adding
>>  =E2=80=98-b=E2=80=99 to =E2=80=98dired-listing-switches=E2=80=99.  This=
 will quote all special
>>  characters and allow Dired to handle them better.  (You can also use the
>>  =E2=80=98C-u C-x d=E2=80=99 command to add =E2=80=98-b=E2=80=99 tempora=
rily.)
>
> Ok, thanks.  Better than nothing, for sure.
>
> But expecting that a user reads the manual after getting an error is not =
the
> right thing.  Consider that I have created such a file because of an erro=
r,
> and I just wanted to rename it using dired.  So I did not voluntarily try=
 a
> corner case.
>
> Maybe one could find a way to error with a more helpful message?

Maybe something like the attached patched?

Steve Berman

--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment
Content-Description: dired-move-to-end-of-filename patch

diff --git a/lisp/dired.el b/lisp/dired.el
index 996ca9c23bb..8cad2830395 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -3430,7 +3430,10 @@ dired-move-to-end-of-filename
   ;; On failure, signals an error (with non-nil NO-ERROR just returns nil).
   ;; This is the UNIX version.
   (if (get-text-property (point) 'dired-filename)
-      (goto-char (next-single-property-change (point) 'dired-filename))
+      (let ((nspc (next-single-property-change (point) 'dired-filename)))
+        (if nspc
+            (goto-char nspc)
+          (error "Embedded newline in file name; add -b to `dired-listing-switches'")))
     (let ((opoint (point))
           (used-F (dired-check-switches dired-actual-switches "F" "classify"))
           (eol (line-end-position))

--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79528; Package emacs. Full text available.

Message received at 79528 <at> debbugs.gnu.org:


Received: (at 79528) by debbugs.gnu.org; 28 Sep 2025 10:12:57 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Sep 28 06:12:57 2025
Received: from localhost ([127.0.0.1]:45882 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1v2oOn-0002iy-2a
	for submit <at> debbugs.gnu.org; Sun, 28 Sep 2025 06:12:57 -0400
Received: from plesklin7.if2.ehiweb.it ([79.98.45.17]:33087
 helo=plesklin7.ehiweb.it)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <pot@HIDDEN>) id 1v2oOg-0002iQ-UP
 for 79528 <at> debbugs.gnu.org; Sun, 28 Sep 2025 06:12:53 -0400
Received: from tucano.isti.cnr.it (tucano.isti.cnr.it [146.48.81.102])
 by plesklin7.ehiweb.it (Postfix) with ESMTPSA id F1E591C0E36;
 Sun, 28 Sep 2025 12:12:46 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=potorti.it;
 s=default; t=1759054367;
 bh=nFsHijVQtE9kF4/LVgfAlgW8FZtL+x+8kldNYghSJTY=;
 h=Received:From:To:Subject;
 b=LEU4hWTXoEo8p7LGI4h9BYeupbxQPXleRBZdE6d6LFbeXxvS9sDnUJ5LEEIPRdJEa
 +ON3EpP2Dj7Sm1+R2luKhBHAl0yEcZM/pFwQICpPYsqO8yxPtfv7cZieIwgt2iJq9Y
 hj/qDUn0/XlZdvoj618jgpfzOl9GJcHEtNPhyt20=
Authentication-Results: plesklin7.ehiweb.it;
 spf=pass (sender IP is 146.48.81.102) smtp.mailfrom=pot@HIDDEN
 smtp.helo=tucano.isti.cnr.it
Received-SPF: pass (plesklin7.ehiweb.it: connection is authenticated)
Received: from pot by tucano.isti.cnr.it with local (Exim 4.98.2)
 (envelope-from <pot@HIDDEN>) id 1v2oOc-0000000BV25-1pHC;
 Sun, 28 Sep 2025 12:12:46 +0200
From: =?utf-8?Q?Francesco_Potort=C3=AC?= <pot@HIDDEN>
Date: Sun, 28 Sep 2025 12:12:46 +0200
To: Stephen Berman <stephen.berman@HIDDEN>
In-Reply-To: <87seg6uc71.fsf@HIDDEN> (stephen.berman@HIDDEN)
Subject: Re: bug#79528: 30.1; dired errors while handling file names
 embedding newlines
References: <E1v2o26-0000000BTsr-2GVJ@HIDDEN>
 <87seg6uc71.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-fingerprint: 4B02 6187 5C03 D6B1 2E31  7666 09DF 2DC9 BE21 6115
Message-Id: <E1v2oOc-0000000BV25-1pHC@HIDDEN>
X-PPP-Message-ID: <175905436708.3221755.18305812173229627362@HIDDEN>
X-PPP-Vhost: potorti.it
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 79528
Cc: 79528 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

>> Emacs starts and errors with 'Wrong type argument: integer-or-marker-p, =
nil'
>>
>> Inside dired, trying to rename the 'b\nc' file fails with the same error
>
>See (info "(emacs) Dired Enter"):
>
>     Dired does not handle files that have names with embedded newline
>  characters well.  If you have many such files, you may consider adding
>  =E2=80=98-b=E2=80=99 to =E2=80=98dired-listing-switches=E2=80=99.  This =
will quote all special
>  characters and allow Dired to handle them better.  (You can also use the
>  =E2=80=98C-u C-x d=E2=80=99 command to add =E2=80=98-b=E2=80=99 temporar=
ily.)

Ok, thanks.  Better than nothing, for sure.

But expecting that a user reads the manual after getting an error is not th=
e right thing.  Consider that I have created such a file because of an erro=
r, and I just wanted to rename it using dired.  So I did not voluntarily tr=
y a corner case.

Maybe one could find a way to error with a more helpful message?

=2D- fp




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79528; Package emacs. Full text available.

Message received at 79528 <at> debbugs.gnu.org:


Received: (at 79528) by debbugs.gnu.org; 28 Sep 2025 10:02:56 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Sep 28 06:02:56 2025
Received: from localhost ([127.0.0.1]:45856 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1v2oF6-00023t-4P
	for submit <at> debbugs.gnu.org; Sun, 28 Sep 2025 06:02:56 -0400
Received: from mout.gmx.net ([212.227.17.22]:52523)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <stephen.berman@HIDDEN>)
 id 1v2oF1-00023a-2C
 for 79528 <at> debbugs.gnu.org; Sun, 28 Sep 2025 06:02:52 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net;
 s=s31663417; t=1759053763; x=1759658563; i=stephen.berman@HIDDEN;
 bh=aYVFIDhbIsGLeXC70tlLtqMT0ZX9pJ6IjknRs5LPXNY=;
 h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date:
 Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:cc:
 content-transfer-encoding:content-type:date:from:message-id:
 mime-version:reply-to:subject:to;
 b=A502irMkzhOJMjunJoxsV8fon6+t6WsX21RrMTbtz27ALGgfUdfW29TxID3UN5Jo
 0seO6x9CkgUZ5Em7PPJik55B8qAd8qxI7reJccRrwyjJod8ox6Y+iM/BH1WBotISj
 BK5v6T4DIgpOMLK+RpxD5LcGnfowCgFAh3GEmXV50Qedu6yYMTvIE4ZYe/ILnUnYi
 fzbR0p5AyNcVnYdkZ9xlzl/nkg2MwjBkmOC/2ZzS8Z1sh7bLQqnYSzkWilRtUVctD
 +xftIjNP4PXfoUCdfarSN4d2Db/T4iBbMEeQTH4vcQXA9CzxEUF2mFMaG7f5JvZIK
 p9oo7vdjVuG5fdC+Ig==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from strobelfs2 ([94.134.95.61]) by mail.gmx.net (mrgmx105
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1N5VHG-1uF1gX2rc2-016T5i; Sun, 28
 Sep 2025 12:02:43 +0200
From: Stephen Berman <stephen.berman@HIDDEN>
To: Francesco =?utf-8?Q?Potort=C3=AC?= <pot@HIDDEN>
Subject: Re: bug#79528: 30.1; dired errors while handling file names
 embedding newlines
In-Reply-To: <E1v2o26-0000000BTsr-2GVJ@HIDDEN>
References: <E1v2o26-0000000BTsr-2GVJ@HIDDEN>
Date: Sun, 28 Sep 2025 12:02:42 +0200
Message-ID: <87seg6uc71.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:8dBsTqzW+ODK4s4w9hHQ+DNOqxrEBbkgZMRlx8ORNy6M5c2WhJK
 1r44mqQbb57d/CH55uqCO3M3UEhVkT/1IRfIR7jprQBu4sLzCL8c7UBlDor23ylTAW+bwPx
 G+3pjYn/RHLYUXn997bZMV1Jeoc94B3vWGBafPoYmR2pHt96qbgqsYxHrBRGeTE/ThV/Nbg
 kImSniLI5EGBikbi5WJaA==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:B7TgQBet+Y4=;vp4XriT8LmJc6EKTjJPFbP1HLSt
 jKHMYDw7SbOUzzQmEsL2Qr7OdJNIb8hfPnO68c4fs0s5M8/rZ369Pnzg1oolFncBdww0M9czT
 RyQuFMIboq0zgK1M6yg02nG9kWlZL+FSdYrPO0LqtR1J7LrsySUk0RKtNsXPpiQsW5WfDPfmR
 yFMnhCh70BQAq8D+BeQbB7sPsE7j/LOHQ1A6CL6RPo3d86LKLwKx+ACP3rS+tc3JrsMwXKlcH
 l6i1u6YGob/R1qxnpg8UilvJ6Po+FT6kDNolYPdBHXbTPs2thZ6/8QYcexWLNgpI/RFQWtwsy
 vOkZO/4gqXFmxdAEnYK1MVkwf1hoc6SjlMj0cdC6lfK29dZ2oujCR+sh/HQzj2iXs3WvLe4BW
 XaqvcC7bs1A2LNEIAVlqhOOlMKiE24hNl0SZCs0YwpDlLH/tJwmQA8/Hmx4yXXfk/tUahZB21
 S8PjkLYx6V+wsk3SHv0H2sxKzIzY1drnddGDiucBDlEGZg/A4xV2TDKUTmwuCUL+PUBtnWlDk
 aD3yycgWJcRFSIYsBFLFodepEnmrN9JW9cBADiqNHjeGzUObe9RWBOXrQegi4XeR4cueupkf4
 0z5NM4LNR8cTCZPD+fw54dfam1e+mIsOfQd4AAxOphiRZ1Pu34ZcnkDqo2VARoaeJWtctMOx2
 IrtDTxR+OsGcrciv8ZX6JtjrNEeV640aLMbj8bH+zoL/JamBlbYpCwlZ3N3Nq+1hzLMx7NqHA
 Mh3SZCvRCxVH2cD2IXjb6DUi1lVhJr5Mhw31tZ8iXDxujTZkuaRqwHCrzizkvwoX9MEMzMGf0
 v8Zn6yYkgcCawxExi/POwPwJdeYB+dqAblX0dHZ92X2w3C5E2VrWdx0GWwq56OGld7mffLXgY
 gm0RZsyef83EYQAWRuFPxm7VHFzMdiZtcNwoQL11RdQrbaanfjIoWYpm4YCbVGH0gJAodg9Vs
 j0lS46BIQHT7xOoh22etbiN/Qit5tUFo2ToErVVj6ShYETF/4ix3nQ8eJbEL+yVg4f0k+ZO0B
 LRCYcFDgPasoW3+EQ/k/7CPsA3ihJpsJAPYq1fSJI5KQW6r4t6uOT1lfp+0qzgBhRF08/+VpU
 NLhes/jDIs5P5vX7mSr9vmmD8BzBbRQYHfSo31P0Bm0fsO2kzKbadL/H2DA4BceoFVl2C01eS
 X8d1cdopSUTjeLJlDGdA1l6MOwCabrXyZTVGdBxHMBADsxDKqNkT6+sye8xDr+I5LGGKyZO4W
 LkaBKKitLym395IZ/URzQqs6N77gWb5g7RVoJoAUqtB/g5aak2km4YWM/TPS+Ir9h0mke0bjp
 uBQK/aX/4I2vDLqjfY6xvhze42Bt94f9dciq40NHtdUytYUfSuH4gbCDDIYuAiJjpLqdZX4UF
 Fn39c8Wy/jZs9hzUv5a0f8RayQ4UrqJDjVOUfqo3Vt6O7Eo9u7P1Rp5cjmk71l09w3PLxrjty
 E8sUZZI2Ez4wpsqTIjs9i2mhCu3TEo4PSi5dXieuVUXR77yOh1e3l6m2X4sglkStHQbQOtiCE
 S6MA5VZwveyjJoTpMSDMX8twW1dCqrVwzSbDRZOrXTuQTK+XCL1c8GM55ghr9JM74P4cTqIv8
 Mvc0OGDOFUo4l/zbDaMJJ89DAqBZgqJKRgNiz59SL4x9/dEk0+dj6DquCirLMAoy3fA5JAnn5
 bpEy+3t3VM0Q6dcZABPtNFs2owWRJfDIevlkRAbb0fUun/shMw7KefX8xaYDOJjuj9606PhZf
 qfp/p17PhiLTzNL+TevSGRDyzjvahT3cEA7AND15VDCOrcvi+q8iC1TMF72n3d8Yjyu2K/PdU
 vzTSGqftnc53/LSLPqOJ2qPir2ngXWyG3h4R0LERf7ThOyHxEVxUaGpBCZj4tPSlVblvYa+PD
 DtNamy74tik4GOTT0ThYTsZTlm0bMTv+WUIRBGFNFSXRbpwLrWEGJrIiZVmr7yXp+TTZREfS3
 JHvyj6n6TFluHYgX+ciFpFRQkeWbER/bxmXaHFLcWDLu8wq0Y0xTy04Vitq6zgSxrk1wLSC3H
 9NBDMjcNDsbwAdxyVsT0w4sYTeJcElqYe/Da5N5Xe11h8qneSp6uQHNYV/1/IkvoJsLt/elfP
 WIvWgJDKPhYIfKeChdfF+Ceg2W+7V2mQeWl1CwJeqVPinvRldZhQQGJZDs3t89zoaWIaj7nRP
 suRb6zPiC7b1J3R+rfONPEx3QedtuJAiGz7FuZ7nIIwT2znlyqNy78qAjqFeMrp2AxcN/pm3Q
 inLkl6xdir8GRkDvCIqDl/gmckwUPh/KUoGhGV8qjbe8YwkN9Y2cc9fg1PxgAfyn/A8OGext1
 4Wxy8MTcKUncl3cUm3l5HqPrmfVCkLd49X8qh5a+Xz6GEid2WcABfwCciAuKK59q2fzWg/hj/
 sciK78UJDw5u9GkImTWYPHE1Qetye3dQscZFj2WKaVLm09T3qMuhB3U1Qz2JUIV0ucNh6bLSo
 4XzM0ZJyeGUAb1CJUx1EC/t767MXLPGijpVq7k1lEUDTHhPG7p6DitKhndL0R+bsMPqw5nByG
 b/pgC2kgbm7PjaM3IYfFe+sd/RyUvFKPh+T2KMu/IYDFCe0H7kMMoMX0bMpW4SLBDqNCcHY4q
 ZtKXdlEXbkagAN+VFtkAAwGPvMrZ/4qQrdmuNGq1TSNmahrMcL527t9ngX2tdPEZPE+p4V2sg
 Rp787Sww3WqxZEYMXsNwixT6vJ8afwOcGSZgVlzQ7f5sAGuYVXeRwJzAJG/hxtt9m/Nyy0sJz
 MECSCXyKghTocEDlUcuaTytxloWgjPobgW2o0e2WmXiQKr3jQzdalSuSGirHX7N5o8ic0J+zj
 jeB5pm6UwiCrFHfdWEt7EyBZC6zRQp6Zb1S6310LCZdctOdzVsYEV0dn7ZErgCfZVP8vUob1v
 0vobU15+ZYQpE+WauwnzXRjYpDfCF0UkeqclZ3NbFXqAW852cjWlYohRSJORKIq9wx9Am1xIN
 67CkuJMhDQZkEpSUzLwLsW9++bHSc7IxldgzoqoNiGifaWf0Z/nufusiIyeNDyPHs/O2exO/Z
 DrBxCZXAEXaPRv4DyKtaAV2/BuYJXo0U8p5/C8YQofRRAddT/FaXnOXAzLumXzqp73ynJec8A
 J7dmUM9mfaYRPeeYmy7cba+wfAGmdMV8a5RcAkDzJcV+eRVzUkP1PSoY/3J5gLIwSmXYoxuNb
 eBil2MSE62XP9EU0+W/CIsNV8gqr1JVPANWrVIk2lBLlKPsWO8UWZmNOWOEyto3Cm4luFqF0r
 EkRxZs9JrGautrrRWLo6TmTX0ISrQj9AOyTGJlDl4TRp49aHNfQx5TzdjtemqgQ//lnNGPp7a
 4ABVec1BgWh9bjzrr7Iv7ET0/Csdw5de3Q15HFKCOSvfRmeEdYeOokzFIhC+bjYyj1NXboGPK
 J8dSUoqCin4KIlrd1yCSMDdiMY0hRMjqRxSaqIQt5RgC+b0nPNWYl8RJXUfOMisy4jBBvgiF4
 TpVFDJDeqz4U57zu3oBeyOdg+R5655tYsU7EBWnWvS+UxCTwcReCiuqEi3XD4/EaCMb2eRj92
 3eApu6zCefEpeXL7MvqKz9+ZTHj8OkZ75t/QwQbIF9M2PToVsQWw90Ghiqiax/0EtAdjlL1Q+
 +RpjzOmbLVboxMoiEVwmb4SCZOT62xagmgiwSAALmt868hSxEhbajxuSLB9o0lus9/d5Y02pv
 8VbR2GxxFMY/4FniHL0xCGrjWSRrlgItLbdhwKYFh12RdslMLKCvYRodILUQijJympEww/MKT
 O1q1qIw2ny1pKIjnQuJ90NlBVM1cB857mvldSLZXbpTw1hXEHt9ZbTLa8P4tDLJjnCo0j+6TZ
 LQs9LF6bY5W9Qb3oJaWa5cXQMfCmAvPYWT4urXW1PM9Pj0EiEiHk2JoDdzo8SrA19Dud1gLO3
 H6Y472qkttsiJNZDkokwTXnd44S1SJatmLKzV7AtyVHaBRC//UyACFTbGOd1b0hbzJ4M31w5O
 S6XTl95B2t+E239Bc+sIieaKtjhl1QIKNVfYBmF+6w1dV9DFJBjNZH1mx0xxn/OcmsZTB+sF9
 ayBrppSBIBCgI/LTZOZ0Htb44/EZOX+COdENCbesGlCyiMoXx/nHYmGY3ByKNL7zXaUusSVfp
 f8t3HUF5/6znkwANpNwCiVEaIIB6M4eT01Qa3P81QYHW+BnM/RF7d3qiNI7vKr5DlL/F1bI+I
 WPY1Idqs/TYxQhgiPuT3odXD8TxyYJDbUVE5uPuNDhTRrues8M9khr4avPvB75UIhSul/a7qx
 JX5GEoiRH+gdFUk+4HJYFYeyFJ7JBcJHuzB8qVkgt8HAXPnFHFCugD7cJM8WxHF+JscMwNpFf
 1GlYopgH3D3Ej0HrVLSKF94lP8rK/pMShRj7AgfUvDE8yzU32jKjWx9AiXilUQyi7izFlwRZg
 P3GRFWSqdvJDBS3Q1H0Qzf/jiGCVgtdw9QHbFdxnz2WYMOEpRwRNvARn1/rxId2NXYBazUwkO
 tRiperetdcqgUqd1N6mMEjySik8m8TQxAYLClkN9JGN/vWYr6rz0j7YcpUWfT/v9lAV+O1RLr
 jCJNNbE9IVY6cQzPN28aQ8vic9k2ZQA+8Frb5johqUwuqzz1W31ToDKPc4hrjiTuYmCLDxUOQ
 YODWcrLWDwVQsZk2awsUS52zi03dIRo58EkvrF3ph/ddX6kouZgxB2swdVKOq13Kct44KOui0
 HC9U99io6Ok8UEw3bZ7lPMsaiNtzIHOSuhaeJSVryO2GFxRplt6Cv9NorbgMV0ryygYRQAMBg
 Pof9gLJtsaCngy3ivcA/iF8pw0tdFc8ihv6Ce1Kb0mkJg17W38sPbaAmuBPbiDSH2CboMe1iR
 oi7cOIghnwvnRW39V+n8TjZlQkJ8qg1q1QYDMdOR2TaWcaye/vpFkMeUSb+fQdgdSPbr/lvY3
 96ohxyUz57kojcajnz+Y3Q7GVUH16zNJTkUcPGMIPwd5avFJ3KrHd9KVUnmwgMsimBiNLzv2e
 c7kLYB7KVWQS14ZpmQ9w30CJegsHQl+UXEY=
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 79528
Cc: 79528 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

On Sun, 28 Sep 2025 11:49:30 +0200 Francesco Potort=C3=AC <pot@HIDDEN> =
wrote:

> The simpleset recipe to reproduce is (from shell prompt):
>
> $ mkdir a
> $ touch a/'b
> c'
> $ emacs -Q -nw a
>
> Emacs starts and errors with 'Wrong type argument: integer-or-marker-p, n=
il'
>
> Inside dired, trying to rename the 'b\nc' file fails with the same error

See (info "(emacs) Dired Enter"):

     Dired does not handle files that have names with embedded newline
  characters well.  If you have many such files, you may consider adding
  =E2=80=98-b=E2=80=99 to =E2=80=98dired-listing-switches=E2=80=99.  This w=
ill quote all special
  characters and allow Dired to handle them better.  (You can also use the
  =E2=80=98C-u C-x d=E2=80=99 command to add =E2=80=98-b=E2=80=99 temporari=
ly.)

Steve Bermn




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79528; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 28 Sep 2025 09:50:26 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Sep 28 05:50:26 2025
Received: from localhost ([127.0.0.1]:45796 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1v2o2x-0001Gg-EG
	for submit <at> debbugs.gnu.org; Sun, 28 Sep 2025 05:50:26 -0400
Received: from lists.gnu.org ([2001:470:142::17]:52542)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <pot@HIDDEN>) id 1v2o2m-0001AK-Kr
 for submit <at> debbugs.gnu.org; Sun, 28 Sep 2025 05:50:16 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <pot@HIDDEN>) id 1v2o2a-0003N2-2T
 for bug-gnu-emacs@HIDDEN; Sun, 28 Sep 2025 05:50:01 -0400
Received: from plesklin7.if2.ehiweb.it ([79.98.45.17] helo=plesklin7.ehiweb.it)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <pot@HIDDEN>) id 1v2o2K-0006zo-30
 for bug-gnu-emacs@HIDDEN; Sun, 28 Sep 2025 05:49:58 -0400
Received: from tucano.isti.cnr.it (tucano.isti.cnr.it [146.48.81.102])
 by plesklin7.ehiweb.it (Postfix) with ESMTPSA id C5F281CB259
 for <bug-gnu-emacs@HIDDEN>; Sun, 28 Sep 2025 11:49:30 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=potorti.it;
 s=default; t=1759052970;
 bh=LOC9nz6PAYdkd/cyTujuMS5dwsPfhVDRbyo8b2O5ml4=;
 h=Received:From:To:Subject;
 b=QHZM1VDYwKl/Tl033mfRpBEL3W9em/fMQ55MJPh6L0InzTC47WcvPQKBDiTbx4uUN
 DQOWC4oYExWRvZHmpFMfeYEhDTujLTUY+s/xa/MpNixs2ucmVmaZwRakERM9Ejz/zD
 5zFlty122VRc+vEv8O841wt67rq6wDCWMpo25C2Y=
Authentication-Results: plesklin7.ehiweb.it;
 spf=pass (sender IP is 146.48.81.102) smtp.mailfrom=pot@HIDDEN
 smtp.helo=tucano.isti.cnr.it
Received-SPF: pass (plesklin7.ehiweb.it: connection is authenticated)
Received: from pot by tucano.isti.cnr.it with local (Exim 4.98.2)
 (envelope-from <pot@HIDDEN>) id 1v2o26-0000000BTsr-2GVJ
 for bug-gnu-emacs@HIDDEN; Sun, 28 Sep 2025 11:49:30 +0200
From: =?utf-8?Q?Francesco_Potort=C3=AC?= <pot@HIDDEN>
Date: Sun, 28 Sep 2025 11:49:30 +0200
To: bug-gnu-emacs@HIDDEN
Subject: 30.1; dired errors while handling file names embedding newlines
X-Debbugs-Cc: 
MIME-Version: 1.0
Content-Type: text/plain
X-fingerprint: 4B02 6187 5C03 D6B1 2E31  7666 09DF 2DC9 BE21 6115
Message-Id: <E1v2o26-0000000BTsr-2GVJ@HIDDEN>
X-PPP-Message-ID: <175905297094.3215253.742836433267780534@HIDDEN>
X-PPP-Vhost: potorti.it
Received-SPF: pass client-ip=79.98.45.17; envelope-from=pot@HIDDEN;
 helo=plesklin7.ehiweb.it
X-Spam_score_int: -16
X-Spam_score: -1.7
X-Spam_bar: -
X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1,
 DKIM_SIGNED=0.1, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001,
 RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=no autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

The simpleset recipe to reproduce is (from shell prompt):

$ mkdir a
$ touch a/'b
c'
$ emacs -Q -nw a

Emacs starts and errors with 'Wrong type argument: integer-or-marker-p, nil'

Inside dired, trying to rename the 'b\nc' file fails with the same error

-- fp

In GNU Emacs 30.1 (build 2, x86_64-pc-linux-gnu, X toolkit, cairo version 1.18.4, Xaw3d scroll
 bars) of 2025-08-26, modified by Debian built on sbuild
Windowing system distributor 'The X.Org Foundation', version 11.0.12101016
System Description: Debian GNU/Linux forky/sid

Configured using:
 'configure --build x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib
 --libexecdir=/usr/libexec --localstatedir=/var/lib --infodir=/usr/share/info
 --mandir=/usr/share/man --with-libsystemd --with-pop=yes
 --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/30.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/30.1/site-lisp:/usr/share/emacs/site-lisp
 --with-sound=alsa --without-gconf --with-mailutils --build x86_64-linux-gnu --prefix=/usr
 --sharedstatedir=/var/lib --libexecdir=/usr/libexec --localstatedir=/var/lib
 --infodir=/usr/share/info --mandir=/usr/share/man --with-libsystemd --with-pop=yes
 --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/30.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/30.1/site-lisp:/usr/share/emacs/site-lisp
 --with-sound=alsa --without-gconf --with-mailutils --with-x=yes --with-x-toolkit=lucid
 --with-toolkit-scroll-bars --without-gsettings 'CFLAGS=-g -O2
 -Werror=implicit-function-declaration
 -ffile-prefix-map=/build/reproducible-path/emacs-30.1+1=. -fstack-protector-strong
 -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wall'
 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM HARFBUZZ JPEG LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD
LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3
THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XAW3D XDBE XIM XINPUT2 XPM LUCID ZLIB

Important settings:
  value of $LC_COLLATE: it_IT.UTF-8
  value of $LC_CTYPE: it_IT.UTF-8
  value of $LC_NUMERIC: C
  value of $LANG: C.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Shell

Minor modes in effect:
  TeX-PDF-mode: t
  csv-field-index-mode: t
  server-mode: t
  desktop-save-mode: t
  epa-global-mail-mode: t
  shell-dirtrack-mode: t
  comint-fontify-input-mode: t
  openwith-mode: t
  display-time-mode: t
  tooltip-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  column-number-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-autoloads hides /usr/share/emacs/site-lisp/elpa/gnuplot-0.8.1/debian-autoloads
/usr/share/emacs/site-lisp/elpa/apache-mode-2.2.0/apache-mode hides /usr/share/emacs/site-lisp/elpa-src/apache-mode-2.2.0/apache-mode
/usr/share/emacs/site-lisp/elpa/apache-mode-2.2.0/apache-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/apache-mode-2.2.0/apache-mode-autoloads
/usr/share/emacs/site-lisp/elpa/apache-mode-2.2.0/apache-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/apache-mode-2.2.0/apache-mode-pkg
/usr/share/emacs/site-lisp/elpa/async-1.9.9/async-autoloads hides /usr/share/emacs/site-lisp/elpa-src/async-1.9.9/async-autoloads
/usr/share/emacs/site-lisp/elpa/async-1.9.9/dired-async hides /usr/share/emacs/site-lisp/elpa-src/async-1.9.9/dired-async
/usr/share/emacs/site-lisp/elpa/async-1.9.9/async-package hides /usr/share/emacs/site-lisp/elpa-src/async-1.9.9/async-package
/usr/share/emacs/site-lisp/elpa/async-1.9.9/async-bytecomp hides /usr/share/emacs/site-lisp/elpa-src/async-1.9.9/async-bytecomp
/usr/share/emacs/site-lisp/elpa/async-1.9.9/async hides /usr/share/emacs/site-lisp/elpa-src/async-1.9.9/async
/usr/share/emacs/site-lisp/elpa/async-1.9.9/async-pkg hides /usr/share/emacs/site-lisp/elpa-src/async-1.9.9/async-pkg
/usr/share/emacs/site-lisp/elpa/async-1.9.9/smtpmail-async hides /usr/share/emacs/site-lisp/elpa-src/async-1.9.9/smtpmail-async
/usr/share/emacs/site-lisp/elpa/bar-cursor-2.0/bar-cursor-pkg hides /usr/share/emacs/site-lisp/elpa-src/bar-cursor-2.0/bar-cursor-pkg
/usr/share/emacs/site-lisp/elpa/bar-cursor-2.0/bar-cursor-autoloads hides /usr/share/emacs/site-lisp/elpa-src/bar-cursor-2.0/bar-cursor-autoloads
/usr/share/emacs/site-lisp/elpa/bar-cursor-2.0/bar-cursor hides /usr/share/emacs/site-lisp/elpa-src/bar-cursor-2.0/bar-cursor
/usr/share/emacs/site-lisp/elpa/bm-202506/bm-pkg hides /usr/share/emacs/site-lisp/elpa-src/bm-202506/bm-pkg
/usr/share/emacs/site-lisp/elpa/bm-202506/bm-sync hides /usr/share/emacs/site-lisp/elpa-src/bm-202506/bm-sync
/usr/share/emacs/site-lisp/elpa/bm-202506/bm-autoloads hides /usr/share/emacs/site-lisp/elpa-src/bm-202506/bm-autoloads
/usr/share/emacs/site-lisp/elpa/bm-202506/bm hides /usr/share/emacs/site-lisp/elpa-src/bm-202506/bm
/usr/share/emacs/site-lisp/elpa/boxquote-2.3/boxquote-autoloads hides /usr/share/emacs/site-lisp/elpa-src/boxquote-2.3/boxquote-autoloads
/usr/share/emacs/site-lisp/elpa/boxquote-2.3/boxquote-pkg hides /usr/share/emacs/site-lisp/elpa-src/boxquote-2.3/boxquote-pkg
/usr/share/emacs/site-lisp/elpa/boxquote-2.3/boxquote hides /usr/share/emacs/site-lisp/elpa-src/boxquote-2.3/boxquote
/usr/share/emacs/site-lisp/elpa/browse-kill-ring-2.0.0/browse-kill-ring hides /usr/share/emacs/site-lisp/elpa-src/browse-kill-ring-2.0.0/browse-kill-ring
/usr/share/emacs/site-lisp/elpa/browse-kill-ring-2.0.0/browse-kill-ring-pkg hides /usr/share/emacs/site-lisp/elpa-src/browse-kill-ring-2.0.0/browse-kill-ring-pkg
/usr/share/emacs/site-lisp/elpa/browse-kill-ring-2.0.0/browse-kill-ring-autoloads hides /usr/share/emacs/site-lisp/elpa-src/browse-kill-ring-2.0.0/browse-kill-ring-autoloads
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/jonadabian-slate-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/jonadabian-slate-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/aalto-dark-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/aalto-dark-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/whateveryouwant-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/whateveryouwant-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/blue-eshell-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/blue-eshell-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/parus-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/parus-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/snow-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/snow-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/jsc-light-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/jsc-light-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/dark-blue-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/dark-blue-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/oswald-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/oswald-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/blue-mood-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/blue-mood-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/goldenrod-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/goldenrod-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/dark-font-lock-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/dark-font-lock-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/infodoc-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/infodoc-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/pok-wog-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/pok-wog-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/shaman-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/shaman-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/jonadabian-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/jonadabian-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/color-theme-modern hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/color-theme-modern
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/ryerson-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/ryerson-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/greiner-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/greiner-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/high-contrast-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/high-contrast-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/salmon-diff-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/salmon-diff-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/xemacs-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/xemacs-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/emacs-21-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/emacs-21-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/desert-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/desert-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/word-perfect-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/word-perfect-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/lawrence-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/lawrence-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/pok-wob-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/pok-wob-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/comidia-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/comidia-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/gray30-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/gray30-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/tty-dark-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/tty-dark-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/bharadwaj-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/bharadwaj-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/calm-forest-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/calm-forest-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/hober-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/hober-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/jsc-dark-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/jsc-dark-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/mistyday-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/mistyday-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/subdued-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/subdued-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/taming-mr-arneson-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/taming-mr-arneson-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/kingsajz-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/kingsajz-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/dark-info-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/dark-info-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/ramangalahy-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/ramangalahy-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/taylor-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/taylor-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/lethe-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/lethe-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/midnight-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/midnight-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/matrix-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/matrix-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/jb-simple-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/jb-simple-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/sitaramv-nt-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/sitaramv-nt-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/standard-ediff-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/standard-ediff-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/xp-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/xp-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/gtk-ide-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/gtk-ide-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/fischmeister-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/fischmeister-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/dark-gnus-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/dark-gnus-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/blue-gnus-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/blue-gnus-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/marine-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/marine-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/beige-eshell-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/beige-eshell-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/retro-green-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/retro-green-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/marquardt-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/marquardt-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/subtle-blue-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/subtle-blue-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/ld-dark-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/ld-dark-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/dark-green-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/dark-green-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/robin-hood-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/robin-hood-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/katester-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/katester-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/railscast-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/railscast-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/feng-shui-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/feng-shui-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/wheat-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/wheat-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/black-on-gray-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/black-on-gray-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/montz-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/montz-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/retro-orange-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/retro-orange-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/andreas-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/andreas-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/rotor-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/rotor-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/simple-1-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/simple-1-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/color-theme-modern-pkg hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/color-theme-modern-pkg
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/emacs-nw-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/emacs-nw-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/snowish-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/snowish-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/aalto-light-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/aalto-light-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/dark-laptop-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/dark-laptop-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/billw-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/billw-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/scintilla-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/scintilla-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/cobalt-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/cobalt-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/jsc-light2-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/jsc-light2-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/classic-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/classic-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/charcoal-black-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/charcoal-black-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/dark-blue2-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/dark-blue2-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/arjen-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/arjen-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/sitaramv-solaris-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/sitaramv-solaris-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/gnome-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/gnome-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/salmon-font-lock-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/salmon-font-lock-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/deep-blue-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/deep-blue-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/bharadwaj-slate-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/bharadwaj-slate-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/raspopovic-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/raspopovic-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/renegade-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/renegade-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/gray1-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/gray1-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/gnome2-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/gnome2-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/blippblopp-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/blippblopp-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/standard-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/standard-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/digital-ofs1-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/digital-ofs1-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/aliceblue-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/aliceblue-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/clarity-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/clarity-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/late-night-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/late-night-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/jedit-grey-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/jedit-grey-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/blue-erc-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/blue-erc-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/resolve-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/resolve-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/vim-colors-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/vim-colors-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/beige-diff-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/beige-diff-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/dark-erc-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/dark-erc-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/blue-sea-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/blue-sea-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/pierson-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/pierson-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/color-theme-modern-autoloads hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/color-theme-modern-autoloads
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/subtle-hacker-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/subtle-hacker-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/euphoria-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/euphoria-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/julie-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/julie-theme
/usr/share/emacs/site-lisp/elpa/csv-mode-1.27/csv-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/csv-mode-1.27/csv-mode-pkg
/usr/share/emacs/site-lisp/elpa/csv-mode-1.27/csv-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/csv-mode-1.27/csv-mode-autoloads
/usr/share/emacs/site-lisp/elpa/csv-mode-1.27/csv-mode hides /usr/share/emacs/site-lisp/elpa-src/csv-mode-1.27/csv-mode
/usr/share/emacs/site-lisp/elpa/csv-mode-1.27/csv-mode-tests hides /usr/share/emacs/site-lisp/elpa-src/csv-mode-1.27/csv-mode-tests
/usr/share/emacs/site-lisp/elpa/debian-el-37.19/apt-sources hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37.19/apt-sources
/usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-autoloads hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37.19/debian-autoloads
/usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-el-autoloads hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37.19/debian-el-autoloads
/usr/share/emacs/site-lisp/elpa/debian-el-37.19/deb-view hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37.19/deb-view
/usr/share/emacs/site-lisp/elpa/debian-el-37.19/apt-deb822-sources hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37.19/apt-deb822-sources
/usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-bug hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37.19/debian-bug
/usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-el-pkg hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37.19/debian-el-pkg
/usr/share/emacs/site-lisp/elpa/debian-el-37.19/apt-utils hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37.19/apt-utils
/usr/share/emacs/site-lisp/elpa/debian-el-37.19/preseed hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37.19/preseed
/usr/share/emacs/site-lisp/elpa/debian-el-37.19/gnus-BTS hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37.19/gnus-BTS
/usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-el hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37.19/debian-el
/usr/share/emacs/site-lisp/elpa/dictionary-1.10/link hides /usr/share/emacs/site-lisp/elpa-src/dictionary-1.10/link
/usr/share/emacs/site-lisp/elpa/dictionary-1.10/dictionary hides /usr/share/emacs/site-lisp/elpa-src/dictionary-1.10/dictionary
/usr/share/emacs/site-lisp/elpa/dictionary-1.10/dictionary-pkg hides /usr/share/emacs/site-lisp/elpa-src/dictionary-1.10/dictionary-pkg
/usr/share/emacs/site-lisp/elpa/dictionary-1.10/dictionary-autoloads hides /usr/share/emacs/site-lisp/elpa-src/dictionary-1.10/dictionary-autoloads
/usr/share/emacs/site-lisp/elpa/dictionary-1.10/connection hides /usr/share/emacs/site-lisp/elpa-src/dictionary-1.10/connection
/usr/share/emacs/site-lisp/elpa/diminish-0.45/diminish hides /usr/share/emacs/site-lisp/elpa-src/diminish-0.45/diminish
/usr/share/emacs/site-lisp/elpa/diminish-0.45/diminish-pkg hides /usr/share/emacs/site-lisp/elpa-src/diminish-0.45/diminish-pkg
/usr/share/emacs/site-lisp/elpa/diminish-0.45/diminish-autoloads hides /usr/share/emacs/site-lisp/elpa-src/diminish-0.45/diminish-autoloads
/usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-ruby-on-rails hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-ruby-on-rails
/usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-android hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-android
/usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-autoloads hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-autoloads
/usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-php-composer hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-php-composer
/usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-javascript-bower hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-javascript-bower
/usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-extras hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-extras
/usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-javascript-grunt hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-javascript-grunt
/usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-tests hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-tests
/usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-perl hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-perl
/usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject
/usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-ruby hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-ruby
/usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-javascript-npm hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-javascript-npm
/usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-clojure-leiningen hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-clojure-leiningen
/usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-pkg hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-pkg
/usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-python hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-python
/usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-arduino hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-arduino
/usr/share/emacs/site-lisp/elpa/folding-20240308.333/folding hides /usr/share/emacs/site-lisp/elpa-src/folding-20240308.333/folding
/usr/share/emacs/site-lisp/elpa/folding-20240308.333/folding-autoloads hides /usr/share/emacs/site-lisp/elpa-src/folding-20240308.333/folding-autoloads
/usr/share/emacs/site-lisp/elpa/folding-20240308.333/folding-pkg hides /usr/share/emacs/site-lisp/elpa-src/folding-20240308.333/folding-pkg
/usr/share/emacs/site-lisp/elpa/gnuplot-0.8.1/gnuplot-context hides /usr/share/emacs/site-lisp/elpa-src/gnuplot-0.8.1/gnuplot-context
/usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-autoloads hides /usr/share/emacs/site-lisp/elpa-src/gnuplot-0.8.1/debian-autoloads
/usr/share/emacs/site-lisp/elpa/gnuplot-0.8.1/gnuplot-gui hides /usr/share/emacs/site-lisp/elpa-src/gnuplot-0.8.1/gnuplot-gui
/usr/share/emacs/site-lisp/elpa/gnuplot-0.8.1/gnuplot-autoloads hides /usr/share/emacs/site-lisp/elpa-src/gnuplot-0.8.1/gnuplot-autoloads
/usr/share/emacs/site-lisp/elpa/gnuplot-0.8.1/gnuplot-pkg hides /usr/share/emacs/site-lisp/elpa-src/gnuplot-0.8.1/gnuplot-pkg
/usr/share/emacs/site-lisp/elpa/gnuplot-0.8.1/gnuplot hides /usr/share/emacs/site-lisp/elpa-src/gnuplot-0.8.1/gnuplot
/usr/share/emacs/site-lisp/elpa/graphviz-dot-mode-0.4.2/graphviz-dot-mode hides /usr/share/emacs/site-lisp/elpa-src/graphviz-dot-mode-0.4.2/graphviz-dot-mode
/usr/share/emacs/site-lisp/elpa/graphviz-dot-mode-0.4.2/graphviz-dot-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/graphviz-dot-mode-0.4.2/graphviz-dot-mode-autoloads
/usr/share/emacs/site-lisp/elpa/graphviz-dot-mode-0.4.2/graphviz-dot-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/graphviz-dot-mode-0.4.2/graphviz-dot-mode-pkg
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-x-icons hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-x-icons
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-imenu hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-imenu
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-net hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-net
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-misc hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-misc
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-regexp hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-regexp
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-buffers hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-buffers
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-font hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-font
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-grep hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-grep
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-pkg hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-pkg
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-eshell hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-eshell
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-x-files hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-x-files
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-files hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-files
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-elisp hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-elisp
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-dabbrev hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-dabbrev
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-external hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-external
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-find hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-find
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-utils hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-utils
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-easymenu hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-easymenu
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-tags hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-tags
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-packages hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-packages
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-command hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-command
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-global-bindings hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-global-bindings
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-man hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-man
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-semantic hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-semantic
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-types hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-types
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-sys hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-sys
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-color hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-color
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-help hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-help
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-eval hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-eval
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-locate hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-locate
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-epa hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-epa
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-occur hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-occur
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-bookmark hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-bookmark
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-ring hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-ring
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-mode hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-mode
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-autoloads hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-autoloads
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-fd hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-fd
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-info hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-info
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-for-files hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-for-files
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-adaptive hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-adaptive
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm
/usr/share/emacs/site-lisp/elpa/helm-4.0.5/helm-id-utils hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.5/helm-id-utils
/usr/share/emacs/site-lisp/elpa/helm-core-4.0.5/helm-multi-match hides /usr/share/emacs/site-lisp/elpa-src/helm-core-4.0.5/helm-multi-match
/usr/share/emacs/site-lisp/elpa/helm-core-4.0.5/helm-core-pkg hides /usr/share/emacs/site-lisp/elpa-src/helm-core-4.0.5/helm-core-pkg
/usr/share/emacs/site-lisp/elpa/helm-core-4.0.5/helm-core-autoloads hides /usr/share/emacs/site-lisp/elpa-src/helm-core-4.0.5/helm-core-autoloads
/usr/share/emacs/site-lisp/elpa/helm-core-4.0.5/helm-core hides /usr/share/emacs/site-lisp/elpa-src/helm-core-4.0.5/helm-core
/usr/share/emacs/site-lisp/elpa/helm-core-4.0.5/helm-lib hides /usr/share/emacs/site-lisp/elpa-src/helm-core-4.0.5/helm-lib
/usr/share/emacs/site-lisp/elpa/helm-core-4.0.5/helm-source hides /usr/share/emacs/site-lisp/elpa-src/helm-core-4.0.5/helm-source
/usr/share/emacs/site-lisp/elpa/htmlize-1.59/htmlize-autoloads hides /usr/share/emacs/site-lisp/elpa-src/htmlize-1.59/htmlize-autoloads
/usr/share/emacs/site-lisp/elpa/htmlize-1.59/htmlize-pkg hides /usr/share/emacs/site-lisp/elpa-src/htmlize-1.59/htmlize-pkg
/usr/share/emacs/site-lisp/elpa/htmlize-1.59/htmlize hides /usr/share/emacs/site-lisp/elpa-src/htmlize-1.59/htmlize
/usr/share/emacs/site-lisp/elpa/initsplit-1.8/initsplit-pkg hides /usr/share/emacs/site-lisp/elpa-src/initsplit-1.8/initsplit-pkg
/usr/share/emacs/site-lisp/elpa/initsplit-1.8/initsplit hides /usr/share/emacs/site-lisp/elpa-src/initsplit-1.8/initsplit
/usr/share/emacs/site-lisp/elpa/initsplit-1.8/initsplit-test hides /usr/share/emacs/site-lisp/elpa-src/initsplit-1.8/initsplit-test
/usr/share/emacs/site-lisp/elpa/initsplit-1.8/initsplit-autoloads hides /usr/share/emacs/site-lisp/elpa-src/initsplit-1.8/initsplit-autoloads
/usr/share/emacs/site-lisp/elpa/markdown-mode-2.7/markdown-mode hides /usr/share/emacs/site-lisp/elpa-src/markdown-mode-2.7/markdown-mode
/usr/share/emacs/site-lisp/elpa/markdown-mode-2.7/markdown-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/markdown-mode-2.7/markdown-mode-pkg
/usr/share/emacs/site-lisp/elpa/markdown-mode-2.7/markdown-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/markdown-mode-2.7/markdown-mode-autoloads
/usr/share/emacs/site-lisp/elpa/mutt-alias-1.4/mutt-alias hides /usr/share/emacs/site-lisp/elpa-src/mutt-alias-1.4/mutt-alias
/usr/share/emacs/site-lisp/elpa/mutt-alias-1.4/mutt-alias-autoloads hides /usr/share/emacs/site-lisp/elpa-src/mutt-alias-1.4/mutt-alias-autoloads
/usr/share/emacs/site-lisp/elpa/mutt-alias-1.4/mutt-alias-pkg hides /usr/share/emacs/site-lisp/elpa-src/mutt-alias-1.4/mutt-alias-pkg
/usr/share/emacs/site-lisp/elpa/muttrc-mode-1.2.1/muttrc-mode hides /usr/share/emacs/site-lisp/elpa-src/muttrc-mode-1.2.1/muttrc-mode
/usr/share/emacs/site-lisp/elpa/muttrc-mode-1.2.1/muttrc-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/muttrc-mode-1.2.1/muttrc-mode-pkg
/usr/share/emacs/site-lisp/elpa/muttrc-mode-1.2.1/muttrc-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/muttrc-mode-1.2.1/muttrc-mode-autoloads
/usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-project hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-project
/usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-local-manual hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-local-manual
/usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-defs hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-defs
/usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-ide-phpactor hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-ide-phpactor
/usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-complete hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-complete
/usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-ide hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-ide
/usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-mode-autoloads
/usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-mode hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-mode
/usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-mode-debug hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-mode-debug
/usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php
/usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-align hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-align
/usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-flymake hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-flymake
/usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-mode-pkg
/usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-format hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-format
/usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-face hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-face
/usr/share/emacs/site-lisp/elpa/pod-mode-1.3/pod-mode hides /usr/share/emacs/site-lisp/elpa-src/pod-mode-1.3/pod-mode
/usr/share/emacs/site-lisp/elpa/pod-mode-1.3/pod-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/pod-mode-1.3/pod-mode-pkg
/usr/share/emacs/site-lisp/elpa/pod-mode-1.3/pod-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/pod-mode-1.3/pod-mode-autoloads
/usr/share/emacs/site-lisp/elpa/session-2.4.2/session-autoloads hides /usr/share/emacs/site-lisp/elpa-src/session-2.4.2/session-autoloads
/usr/share/emacs/site-lisp/elpa/session-2.4.2/session hides /usr/share/emacs/site-lisp/elpa-src/session-2.4.2/session
/usr/share/emacs/site-lisp/elpa/session-2.4.2/session-pkg hides /usr/share/emacs/site-lisp/elpa-src/session-2.4.2/session-pkg
/usr/share/emacs/site-lisp/elpa/tabbar-20160524/tabbar hides /usr/share/emacs/site-lisp/elpa-src/tabbar-20160524/tabbar
/usr/share/emacs/site-lisp/elpa/tabbar-20160524/one-buffer-one-frame hides /usr/share/emacs/site-lisp/elpa-src/tabbar-20160524/one-buffer-one-frame
/usr/share/emacs/site-lisp/elpa/tabbar-20160524/aquamacs-compat hides /usr/share/emacs/site-lisp/elpa-src/tabbar-20160524/aquamacs-compat
/usr/share/emacs/site-lisp/elpa/tabbar-20160524/tabbar-pkg hides /usr/share/emacs/site-lisp/elpa-src/tabbar-20160524/tabbar-pkg
/usr/share/emacs/site-lisp/elpa/tabbar-20160524/tabbar-autoloads hides /usr/share/emacs/site-lisp/elpa-src/tabbar-20160524/tabbar-autoloads
/usr/share/emacs/site-lisp/elpa/tabbar-20160524/tabbar-window hides /usr/share/emacs/site-lisp/elpa-src/tabbar-20160524/tabbar-window
/usr/share/emacs/site-lisp/elpa/tabbar-20160524/aquamacs-tools hides /usr/share/emacs/site-lisp/elpa-src/tabbar-20160524/aquamacs-tools
/usr/share/emacs/site-lisp/elpa/tabbar-20160524/aquamacs-tabbar hides /usr/share/emacs/site-lisp/elpa-src/tabbar-20160524/aquamacs-tabbar
~/elisp/bibtex hides /usr/share/emacs/30.1/lisp/textmodes/bibtex
~/elisp/octave hides /usr/share/emacs/30.1/lisp/progmodes/octave
/usr/share/emacs/site-lisp/flim/sasl hides /usr/share/emacs/30.1/lisp/net/sasl
/usr/share/emacs/site-lisp/elpa/dictionary-1.10/dictionary hides /usr/share/emacs/30.1/lisp/net/dictionary
/usr/share/emacs/site-lisp/auctex/multi-prompt hides /usr/share/auctex/multi-prompt
/usr/share/emacs/site-lisp/auctex/toolbar-x hides /usr/share/auctex/toolbar-x
/usr/share/emacs/site-lisp/auctex/context hides /usr/share/auctex/context
/usr/share/emacs/site-lisp/auctex/tex-style hides /usr/share/auctex/tex-style
/usr/share/emacs/site-lisp/auctex/bib-cite hides /usr/share/auctex/bib-cite
/usr/share/emacs/site-lisp/auctex/preview hides /usr/share/auctex/preview
/usr/share/emacs/site-lisp/auctex/tex-mik hides /usr/share/auctex/tex-mik
/usr/share/emacs/site-lisp/auctex/plain-tex hides /usr/share/auctex/plain-tex
/usr/share/emacs/site-lisp/auctex/font-latex hides /usr/share/auctex/font-latex
/usr/share/emacs/site-lisp/auctex/tex-ispell hides /usr/share/auctex/tex-ispell
/usr/share/emacs/site-lisp/auctex/context-nl hides /usr/share/auctex/context-nl
/usr/share/emacs/site-lisp/auctex/tex-font hides /usr/share/auctex/tex-font
/usr/share/emacs/site-lisp/auctex/tex-bar hides /usr/share/auctex/tex-bar
/usr/share/emacs/site-lisp/auctex/context-en hides /usr/share/auctex/context-en
/usr/share/emacs/site-lisp/auctex/latex-flymake hides /usr/share/auctex/latex-flymake
/usr/share/emacs/site-lisp/auctex/tex hides /usr/share/auctex/tex
/usr/share/emacs/site-lisp/auctex/texmathp hides /usr/share/auctex/texmathp
/usr/share/emacs/site-lisp/auctex/tex-info hides /usr/share/auctex/tex-info
/usr/share/emacs/site-lisp/auctex/latex hides /usr/share/auctex/latex
/usr/share/emacs/site-lisp/auctex/tex-fold hides /usr/share/auctex/tex-fold
/usr/share/emacs/site-lisp/auctex/tex-jp hides /usr/share/auctex/tex-jp

Features:
(shadow mailalias emacsbug wdired memory-report macros timezone rmailsort rmailedit tabify
misearch multi-isearch zoom-frm frame-cmds frame-fns avoid face-remap cal-julian gnutls
network-stream url-http url-gw nsm generic url-cache url-auth vc-hg vc-bzr vc-src vc-sccs vc-svn
vc-cvs vc bug-reference font-latex tex-mode vc-git diff-mode track-changes vc-dispatcher latex
edmacro latex-flymake flymake tex-ispell tex-style tex dbus crm texmathp bibtex mhtml-mode
css-mode eww url-queue mm-url gnus nnheader range js c-ts-common imenu cc-mode cc-fonts cc-guess
cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs sgml-mode facemenu conf-mode
rmailout rmailkwd shr-color time-stamp csv-mode sort server octave texinfo texinfo-loaddefs
vc-filewise vc-rcs log-view easy-mmode pcvs-util python project compat textsec uni-scripts
idna-mapping ucs-normalize uni-confusable textsec-check shr pixel-fill kinsoku url-file svg xml
dom qp rmailmm message puny rfc822 mml mml-sec gnus-util mm-decode mm-bodies mm-encode
mailabbrev gmm-utils mailheader mail-parse rfc2231 yank-media markdown-mode color compile
text-property-search cus-start desktop frameset term/screen term/xterm xterm pot skeleton pcase
rmailsum ffap ange-ftp rmail sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr epa-mail
mail-utils epa derived epg rfc6068 epg-config 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 org-list
org-footnote org-faces org-entities noutline outline ob-emacs-lisp ob-core ob-eval org-cycle
org-table ol org-fold org-fold-core org-keys oc org-loaddefs thingatpt find-func org-version
org-compat org-macs kmacro view mule-util cal-china lunar solar cal-dst cal-bahai cal-islam
cal-hebrew appt diary-lib diary-loaddefs holidays holiday-loaddefs cal-menu calendar
cal-loaddefs tramp trampver tramp-integration files-x tramp-message tramp-compat xdg shell
pcomplete comint ansi-osc ring parse-time iso8601 time-date format-spec tramp-loaddefs diff
visual-fill-column dired-aux image-mode exif openwith anything-config anything advice woman man
cl hi-lock locate add-log scroll-in-place comp comp-cstr cl-extra warnings comp-run comp-common
rx ansi-color time jka-compr quail help-mode dired-x generic-x shell-apt disp-table finder-inf
w3m-load tex-site cus-edit pp cus-load wid-edit elmacro-autoloads dash-autoloads s-autoloads
info apache-mode-autoloads bar-cursor-autoloads bm-autoloads boxquote-autoloads
browse-kill-ring-autoloads color-theme-modern-autoloads csv-mode-autoloads debian-el-autoloads
debian-el dired dired-loaddefs diminish-autoloads eproject-autoloads folding-autoloads
gnuplot-autoloads graphviz-dot-mode-autoloads helm-autoloads helm-core-autoloads async-autoloads
initsplit-autoloads markdown-mode-autoloads mutt-alias-autoloads muttrc-mode-autoloads
php-mode-autoloads pod-mode-autoloads session-autoloads tabbar-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 font-render-setting cairo x-toolkit xinput2 x multi-tty move-toolbar
make-network-process native-compile emacs)

Memory information:
((conses 16 1188105 317955) (symbols 48 56729 0) (strings 32 309016 24482)
 (string-bytes 1 10428425) (vectors 16 101881) (vector-slots 8 2317830 341413)
 (floats 8 945 14577) (intervals 56 28266 1740) (buffers 992 147))




Acknowledgement sent to Francesco Potortì <pot@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#79528; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Mon, 20 Oct 2025 11:30:02 UTC

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