From cf2a15c76b86f2233c0b260e6504df2d6d668152 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net>
Date: Sat, 13 Apr 1996 04:31:43 +0200
Subject: [PATCH] alarm() added

Rev: src/lpc_signal.c:1.9
---
 src/lpc_signal.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/src/lpc_signal.c b/src/lpc_signal.c
index 1195d0388f..b149afe867 100644
--- a/src/lpc_signal.c
+++ b/src/lpc_signal.c
@@ -13,6 +13,10 @@
 #include <signal.h>
 #include <sys/wait.h>
 
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
 #ifdef NSIG
 #define MAX_SIGNALS NSIG
 #else
@@ -369,6 +373,22 @@ static void f_getpid(INT32 args)
   push_int(getpid());
 }
 
+static void f_alarm(INT32 args)
+{
+  long seconds;
+
+  if(args < 1)
+    error("Too few arguments to signame()\n");
+
+  if(sp[-args].type != T_INT)
+    error("Bad argument 1 to signame()\n");
+
+  seconds=sp[-args].u.integer;
+
+  pop_n_elems(args);
+  push_int(alarm(seconds));
+}
+
 void init_signals()
 {
   int e;
@@ -386,6 +406,7 @@ void init_signals()
   add_efun("signame",f_signame,"function(int:string)",0);
   add_efun("signum",f_signum,"function(string:int)",0);
   add_efun("getpid",f_getpid,"function(:int)",0);
+  add_efun("alarm",f_alarm,"function(int:int)",OPT_SIDE_EFFECT);
 }
 
 void exit_signals()
-- 
GitLab