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 wrote: > [திங்கள் பிப்ரவரி 10, 2025] Michael Albinus wrote: > > > Visuwesh 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. >