Subject: bug#76165: [PATCH] ansi-osc-directory-tracker respects Tramp remote files

From: Ship Mints <[email-masked]>
Date: Mon, 10 Feb 2025 05:57:15 -0500

That is indeed simpler. I'd missed the "tip" that you wrote. I'll give it a
try and submit a revised patch.

On Mon, Feb 10, 2025 at 3:28 AM Visuwesh <[email-masked]> wrote:

> [திங்கள் பிப்ரவரி 10, 2025] Michael Albinus wrote:
>
> > Visuwesh <[email-masked]> writes:
> >
> > Hi,
> >
> >>> Tramp remote forms are now retained when changes to
> 'default-directory' are
> >>> detected by this filter.  Previously, for example,
> >>> /ssh:hostname:/home/username would be stripped to just /home/username.
> >
> >> Is it necessary to invoke so many Tramp functions?
> >
> > I agree. Internal Tramp functions, which are not documented in the
> > manual, shouldn't be used outside unless absolutely needed. They can
> > change w/o announcement.
> >
> >> I have the following simpler advice in my config and it has worked
> >> faithfully for many months now.
> >>
> >>     (define-advice comint-osc-directory-tracker (:override (_ text)
> vz/handle-remote-paths-as-well)
> >>       (let ((url (url-generic-parse-url text)))
> >>         (when (equal (url-type url) "file")
> >>           (ignore-errors
> >>             (let ((file (url-unhex-string (url-filename url))))
> >>               (cd-absolute (concat (file-remote-p default-directory)
> file)))))))
> >
> > file-remote-p returns nil for local file names. So I believe, this isn't
> > only an advertisement. It could go into ansi-osc-directory-tracker
> as-it-is.
>
> Indeed, I was following what file-remote-p says itself:
>
>     Tip: You can use this expansion of remote identifier components
>          to derive a new remote file name from an existing one.  For
>          example, if FILE is "/sudo::/path/to/file" then
>
>            (concat (file-remote-p FILE) "/bin/sh")
>
>          returns a remote file name for file "/bin/sh" that has the
>          same remote identifier as FILE but expanded; a name such as
>          "/sudo:root@myhost:/bin/sh".
>
>
> > Best regards, Michael.
>