Revised patch with simpler approach.

On Mon, Feb 10, 2025 at 5:57 AM Ship Mints <shipmints@gmail.com> wrote:
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 <visuweshm@gmail.com> wrote:
[திங்கள் பிப்ரவரி 10, 2025] Michael Albinus wrote:

> Visuwesh <visuweshm@gmail.com> 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.