Re: tramp (2.7.0-pre master/463cd87f0590970cfd2918ba7028304e0f712001); tramp-signal-process doesn't accept string arguments

2023-11-29 Thread Philipp Stephani



> 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

2023-11-29 Thread 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?

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

2023-11-29 Thread 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'.  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