On 8/19/26 15:08, Michael Albinus wrote:
>> diff --git i/lisp/net/tramp.el w/lisp/net/tramp.el
>> index cb89428886e..52c73dcf92a 100644
>> --- i/lisp/net/tramp.el
>> +++ w/lisp/net/tramp.el
>> @@ -2573,7 +2573,9 @@ Must be handled by the callers."
>> ((bufferp (nth 0 args)) (get-buffer (nth 0 args)))
>> ((stringp (nth 0 args))
>> ;; Process or buffer name.
>> - (or (get-process (nth 0 args)) (get-buffer (nth 0
args)))))))
>> + (or (when-let* ((proc (get-process (nth 0 args))))
>> + (process-buffer proc))
>> + (get-buffer (nth 0 args)))))))
>> (tramp-get-default-directory buf))
>> ""))
>
> This clause is intended for file-notify-rm-watch and
> file-notify-valid-p, which use a process as argument. Could you pls show
> where it is a problem? Another magic file operation? Please provide an
> example, including a backtrace.
The first clause of "cond" (not visible in patch) ensures that "buf"
will be a buffer:
((processp (nth 0 args)) (process-buffer (nth 0 args)))
and the same logic should be applied to the results of (get-process), as
it surely satisfies "processp".
This is needed because (tramp-get-default-directory) expects a buffer as
an argument.
Below is the story of why I was able to hit this error, but it's not
that interesting (in the context of the fix):
- inferior prolog does (process-send-string "prolog" ...) - with process
identified by a string
- tramp-rpc backend adds "process-send-string" to
"tramp-file-name-for-operation-external" - and it's being checked in
addition to file-notify-rm-watch and file-notify-valid-p
Best,
Alexey