GNU bug report logs - #79036
[PATCH] Fix pdb tracking for remote filenames

Previous Next

Package: emacs;

Reported by: Liu Hui <liuhui1610 <at> gmail.com>

Date: Thu, 17 Jul 2025 04:59:01 UTC

Severity: normal

Tags: patch

Done: Eli Zaretskii <eliz <at> gnu.org>

Full log


Message #8 received at 79036 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Liu Hui <liuhui1610 <at> gmail.com>, Michael Albinus <michael.albinus <at> gmx.de>
Cc: 79036 <at> debbugs.gnu.org
Subject: Re: bug#79036: [PATCH] Fix pdb tracking for remote filenames
Date: Thu, 17 Jul 2025 09:41:44 +0300
> From: Liu Hui <liuhui1610 <at> gmail.com>
> Date: Thu, 17 Jul 2025 12:57:45 +0800
> 
> 1. emacs -Q
> 2. Create a remote python file and start the remote python shell, e.g.
>    M-x find-file /ssh:server:/tmp/test.py
>    M-x run-python
> 3. Insert the following code in test.py and press C-c C-c to send it
>    to the python shell:
> 
>    def f():
>        breakpoint()
>        return 1
> 
> 4. Execute f() in the python shell to trigger the pdb
> 
> Result: Emacs tries to open /ssh:server:/ssh:server:/tmp/test.py
> instead of /ssh:server:/tmp/test.py.
> 
> The reason is the filename set by python-shell-send-string may be
> remote. The attached patch fixes the issue.
> 
> From b9770cea20186d0205319efb54327099849e3a21 Mon Sep 17 00:00:00 2001
> From: Liu Hui <liuhui1610 <at> gmail.com>
> Date: Thu, 17 Jul 2025 12:43:34 +0800
> Subject: [PATCH] Fix pdb tracking for remote filenames
> 
> * lisp/progmodes/python.el (python-pdbtrack-set-tracked-buffer):
> Check remote file names.
> ---
>  lisp/progmodes/python.el | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
> index f4f0518dbfd..59977fcb49f 100644
> --- a/lisp/progmodes/python.el
> +++ b/lisp/progmodes/python.el
> @@ -5079,8 +5079,10 @@ python-pdbtrack-set-tracked-buffer
>    "Set the buffer for FILE-NAME as the tracked buffer.
>  Internally it uses the `python-pdbtrack-tracked-buffer' variable.
>  Returns the tracked buffer."
> -  (let* ((file-name-prospect (concat (file-remote-p default-directory)
> -                              file-name))
> +  (let* ((file-name-prospect (if (file-remote-p file-name)
> +                                 file-name
> +                               (concat (file-remote-p default-directory)
> +                                       file-name)))
>           (file-buffer (get-file-buffer file-name-prospect)))
>      (unless file-buffer
>        (cond

Shouldn't this code use 'expand-file-name' instead?  Using 'concat' to
construct file names is a bug waiting to happen, IME.

Michael, WDYT?




This bug report was last modified 1 day ago.

Previous Next


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