about summary refs log tree commit diff
path: root/src/portab
diff options
context:
space:
mode:
Diffstat (limited to 'src/portab')
-rw-r--r--src/portab/Makefile.am2
-rw-r--r--src/portab/portab.h8
-rw-r--r--src/portab/waitpid.c31
3 files changed, 40 insertions, 1 deletions
diff --git a/src/portab/Makefile.am b/src/portab/Makefile.am
index c48e67ad..125cc31a 100644
--- a/src/portab/Makefile.am
+++ b/src/portab/Makefile.am
@@ -14,7 +14,7 @@ AUTOMAKE_OPTIONS = ansi2knr
 
 noinst_LIBRARIES = libngportab.a
 
-libngportab_a_SOURCES = strdup.c strlcpy.c strtok_r.c vsnprintf.c
+libngportab_a_SOURCES = strdup.c strlcpy.c strtok_r.c vsnprintf.c waitpid.c
 
 check_PROGRAMS = portabtest
 
diff --git a/src/portab/portab.h b/src/portab/portab.h
index 83e11313..56d4249b 100644
--- a/src/portab/portab.h
+++ b/src/portab/portab.h
@@ -99,6 +99,14 @@ typedef unsigned char bool;
 #endif
 #endif
 
+#ifdef NeXT
+#define S_IRUSR 0000400		/* read permission, owner */
+#define S_IWUSR 0000200		/* write permission, owner */
+#define S_IRGRP 0000040		/* read permission, group */
+#define S_IROTH 0000004		/* read permission, other */
+#define ssize_t int
+#endif
+
 #undef GLOBAL
 #define GLOBAL
 
diff --git a/src/portab/waitpid.c b/src/portab/waitpid.c
new file mode 100644
index 00000000..0c169601
--- /dev/null
+++ b/src/portab/waitpid.c
@@ -0,0 +1,31 @@
+/*
+ * ngIRCd -- The Next Generation IRC Daemon
+ *
+ * waitpid() implementation. Public domain.
+ * Written by Steven D. Blackford for the NeXT system.
+ *
+ */
+
+#include "portab.h"
+
+#include "imp.h"
+#include <string.h>
+#include <stdlib.h>
+#include <sys/types.h>
+
+#include "exp.h"
+
+#ifndef HAVE_WAITPID
+
+GLOBAL int
+waitpid(pid, stat_loc, options)
+int pid, *stat_loc, options;
+{
+	for (;;) {
+		int wpid = wait(stat_loc);
+		if (wpid == pid || wpid == -1)
+			return wpid;
+	}
+}
+
+#endif