emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#54487: closed (29.0.50; connection-local value for `shell-file-name'


From: GNU bug Tracking System
Subject: bug#54487: closed (29.0.50; connection-local value for `shell-file-name' not set in Dired buffers over Tramp)
Date: Wed, 23 Mar 2022 11:54:02 +0000

Your message dated Wed, 23 Mar 2022 12:53:08 +0100
with message-id <87zglgopgb.fsf@gmx.de>
and subject line Re: bug#54487: 29.0.50; connection-local value for 
`shell-file-name' not set in Dired buffers over Tramp
has caused the debbugs.gnu.org bug report #54487,
regarding 29.0.50; connection-local value for `shell-file-name' not set in 
Dired buffers over Tramp
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs@gnu.org.)


-- 
54487: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=54487
GNU Bug Tracking System
Contact help-debbugs@gnu.org with problems
--- Begin Message --- Subject: 29.0.50; connection-local value for `shell-file-name' not set in Dired buffers over Tramp Date: Sun, 20 Mar 2022 21:58:56 -0700 Hopefully I've summarized the issue correctly in the bug title. To see this in action, run the following from `emacs -Q' on an MS-Windows system ("host" in this example is a remote GNU/Linux system):

  C-x C-f /ssh:host:~
  M-x rgrep RET
  some text RET RET RET

The rgrep output will look something like:

  find [...] --null -e "some text" "{}" +
  find: paths must precede expression: `^^!^'

You can click the "[...]" to see the full invocation. However, even without doing that, if you look carefully, you'll notice that the shell-quoting uses the MS-Windows rules, not that of /bin/sh. For the MS-Windows shell, spaces are quoted by wrapping the entire argument in double-quotes ("like this"); for /bin/sh, spaces are escaped via a backslash (like\ this).

Presumably, that's because if you eval `shell-file-name' in the Dired buffer, it reports ".../path/to/cmdproxy.exe". When in a remote *file*, `shell-file-name' is correctly set to "/bin/sh".

This also comes up in other (non-Dired) situations. For example:

  C-x C-f /ssh:host:~/some-file.txt
  M-x rgrep RET
  some text RET RET RET
  ;; everything looks ok

  ;; now, from the rgrep buffer...
  M-x rgrep
  some text RET RET RET
  ;; same error as in the original case above



--- End Message ---
--- Begin Message --- Subject: Re: bug#54487: 29.0.50; connection-local value for `shell-file-name' not set in Dired buffers over Tramp Date: Wed, 23 Mar 2022 12:53:08 +0100 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
Version: 29.1

Michael Albinus <michael.albinus@gmx.de> writes:

Hi Jim,

> For the scope of this bug report, it could be closed. But I'll like to
> keep it open for now in order to discuss possible problems with the
> connection-local variables approach.

I've checked the needed changes, and it would be too invasive. In
grep.el, host specific settings are computed by global variables.
Furthermore, the compilation buffer is created only after computing
these settings.

This would require a larger rewrite of grep.el. I believe it isn't worth then.

Closing the bug.

Best regards, Michael.


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]