GNU bug report logs - #76165
[PATCH] ansi-osc-directory-tracker respects Tramp remote files

Previous Next

Package: emacs;

Reported by: Ship Mints <shipmints <at> gmail.com>

Date: Sun, 9 Feb 2025 19:06:01 UTC

Severity: normal

Tags: patch

Fixed in version 31.1

Done: Michael Albinus <michael.albinus <at> gmx.de>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Visuwesh <visuweshm <at> gmail.com>
To: Ship Mints <shipmints <at> gmail.com>
Cc: 76165 <at> debbugs.gnu.org
Subject: bug#76165: [PATCH] ansi-osc-directory-tracker respects Tramp remote files
Date: Mon, 10 Feb 2025 09:37:00 +0530
[ஞாயிறு பிப்ரவரி 09, 2025] Ship Mints wrote:

> 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.
>
> -Stephane
> [...]
>  This functionality serves as an alternative to `dirtrack-mode'
>  and `shell-dirtrack-mode'."
>    (let ((url (url-generic-parse-url text)))
> @@ -123,8 +128,14 @@ ansi-osc-directory-tracker
>                 (or (null (url-host url))
>                     ;; Use `downcase' to match `url-generic-parse-url' behavior
>                     (string= (url-host url) (downcase (system-name)))))
> -      (ignore-errors
> -        (cd-absolute (url-unhex-string (url-filename url)))))))
> +      (let ((current-default-directory default-directory))
> +        (when (ignore-errors
> +                (cd-absolute (url-unhex-string (url-filename url))))
> +          (when (and (fboundp 'tramp-tramp-file-p)
> +                     (tramp-tramp-file-p current-default-directory))
> +            (setq default-directory (tramp-make-tramp-file-name
> +                                     (tramp-dissect-file-name current-default-directory 'nodefault)
> +                                     default-directory))))))))
>  
>  ;; Hyperlink handling (OSC 8)

Is it necessary to invoke so many Tramp functions?  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)))))))




This bug report was last modified 102 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.