--- Begin Message ---
Subject: |
26.1; default-directory in TRAMP root has two slashes when using find-file-visit-truename |
Date: |
Thu, 19 Jul 2018 18:44:28 -0700 |
1. emacs -q
2. M-: (setq find-file-visit-truename t) RET
3. C-x C-f /sudo::/ RET
4. M-: default-directory RET
Expected value: /sudo::/
Actual: /sudo:://
The actual usability problem that this causes is that running find-file
again in the Dired buffer starts with a bad default:
Typing C-x C-f tmp RET results in finding /sudo:://tmp which is /tmp
rather than /sudo::/tmp
The immediate offending code is these lines in find-file-noselect
(if find-file-visit-truename
(abbreviate-file-name (file-truename filename))
filename)))
Tracing the bug:
(file-truename "/sudo::/")
(tramp-file-name-handler 'file-truename "/sudo::/")
(tramp-sh-file-name-handler 'file-truename "/sudo::/")
(tramp-sh-handle-file-truename "/sudo::/")
tramp-sh-handle-file-truename is (format "%s%s" A B), where A does most
of the work and B just adds an extra final slash conditionally:
(if (string-equal (file-name-nondirectory filename) "") "/" "")))
I think this could be fixed by making it:
(let ((result A))
(format "%s%s" result
(if (and (string-equal (file-name-nondirectory filename) "")
(not (string-equal (file-name-nondirectory
result) ""))) "/" "")))
I have attached a patch implementing this, made against emacs-26 since
this is a straightforward bug fix.
In GNU Emacs 26.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.22.24), modified by Debian
Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
System Description: Debian GNU/Linux rodete (upgraded from: Ubuntu 14.04 LTS)
Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS NOTIFY
LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 MODULES THREADS JSON LCMS2
Important settings:
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix
Major mode: Dired by name
0001-Avoid-extra-slash-on-TRAMP-root-path-truenames.patch
Description: Text Data
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#32218: 26.1; default-directory in TRAMP root has two slashes when using find-file-visit-truename |
Date: |
Sat, 21 Jul 2018 08:57:36 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) |
Version: 26.2
Allen Li <address@hidden> writes:
Hi Allen,
> Yes, it's fixed, thanks
Thanks for the feedback, I'm closing the bug.
Best regards, Michael.
--- End Message ---