Function: internal-default-signal-process
internal-default-signal-process is a function defined in process.c.
Signature
(internal-default-signal-process PROCESS SIGCODE &optional REMOTE)
Documentation
Default function to send PROCESS the signal with code SIGCODE.
It shall be the last element in list signal-process-functions.
See function signal-process for more details on usage.
Probably introduced at or before Emacs version 29.1.
Source Code
// Defined in /usr/src/emacs/src/process.c
{
pid_t pid;
int signo;
if (STRINGP (process))
{
Lisp_Object tem = Fget_process (process);
if (NILP (tem))
{
ptrdiff_t len;
tem = string_to_number (SSDATA (process), 10, &len);
if ((IEEE_FLOATING_POINT ? NILP (tem) : !NUMBERP (tem))
|| len != SBYTES (process))
return Qnil;
}
process = tem;
}
else if (!NUMBERP (process))
process = get_process (process);
if (NILP (process))
return process;
if (NUMBERP (process))
CONS_TO_INTEGER (process, pid_t, pid);
else
{
CHECK_PROCESS (process);
pid = XPROCESS (process)->pid;
if (pid <= 0)
error ("Cannot signal process %s", SDATA (XPROCESS (process)->name));
}
if (FIXNUMP (sigcode))
signo = check_integer_range (sigcode, INT_MIN, INT_MAX);
else
{
char *name;
CHECK_SYMBOL (sigcode);
name = SSDATA (SYMBOL_NAME (sigcode));
signo = abbr_to_signal (name);
if (signo < 0)
error ("Undefined signal name %s", name);
}
return make_fixnum (kill (pid, signo));
}