summaryrefslogtreecommitdiff
path: root/src/sysdep.c
diff options
context:
space:
mode:
authorLars Magne Ingebrigtsen <larsi@gnus.org>2011-05-01 02:04:17 +0200
committerLars Magne Ingebrigtsen <larsi@gnus.org>2011-05-01 02:04:17 +0200
commit1ef14cb4b0f726a5e6a86e20fed8cfecb22c67d5 (patch)
tree3278d1d473acef1cbac1551f80e9fd815a08fb99 /src/sysdep.c
parentdcb79f208ab9e2e1e8e0d4e9810ca25c1a660eaf (diff)
downloademacs-1ef14cb4b0f726a5e6a86e20fed8cfecb22c67d5.tar.gz
Extend `call-process' to take the `(:file "file")' syntax to redirect
STDOUT to a file.
Diffstat (limited to 'src/sysdep.c')
-rw-r--r--src/sysdep.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/sysdep.c b/src/sysdep.c
index ca7de4f54bb..9a7045f3610 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -302,6 +302,19 @@ int wait_debugging EXTERNALLY_VISIBLE;
void
wait_for_termination (int pid)
{
+ wait_for_termination_1 (pid, 0);
+}
+
+/* Like the above, but allow keyboard interruption. */
+void
+interruptible_wait_for_termination (int pid)
+{
+ wait_for_termination_1 (pid, 1);
+}
+
+void
+wait_for_termination_1 (int pid, int interruptible)
+{
while (1)
{
#if (defined (BSD_SYSTEM) || defined (HPUX)) && !defined(__GNU__)
@@ -339,6 +352,8 @@ wait_for_termination (int pid)
sigsuspend (&empty_mask);
#endif /* not WINDOWSNT */
#endif /* not BSD_SYSTEM, and not HPUX version >= 6 */
+ if (interruptible)
+ QUIT;
}
}