diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2003-01-01 09:51:12 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2003-01-01 09:51:12 (GMT) |
commit | 14e73b186414d6e67cad9924ad72fab1a7d70861 (patch) | |
tree | 4989e166bf359950f0f0d3960175e241840aeadf | |
parent | 33fb554a135720783efb18bb3b3ae382e03ea0d4 (diff) | |
download | cpython-14e73b186414d6e67cad9924ad72fab1a7d70861.zip cpython-14e73b186414d6e67cad9924ad72fab1a7d70861.tar.gz cpython-14e73b186414d6e67cad9924ad72fab1a7d70861.tar.bz2 |
Expose I_ constants. Auto-detect stropts.h. Properly configure the slave terminal.
-rw-r--r-- | Lib/pty.py | 12 | ||||
-rw-r--r-- | Misc/NEWS | 38 | ||||
-rw-r--r-- | Modules/fcntlmodule.c | 39 | ||||
-rw-r--r-- | Modules/posixmodule.c | 4 | ||||
-rwxr-xr-x | configure | 6 | ||||
-rw-r--r-- | configure.in | 3 | ||||
-rw-r--r-- | pyconfig.h.in | 3 |
7 files changed, 98 insertions, 7 deletions
@@ -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) @@ -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 */ @@ -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 |