Adrian Pronk <[email protected]> writes:

Hi Adrian,

> If a file name on the remote system contains a backslash then this is
> not rendered correctly in a Dired session. For example, if a "b" follows
> the backslash then this is rendered as the backspace character.
>
> The problem appears to lie in:
> ( defconst tramp-perl-directory-files-and-attributes )
> in tramp-sh.el.
>
> The quote character is escaped but the backslash is not.
>
> I tried changing:
>     $filename =~ s/\"/\\\\\"/g;
> to:
>     $filename =~ s/\\\\/\\\\\\\\/g;
>     $filename =~ s/\"/\\\\\"/g;
>
> but this caused Emacs to hang when I scrolled the Dired buffer down to
> the file with the backslash.
>
> Emacs  : GNU Emacs 28.2 (build 2, x86_64-w64-mingw32)
>  of 2022-09-14
> Package: tramp (2.5.3.28.2 nil/nil)

Well, I could reproduce it with a local Emacs running on MS Windows, as
you do. When I use a local Emacs on my Fedora laptop instead, accessing
the very same remote directory with the file 'a\b', everything is
fine. Dired shows the file, I can read and write it and whatever.

And this is not a surprise. A backslash on MS Windows is a directory
separator. File names containing a backslash aren't supported.

Best regards, Michael.

Reply via email to