summaryrefslogtreecommitdiff
path: root/src/process.c
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2022-05-07 18:21:29 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2022-05-07 18:21:29 +0200
commitfc0bd6057c676b9945aa739dd9365a350ca5acef (patch)
tree70e4587f7fa5831b82b414eb4b64b9ea395d5daf /src/process.c
parent2e461ab2dcb407c868a38d833f38815c17a28c5a (diff)
downloademacs-fc0bd6057c676b9945aa739dd9365a350ca5acef.tar.gz
Make 'delete-process' into a command
* doc/lispref/processes.texi (Deleting Processes): Document missing PROCESS value. * src/process.c (Fdelete_process): Allow calling interactively (bug#10107).
Diffstat (limited to 'src/process.c')
-rw-r--r--src/process.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/process.c b/src/process.c
index 08a02ad9423..2f8863aef25 100644
--- a/src/process.c
+++ b/src/process.c
@@ -1071,13 +1071,24 @@ record_deleted_pid (pid_t pid, Lisp_Object filename)
}
-DEFUN ("delete-process", Fdelete_process, Sdelete_process, 1, 1, 0,
+DEFUN ("delete-process", Fdelete_process, Sdelete_process, 0, 1,
+ "(list 'message)",
doc: /* Delete PROCESS: kill it and forget about it immediately.
PROCESS may be a process, a buffer, the name of a process or buffer, or
-nil, indicating the current buffer's process. */)
+nil, indicating the current buffer's process.
+
+Interactively, it will kill the current buffer's process. */)
(register Lisp_Object process)
{
register struct Lisp_Process *p;
+ bool mess = false;
+
+ /* We use this to see whether we were called interactively. */
+ if (EQ (process, Qmessage))
+ {
+ mess = true;
+ process = Qnil;
+ }
process = get_process (process);
p = XPROCESS (process);
@@ -1131,6 +1142,8 @@ nil, indicating the current buffer's process. */)
}
}
remove_process (process);
+ if (mess)
+ message ("Deleted process");
return Qnil;
}
@@ -8637,6 +8650,7 @@ sentinel or a process filter function has an error. */);
DEFSYM (Qnull, "null");
DEFSYM (Qpipe_process_p, "pipe-process-p");
+ DEFSYM (Qmessage, "message");
defsubr (&Sprocessp);
defsubr (&Sget_process);