Re: tramp (2.7.0-pre master/463cd87f0590970cfd2918ba7028304e0f712001); tramp-signal-process doesn't accept string arguments
> Am 29.11.2023 um 20:47 schrieb Michael Albinus : > > Philipp writes: > > Hi Philipp, > >> The function `tramp-signal-process' should accept a process name as a >> string (to be converted to a process via `get-process') or a process ID >> converted to a string, as documented for `signal-process'. > > Yep. What about the appended patch? Almost, but one case is still missing. Try: emacs -Q -batch -eval '(progn (require (quote tramp)) (let ((proc (start-process "sleep" nil "sleep" "60"))) (signal-process (number-to-string (process-id proc)) (quote ABRT' This will fail even with the patch. `signal-process' accepts a process ID converted to a string. This doesn't seem to be documented, but is necessary for interactive use because `signal-process' uses `read-string' to read its first argument interactively.
Re: tramp (2.7.0-pre master/463cd87f0590970cfd2918ba7028304e0f712001); tramp-signal-process doesn't accept string arguments
Philipp writes: Hi Philipp, > The function `tramp-signal-process' should accept a process name as a > string (to be converted to a process via `get-process') or a process ID > converted to a string, as documented for `signal-process'. Yep. What about the appended patch? Best regards, Michael. diff --git a/lisp/tramp.el b/lisp/tramp.el index 8a5c9617..c515e305 100644 --- a/lisp/tramp.el +++ b/lisp/tramp.el @@ -6732,9 +6733,9 @@ will be the process to signal. SIGCODE may be an integer, or a symbol whose name is a signal name." (let (pid vec) (cond - ((processp process) - (setq pid (process-get process 'remote-pid) -vec (process-get process 'tramp-vector))) + ((or (processp process) (stringp process)) + (setq pid (process-get (get-process process) 'remote-pid) +vec (process-get (get-process process) 'tramp-vector))) ((numberp process) (setq pid process vec (and (stringp remote) (tramp-dissect-file-name remote
tramp (2.7.0-pre master/463cd87f0590970cfd2918ba7028304e0f712001); tramp-signal-process doesn't accept string arguments
The function `tramp-signal-process' should accept a process name as a string (to be converted to a process via `get-process') or a process ID converted to a string, as documented for `signal-process'. Right now this fails: emacs -Q -batch -eval '(progn (require (quote tramp)) (start-process "sleep" nil "sleep" "60") (signal-process "sleep" (quote ABRT)))' Error: wrong-type-argument (processp "sleep") mapbacktrace(#f(compiled-function (evald func args flags) #)) debug-early-backtrace() debug-early(error (wrong-type-argument processp "sleep")) signal(wrong-type-argument (processp "sleep")) tramp-signal-process("sleep" ABRT nil) signal-process("sleep" ABRT) (progn (require 'tramp) (start-process "sleep" nil "sleep" "60") (signal-process "sleep" 'ABRT)) eval((progn (require 'tramp) (start-process "sleep" nil "sleep" "60") (signal-process "sleep" 'ABRT)) t) command-line-1(("-eval" "(progn (require (quote tramp)) (start-process \"sleep\" nil \"sleep\" \"60\") (signal-process \"sleep\" (quote ABRT)))")) command-line() normal-top-level() Wrong type argument: processp, "sleep" The same thing works as expected if TRAMP isn't loaded. Emacs : GNU Emacs 30.0.50 (build 11, aarch64-apple-darwin23.1.0, NS appkit-2487.20 Version 14.1.1 (Build 23B81)) of 2023-11-29 Package: tramp (2.7.0-pre master/463cd87f0590970cfd2918ba7028304e0f712001) g