From db6080507d7b507cfe9aa524d012a96b5dfefc2d Mon Sep 17 00:00:00 2001 From: Skip Montanaro Date: Sat, 7 Feb 2004 13:53:46 +0000 Subject: Remove support for --without-universal-newlines (see PEP 11). --- Include/fileobject.h | 10 +--------- Misc/NEWS | 5 +++++ Modules/bz2module.c | 22 ---------------------- Objects/fileobject.c | 35 ----------------------------------- PC/os2emx/pyconfig.h | 3 --- PC/pyconfig.h | 3 --- Parser/pgenmain.c | 2 -- RISCOS/pyconfig.h | 3 --- configure | 31 +------------------------------ configure.in | 18 ------------------ pyconfig.h.in | 3 --- 11 files changed, 7 insertions(+), 128 deletions(-) diff --git a/Include/fileobject.h b/Include/fileobject.h index 2ec4b24..35b2c3df 100644 --- a/Include/fileobject.h +++ b/Include/fileobject.h @@ -20,11 +20,9 @@ typedef struct { char* f_bufend; /* Points after last occupied position */ char* f_bufptr; /* Current buffer position */ char *f_setbuf; /* Buffer for setbuf(3) and setvbuf(3) */ -#ifdef WITH_UNIVERSAL_NEWLINES int f_univ_newline; /* Handle any newline convention */ int f_newlinetypes; /* Types of newlines seen */ int f_skipnextlf; /* Skip next \n */ -#endif PyObject *f_encoding; } PyFileObject; @@ -51,19 +49,13 @@ PyAPI_FUNC(int) PyObject_AsFileDescriptor(PyObject *); */ PyAPI_DATA(const char *) Py_FileSystemDefaultEncoding; -#ifdef WITH_UNIVERSAL_NEWLINES /* Routines to replace fread() and fgets() which accept any of \r, \n or \r\n as line terminators. */ #define PY_STDIOTEXTMODE "b" char *Py_UniversalNewlineFgets(char *, int, FILE*, PyObject *); size_t Py_UniversalNewlineFread(char *, size_t, FILE *, PyObject *); -#else -#define PY_STDIOTEXTMODE "" -#define Py_UniversalNewlineFgets(buf, len, fp, obj) fgets((buf), (len), (fp)) -#define Py_UniversalNewlineFread(buf, len, fp, obj) \ - fread((buf), 1, (len), (fp)) -#endif /* WITH_UNIVERSAL_NEWLINES */ + #ifdef __cplusplus } #endif diff --git a/Misc/NEWS b/Misc/NEWS index f7f6ffb..939ce66 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -330,6 +330,11 @@ Tools/Demos Build ----- +- Systems requiring the D4, D6 or D7 variants of pthreads are no longer + supported (see PEP 11). + +- Universal newline support can no longer be disabled (see PEP 11). + - Support for DGUX, SunOS 4, IRIX 4 and Minix was removed (see PEP 11). - Support for systems requiring --with-dl-dld or --with-sgi-dl was removed diff --git a/Modules/bz2module.c b/Modules/bz2module.c index 408c736..82d35ae 100644 --- a/Modules/bz2module.c +++ b/Modules/bz2module.c @@ -73,13 +73,11 @@ static char __author__[] = #define RELEASE_LOCK(obj) #endif -#ifdef WITH_UNIVERSAL_NEWLINES /* Bits in f_newlinetypes */ #define NEWLINE_UNKNOWN 0 /* No newline seen, yet */ #define NEWLINE_CR 1 /* \r newline seen */ #define NEWLINE_LF 2 /* \n newline seen */ #define NEWLINE_CRLF 4 /* \r\n newline seen */ -#endif /* ===================================================================== */ /* Structure definitions. */ @@ -94,11 +92,9 @@ typedef struct { int f_softspace; /* Flag used by 'print' command */ -#ifdef WITH_UNIVERSAL_NEWLINES int f_univ_newline; /* Handle any newline convention */ int f_newlinetypes; /* Types of newlines seen */ int f_skipnextlf; /* Skip next \n */ -#endif BZFILE *fp; int mode; @@ -227,11 +223,9 @@ Util_GetLine(BZ2FileObject *f, int n) size_t increment; /* amount to increment the buffer */ PyObject *v; int bzerror; -#ifdef WITH_UNIVERSAL_NEWLINES int newlinetypes = f->f_newlinetypes; int skipnextlf = f->f_skipnextlf; int univ_newline = f->f_univ_newline; -#endif total_v_size = n > 0 ? n : 100; v = PyString_FromStringAndSize((char *)NULL, total_v_size); @@ -243,7 +237,6 @@ Util_GetLine(BZ2FileObject *f, int n) for (;;) { Py_BEGIN_ALLOW_THREADS -#ifdef WITH_UNIVERSAL_NEWLINES if (univ_newline) { while (1) { BZ2_bzRead(&bzerror, f->fp, &c, 1); @@ -277,17 +270,14 @@ Util_GetLine(BZ2FileObject *f, int n) if (bzerror == BZ_STREAM_END && skipnextlf) newlinetypes |= NEWLINE_CR; } else /* If not universal newlines use the normal loop */ -#endif do { BZ2_bzRead(&bzerror, f->fp, &c, 1); f->pos++; *buf++ = c; } while (bzerror == BZ_OK && c != '\n' && buf != end); Py_END_ALLOW_THREADS -#ifdef WITH_UNIVERSAL_NEWLINES f->f_newlinetypes = newlinetypes; f->f_skipnextlf = skipnextlf; -#endif if (bzerror == BZ_STREAM_END) { f->size = f->pos; f->mode = MODE_READ_EOF; @@ -323,9 +313,6 @@ Util_GetLine(BZ2FileObject *f, int n) return v; } -#ifndef WITH_UNIVERSAL_NEWLINES -#define Util_UnivNewlineRead(a,b,c,d,e) BZ2_bzRead(a,b,c,d) -#else /* This is a hacked version of Python's * fileobject.c:Py_UniversalNewlineFread(). */ size_t @@ -393,7 +380,6 @@ Util_UnivNewlineRead(int *bzerror, BZFILE *stream, f->f_skipnextlf = skipnextlf; return dst - buf; } -#endif /* This is a hacked version of Python's fileobject.c:drop_readahead(). */ static void @@ -1190,7 +1176,6 @@ static PyMethodDef BZ2File_methods[] = { /* ===================================================================== */ /* Getters and setters of BZ2File. */ -#ifdef WITH_UNIVERSAL_NEWLINES /* This is a hacked version of Python's fileobject.c:get_newlines(). */ static PyObject * BZ2File_get_newlines(BZ2FileObject *self, void *closure) @@ -1220,7 +1205,6 @@ BZ2File_get_newlines(BZ2FileObject *self, void *closure) return NULL; } } -#endif static PyObject * BZ2File_get_closed(BZ2FileObject *self, void *closure) @@ -1243,10 +1227,8 @@ BZ2File_get_name(BZ2FileObject *self, void *closure) static PyGetSetDef BZ2File_getset[] = { {"closed", (getter)BZ2File_get_closed, NULL, "True if the file is closed"}, -#ifdef WITH_UNIVERSAL_NEWLINES {"newlines", (getter)BZ2File_get_newlines, NULL, "end-of-line convention used in this file"}, -#endif {"mode", (getter)BZ2File_get_mode, NULL, "file mode ('r', 'w', or 'U')"}, {"name", (getter)BZ2File_get_name, NULL, @@ -1309,9 +1291,7 @@ BZ2File_init(BZ2FileObject *self, PyObject *args, PyObject *kwargs) break; case 'U': -#ifdef WITH_UNIVERSAL_NEWLINES self->f_univ_newline = 1; -#endif break; default: @@ -1441,7 +1421,6 @@ exist, and truncated otherwise. If the buffering argument is given, 0 means\n\ unbuffered, and larger numbers specify the buffer size. If compresslevel\n\ is given, must be a number between 1 and 9.\n\ ") -#ifdef WITH_UNIVERSAL_NEWLINES PyDoc_STR( "\n\ Add a 'U' to mode to open the file for input with universal newline\n\ @@ -1451,7 +1430,6 @@ for this attribute is one of None (no newline read yet), '\\r', '\\n',\n\ '\\r\\n' or a tuple containing all the newline types seen. Universal\n\ newlines are available only when reading.\n\ ") -#endif ; static PyTypeObject BZ2File_Type = { diff --git a/Objects/fileobject.c b/Objects/fileobject.c index 66e5f28..05c9f4a 100644 --- a/Objects/fileobject.c +++ b/Objects/fileobject.c @@ -41,13 +41,11 @@ #define FUNLOCKFILE(f) #endif -#ifdef WITH_UNIVERSAL_NEWLINES /* Bits in f_newlinetypes */ #define NEWLINE_UNKNOWN 0 /* No newline seen, yet */ #define NEWLINE_CR 1 /* \r newline seen */ #define NEWLINE_LF 2 /* \n newline seen */ #define NEWLINE_CRLF 4 /* \r\n newline seen */ -#endif FILE * PyFile_AsFile(PyObject *f) @@ -119,11 +117,9 @@ fill_file_fields(PyFileObject *f, FILE *fp, char *name, char *mode, f->f_softspace = 0; f->f_binary = strchr(mode,'b') != NULL; f->f_buf = NULL; -#ifdef WITH_UNIVERSAL_NEWLINES f->f_univ_newline = (strchr(mode, 'U') != NULL); f->f_newlinetypes = NEWLINE_UNKNOWN; f->f_skipnextlf = 0; -#endif Py_INCREF(Py_None); f->f_encoding = Py_None; @@ -165,17 +161,8 @@ open_the_file(PyFileObject *f, char *name, char *mode) else #endif { -#ifdef WITH_UNIVERSAL_NEWLINES if (strcmp(mode, "U") == 0 || strcmp(mode, "rU") == 0) mode = "rb"; -#else - /* Compatibility: specifying U in a Python without universal - ** newlines is allowed, and the file is opened as a normal text - ** file. - */ - if (strcmp(mode, "U") == 0 || strcmp(mode, "rU") == 0) - mode = "r"; -#endif #ifdef MS_WINDOWS if (PyUnicode_Check(f->f_name)) { PyObject *wmode; @@ -494,9 +481,7 @@ file_seek(PyFileObject *f, PyObject *args) clearerr(f->f_fp); return NULL; } -#ifdef WITH_UNIVERSAL_NEWLINES f->f_skipnextlf = 0; -#endif Py_INCREF(Py_None); return Py_None; } @@ -629,7 +614,6 @@ file_tell(PyFileObject *f) clearerr(f->f_fp); return NULL; } -#ifdef WITH_UNIVERSAL_NEWLINES if (f->f_skipnextlf) { int c; c = GETC(f->f_fp); @@ -638,7 +622,6 @@ file_tell(PyFileObject *f) f->f_skipnextlf = 0; } else if (c != EOF) ungetc(c, f->f_fp); } -#endif #if !defined(HAVE_LARGEFILE_SUPPORT) return PyInt_FromLong(pos); #else @@ -1070,18 +1053,12 @@ get_line(PyFileObject *f, int n) size_t used_v_size; /* # used slots in buffer */ size_t increment; /* amount to increment the buffer */ PyObject *v; -#ifdef WITH_UNIVERSAL_NEWLINES int newlinetypes = f->f_newlinetypes; int skipnextlf = f->f_skipnextlf; int univ_newline = f->f_univ_newline; -#endif #if defined(USE_FGETS_IN_GETLINE) -#ifdef WITH_UNIVERSAL_NEWLINES if (n <= 0 && !univ_newline ) -#else - if (n <= 0) -#endif return getline_via_fgets(fp); #endif total_v_size = n > 0 ? n : 100; @@ -1094,7 +1071,6 @@ get_line(PyFileObject *f, int n) for (;;) { Py_BEGIN_ALLOW_THREADS FLOCKFILE(fp); -#ifdef WITH_UNIVERSAL_NEWLINES if (univ_newline) { c = 'x'; /* Shut up gcc warning */ while ( buf != end && (c = GETC(fp)) != EOF ) { @@ -1123,17 +1099,14 @@ get_line(PyFileObject *f, int n) if ( c == EOF && skipnextlf ) newlinetypes |= NEWLINE_CR; } else /* If not universal newlines use the normal loop */ -#endif while ((c = GETC(fp)) != EOF && (*buf++ = c) != '\n' && buf != end) ; FUNLOCKFILE(fp); Py_END_ALLOW_THREADS -#ifdef WITH_UNIVERSAL_NEWLINES f->f_newlinetypes = newlinetypes; f->f_skipnextlf = skipnextlf; -#endif if (c == '\n') break; if (c == EOF) { @@ -1677,7 +1650,6 @@ get_closed(PyFileObject *f, void *closure) { return PyBool_FromLong((long)(f->f_fp == 0)); } -#ifdef WITH_UNIVERSAL_NEWLINES static PyObject * get_newlines(PyFileObject *f, void *closure) { @@ -1706,14 +1678,11 @@ get_newlines(PyFileObject *f, void *closure) return NULL; } } -#endif static PyGetSetDef file_getsetlist[] = { {"closed", (getter)get_closed, NULL, "True if the file is closed"}, -#ifdef WITH_UNIVERSAL_NEWLINES {"newlines", (getter)get_newlines, NULL, "end-of-line convention used in this file"}, -#endif {0}, }; @@ -1931,7 +1900,6 @@ PyDoc_STR( "If the buffering argument is given, 0 means unbuffered, 1 means line\n" "buffered, and larger numbers specify the buffer size.\n" ) -#ifdef WITH_UNIVERSAL_NEWLINES PyDoc_STR( "Add a 'U' to mode to open the file for input with universal newline\n" "support. Any line ending in the input file will be seen as a '\\n'\n" @@ -1941,7 +1909,6 @@ PyDoc_STR( "\n" "'U' cannot be combined with 'w' or '+' mode.\n" ) -#endif /* WITH_UNIVERSAL_NEWLINES */ PyDoc_STR( "\n" "Note: open() is an alias for file()." @@ -2181,7 +2148,6 @@ int PyObject_AsFileDescriptor(PyObject *o) return fd; } -#ifdef WITH_UNIVERSAL_NEWLINES /* From here on we need access to the real fgets and fread */ #undef fgets #undef fread @@ -2359,4 +2325,3 @@ Py_UniversalNewlineFread(char *buf, size_t n, f->f_skipnextlf = skipnextlf; return dst - buf; } -#endif diff --git a/PC/os2emx/pyconfig.h b/PC/os2emx/pyconfig.h index 044c000..a0817f8 100644 --- a/PC/os2emx/pyconfig.h +++ b/PC/os2emx/pyconfig.h @@ -53,9 +53,6 @@ /* enable the GC module */ #define WITH_CYCLE_GC 1 -/* Define if you want to read files with foreign newlines. */ -#define WITH_UNIVERSAL_NEWLINES 1 - /* Define if you want documentation strings in extension modules */ #define WITH_DOC_STRINGS 1 diff --git a/PC/pyconfig.h b/PC/pyconfig.h index e8b65c7..54c98d1 100644 --- a/PC/pyconfig.h +++ b/PC/pyconfig.h @@ -397,9 +397,6 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */ /* Use Python's own small-block memory-allocator. */ #define WITH_PYMALLOC 1 -/* Enable \n, \r, \r\n line ends on import; also the 'U' mode flag for open. */ -#define WITH_UNIVERSAL_NEWLINES 1 - /* Define if you have clock. */ /* #define HAVE_CLOCK */ diff --git a/Parser/pgenmain.c b/Parser/pgenmain.c index f217053..64485eb 100644 --- a/Parser/pgenmain.c +++ b/Parser/pgenmain.c @@ -145,14 +145,12 @@ PyOS_Readline(FILE *sys_stdin, FILE *sys_stdout, char *prompt) return PyMem_REALLOC(p, n+1); } -#ifdef WITH_UNIVERSAL_NEWLINES /* No-nonsense fgets */ char * Py_UniversalNewlineFgets(char *buf, int n, FILE *stream, PyObject *fobj) { return fgets(buf, n, stream); } -#endif #include diff --git a/RISCOS/pyconfig.h b/RISCOS/pyconfig.h index 9836b45..9d59e83 100644 --- a/RISCOS/pyconfig.h +++ b/RISCOS/pyconfig.h @@ -226,9 +226,6 @@ one supplied by Python itself. (see Include/unicodectype.h). */ #undef WANT_WCTYPE_FUNCTIONS -/* Define if you want to read files with foreign newlines. */ -#define WITH_UNIVERSAL_NEWLINES 1 - /* Define if you want documentation strings in extension modules */ #define WITH_DOC_STRINGS 1 diff --git a/configure b/configure index 6fac192..a5ffac8 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Revision: 1.449 . +# From configure.in Revision: 1.450 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.57 for python 2.4. # @@ -866,8 +866,6 @@ Optional Packages: --with(out)-thread[=DIRECTORY] deprecated; use --with(out)-threads --with-pth use GNU pth threading libraries - --with(out)-universal-newlines - disable/enable foreign newlines --with(out)-doc-strings disable/enable documentation strings --with(out)-pymalloc disable/enable specialized mallocs --with-wctype-functions use wctype.h functions @@ -11961,33 +11959,6 @@ if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then fi fi -# Check for universal newline support -echo "$as_me:$LINENO: checking for --with-universal-newlines" >&5 -echo $ECHO_N "checking for --with-universal-newlines... $ECHO_C" >&6 - -# Check whether --with-universal-newlines or --without-universal-newlines was given. -if test "${with_universal_newlines+set}" = set; then - withval="$with_universal_newlines" - -fi; - -if test -z "$with_universal_newlines" -then with_universal_newlines="yes" -fi -if test "$with_universal_newlines" = "no" -then - echo --without-universal-newlines is unsupported, see README - exit 1 -else - -cat >>confdefs.h <<\_ACEOF -#define WITH_UNIVERSAL_NEWLINES 1 -_ACEOF - -fi -echo "$as_me:$LINENO: result: $with_universal_newlines" >&5 -echo "${ECHO_T}$with_universal_newlines" >&6 - # Check for --with-doc-strings echo "$as_me:$LINENO: checking for --with-doc-strings" >&5 echo $ECHO_N "checking for --with-doc-strings... $ECHO_C" >&6 diff --git a/configure.in b/configure.in index f05aed4..44a0390 100644 --- a/configure.in +++ b/configure.in @@ -1885,24 +1885,6 @@ if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then fi fi -# Check for universal newline support -AC_MSG_CHECKING(for --with-universal-newlines) -AC_ARG_WITH(universal-newlines, - AC_HELP_STRING(--with(out)-universal-newlines, disable/enable foreign newlines)) - -if test -z "$with_universal_newlines" -then with_universal_newlines="yes" -fi -if test "$with_universal_newlines" = "no" -then - echo --without-universal-newlines is unsupported, see README - exit 1 -else - AC_DEFINE(WITH_UNIVERSAL_NEWLINES, 1, - [Define if you want to read files with foreign newlines.]) -fi -AC_MSG_RESULT($with_universal_newlines) - # Check for --with-doc-strings AC_MSG_CHECKING(for --with-doc-strings) AC_ARG_WITH(doc-strings, diff --git a/pyconfig.h.in b/pyconfig.h.in index 1cb2281..6d422df 100644 --- a/pyconfig.h.in +++ b/pyconfig.h.in @@ -792,9 +792,6 @@ /* Define if you want to compile in rudimentary thread support */ #undef WITH_THREAD -/* Define if you want to read files with foreign newlines. */ -#undef WITH_UNIVERSAL_NEWLINES - /* Define to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel and VAX). */ #undef WORDS_BIGENDIAN -- cgit v0.12