summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/pty.py12
-rw-r--r--Misc/NEWS38
-rw-r--r--Modules/fcntlmodule.c39
-rw-r--r--Modules/posixmodule.c4
-rwxr-xr-xconfigure6
-rw-r--r--configure.in3
-rw-r--r--pyconfig.h.in3
7 files changed, 98 insertions, 7 deletions
diff --git a/Lib/pty.py b/Lib/pty.py
index a08aa1b..1a41f17 100644
--- a/Lib/pty.py
+++ b/Lib/pty.py
@@ -86,7 +86,17 @@ def slave_open(tty_name):
opened filedescriptor.
Deprecated, use openpty() instead."""
- return os.open(tty_name, os.O_RDWR)
+ result = os.open(tty_name, os.O_RDWR)
+ try:
+ from fcntl import ioctl, I_PUSH
+ except ImportError:
+ return result
+ try:
+ ioctl(result, I_PUSH, "ptem")
+ ioctl(result, I_PUSH, "ldterm")
+ except IOError:
+ pass
+ return result
def fork():
"""fork() -> (pid, master_fd)
diff --git a/Misc/NEWS b/Misc/NEWS
index 6a7c30d..e49f17e 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -4,6 +4,44 @@ Python News
(editors: check NEWS.help for information about editing NEWS using ReST.)
+What's New in Python 2.3 alpha 2?
+=================================
+
+*Release date: XX-XXX-2003
+
+Core and builtins
+-----------------
+
+Extension modules
+-----------------
+
+- fcntl now exposes the strops.h I_* constants.
+
+Library
+-------
+
+Tools/Demos
+-----------
+
+Build
+-----
+
+C API
+-----
+
+New platforms
+-------------
+
+Tests
+-----
+
+Windows
+-------
+
+Mac
+---
+
+
What's New in Python 2.3 alpha 1?
=================================
diff --git a/Modules/fcntlmodule.c b/Modules/fcntlmodule.c
index 360b54e..c5d9b4d 100644
--- a/Modules/fcntlmodule.c
+++ b/Modules/fcntlmodule.c
@@ -9,7 +9,9 @@
#include <sys/ioctl.h>
#include <fcntl.h>
-
+#ifdef HAVE_STROPTS_H
+#include <stropts.h>
+#endif
static int
conv_descriptor(PyObject *object, int *target)
@@ -337,6 +339,8 @@ ins(PyObject* d, char* symbol, long value)
return 0;
}
+#define INS(x) if (ins(d, #x, (long)x)) return -1
+
static int
all_ins(PyObject* d)
{
@@ -459,6 +463,39 @@ all_ins(PyObject* d)
if (ins(d, "DN_MULTISHOT", (long)DN_MULTISHOT)) return -1;
#endif
+#ifdef HAVE_STROPTS_H
+ /* Unix 98 guarantees that these are in stropts.h. */
+ INS(I_PUSH);
+ INS(I_POP);
+ INS(I_LOOK);
+ INS(I_FLUSH);
+ INS(I_FLUSHBAND);
+ INS(I_SETSIG);
+ INS(I_GETSIG);
+ INS(I_FIND);
+ INS(I_PEEK);
+ INS(I_SRDOPT);
+ INS(I_GRDOPT);
+ INS(I_NREAD);
+ INS(I_FDINSERT);
+ INS(I_STR);
+ INS(I_SWROPT);
+ INS(I_GWROPT);
+ INS(I_SENDFD);
+ INS(I_RECVFD);
+ INS(I_LIST);
+ INS(I_ATMARK);
+ INS(I_CKBAND);
+ INS(I_GETBAND);
+ INS(I_CANPUT);
+ INS(I_SETCLTIME);
+ INS(I_GETCLTIME);
+ INS(I_LINK);
+ INS(I_UNLINK);
+ INS(I_PLINK);
+ INS(I_PUNLINK);
+#endif
+
return 0;
}
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index dff478a..cce8011 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -2726,8 +2726,8 @@ posix_fork(PyObject *self, PyObject *args)
#include <libutil.h>
#endif /* HAVE_LIBUTIL_H */
#endif /* HAVE_PTY_H */
-#if defined(sun) || defined(__hpux)
-#include <sys/stropts.h>
+#ifdef HAVE_STROPTS_H
+#include <stropts.h>
#endif
#endif /* defined(HAVE_OPENPTY) || defined(HAVE_FORKPTY) || defined(HAVE_DEV_PTMX */
diff --git a/configure b/configure
index 86d9578..f9121ec 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
#! /bin/sh
-# From configure.in Revision: 1.381 .
+# From configure.in Revision: 1.382 .
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.53 for python 2.3.
#
@@ -3977,9 +3977,11 @@ fi
+
for ac_header in dlfcn.h fcntl.h grp.h limits.h langinfo.h \
libintl.h locale.h ncurses.h poll.h pthread.h \
-signal.h stdarg.h stddef.h stdlib.h thread.h unistd.h utime.h termios.h \
+signal.h stdarg.h stddef.h stdlib.h stropts.h termios.h thread.h \
+unistd.h utime.h \
sys/audioio.h sys/file.h sys/lock.h sys/mkdev.h sys/modem.h \
sys/param.h sys/poll.h sys/select.h sys/socket.h sys/time.h sys/times.h \
sys/un.h sys/utsname.h sys/wait.h pty.h term.h libutil.h \
diff --git a/configure.in b/configure.in
index 48fa694..560942c 100644
--- a/configure.in
+++ b/configure.in
@@ -690,7 +690,8 @@ dnl AC_MSG_RESULT($cpp_type)
AC_HEADER_STDC
AC_CHECK_HEADERS(dlfcn.h fcntl.h grp.h limits.h langinfo.h \
libintl.h locale.h ncurses.h poll.h pthread.h \
-signal.h stdarg.h stddef.h stdlib.h thread.h unistd.h utime.h termios.h \
+signal.h stdarg.h stddef.h stdlib.h stropts.h termios.h thread.h \
+unistd.h utime.h \
sys/audioio.h sys/file.h sys/lock.h sys/mkdev.h sys/modem.h \
sys/param.h sys/poll.h sys/select.h sys/socket.h sys/time.h sys/times.h \
sys/un.h sys/utsname.h sys/wait.h pty.h term.h libutil.h \
diff --git a/pyconfig.h.in b/pyconfig.h.in
index 56a5c75..eba68f6 100644
--- a/pyconfig.h.in
+++ b/pyconfig.h.in
@@ -439,6 +439,9 @@
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
+/* Define to 1 if you have the <stropts.h> header file. */
+#undef HAVE_STROPTS_H
+
/* Define to 1 if you have the `strptime' function. */
#undef HAVE_STRPTIME