Subject: bug#64897: 29.0.91; Bug (and patch) in find-dired-with-command

From: Michael Albinus <[email-masked]>
Date: Sat, 12 Aug 2023 14:38:15 +0200

Michael Heerdegen <[email-masked]> writes:

Hi Michael,

> Do you want to care about this, or should I open a separate bug report,
> or reopen this one?

I don't know what I could do for you. I've reverted
7bbd7cae0748958a623f23637b95a6fc9debb8b7 in the emacs-29 branch. Then
I've started in parallel Emacs from the emacs-29 branch with this
change, and Emacs from the master branch. Both with option -Q. I've evall'ed

(trace-function-foreground 'start-process)

in both cases, nothing else.

1. test: In my ~/tmp directory there are files with spaces in their
name. I've called "M-x find-name-dired RET ~/tmp RET * RET". In both
cases I see

--8<---------------cut here---------------start------------->8---
   11017308      4 -rw-r--r--   1 albinus  albinus         2 Aug 12 14:26 1\ 2\ 3
--8<---------------cut here---------------end--------------->8---

In *trace-output*, there is

--8<---------------cut here---------------start------------->8---
1 -> (start-process "Shell" #<buffer *Find*> "/usr/bin/tcsh" "-c" "find . \\( -name \\* \\) -ls")
--8<---------------cut here---------------end--------------->8---

--8<---------------cut here---------------start------------->8---
1 -> (start-process "*Find*" #<buffer *Find*> "/usr/bin/tcsh" "-c" "find . \\( -name \\* \\) -ls")
--8<---------------cut here---------------end--------------->8---

Identical arguments, different buffer names. As expected.

2. test: I've evall'ed in both Emacs instances your customization

--8<---------------cut here---------------start------------->8---
(setq find-ls-option
      (setq find-ls-option-default-exec
            '("-exec ls -adhl {} +" . "-adhl")))
--8<---------------cut here---------------end--------------->8---

In both Emacs instances, I've called again "M-x find-name-dired RET ~/tmp RET * RET".
I see

--8<---------------cut here---------------start------------->8---
  -rw-r--r--.   1 albinus albinus    2 Aug 12 14:26 './1 2 3'
--8<---------------cut here---------------end--------------->8---

in both cases. That's bad, but there are no regressions due to the
patch! And indeed, in *trace-output*, there is

--8<---------------cut here---------------start------------->8---
1 -> (start-process "Shell" #<buffer *Find*> "/usr/bin/tcsh" "-c" "find . \\( -name \\* \\) -exec ls -adhl \\{\\} +")
--8<---------------cut here---------------end--------------->8---

--8<---------------cut here---------------start------------->8---
1 -> (start-process "*Find*" #<buffer *Find*> "/usr/bin/tcsh" "-c" "find . \\( -name \\* \\) -exec ls -adhl \\{\\} +")
--8<---------------cut here---------------end--------------->8---

Identical arguments, different buffer names. As expected.

> Regards,
> Michael.

Best regards, Michael.