Added _getpty interface.
diff --git a/Modules/sgimodule.c b/Modules/sgimodule.c
index 92a8acd..69f9f7c 100644
--- a/Modules/sgimodule.c
+++ b/Modules/sgimodule.c
@@ -28,6 +28,12 @@
#include "modsupport.h"
#include "ceval.h"
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <fcntl.h>
+
extern int sginap(long);
static object *
@@ -45,8 +51,32 @@
return None;
}
+extern char *_getpty(int *, int, mode_t, int);
+
+static object *
+sgi__getpty(self, args)
+ object *self;
+ object *args;
+{
+ int oflag;
+ int mode;
+ int nofork;
+ char *name;
+ int fildes;
+ if (!getargs(args, "(iii)", &oflag, &mode, &nofork))
+ return NULL;
+ errno = 0;
+ name = _getpty(&fildes, oflag, (mode_t)mode, nofork);
+ if (name == NULL) {
+ err_errno(IOError);
+ return NULL;
+ }
+ return mkvalue("(si)", name, fildes);
+}
+
static struct methodlist sgi_methods[] = {
{"nap", sgi_nap},
+ {"_getpty", sgi__getpty},
{NULL, NULL} /* sentinel */
};