diff options
author | Marc-André Lemburg <mal@egenix.com> | 2002-12-12 17:37:50 (GMT) |
---|---|---|
committer | Marc-André Lemburg <mal@egenix.com> | 2002-12-12 17:37:50 (GMT) |
commit | b28de0d79f6f1bfc7e395a1945167a87bfe95356 (patch) | |
tree | 2e4771db60c9a7d0a96b46144944565f30b728ee | |
parent | b69bb3d0193ea4871d2480a58e48224cb728e4d9 (diff) | |
download | cpython-b28de0d79f6f1bfc7e395a1945167a87bfe95356.zip cpython-b28de0d79f6f1bfc7e395a1945167a87bfe95356.tar.gz cpython-b28de0d79f6f1bfc7e395a1945167a87bfe95356.tar.bz2 |
Patch to make _codecs a builtin module. This is necessary since
Python 2.3 will support source code encodings which rely on the
builtin codecs being available to the parser.
Remove struct dependency from codecs.py
-rw-r--r-- | Lib/codecs.py | 20 | ||||
-rw-r--r-- | Modules/Setup.config.in | 2 | ||||
-rw-r--r-- | Modules/Setup.dist | 2 | ||||
-rw-r--r-- | setup.py | 2 |
4 files changed, 17 insertions, 9 deletions
diff --git a/Lib/codecs.py b/Lib/codecs.py index e7967d8..b377979 100644 --- a/Lib/codecs.py +++ b/Lib/codecs.py @@ -7,7 +7,7 @@ Written by Marc-Andre Lemburg (mal@lemburg.com). """#" -import struct, __builtin__ +import __builtin__, sys ### Registry and builtin stateless codec functions @@ -48,11 +48,21 @@ BOM_UTF32_LE = '\xff\xfe\x00\x00' # UTF-32, big endian BOM_UTF32_BE = '\x00\x00\xfe\xff' -# UTF-16, native endianness -BOM = BOM_UTF16 = struct.pack('=H', 0xFEFF) +if sys.byteorder == 'little': -# UTF-32, native endianness -BOM_UTF32 = struct.pack('=L', 0x0000FEFF) + # UTF-16, native endianness + BOM = BOM_UTF16 = BOM_UTF16_LE + + # UTF-32, native endianness + BOM_UTF32 = BOM_UTF32_LE + +else: + + # UTF-16, native endianness + BOM = BOM_UTF16 = BOM_UTF16_BE + + # UTF-32, native endianness + BOM_UTF32 = BOM_UTF32_BE # Old broken names (don't use in new code) BOM32_LE = BOM_UTF16_LE diff --git a/Modules/Setup.config.in b/Modules/Setup.config.in index 14ad6bb..fed62e9 100644 --- a/Modules/Setup.config.in +++ b/Modules/Setup.config.in @@ -10,4 +10,4 @@ @USE_SIGNAL_MODULE@signal signalmodule.c # The rest of the modules previously listed in this file are built -# by the setup.py script in Python 2.1. +# by the setup.py script in Python 2.1 and later. diff --git a/Modules/Setup.dist b/Modules/Setup.dist index 7b91185..6df361d 100644 --- a/Modules/Setup.dist +++ b/Modules/Setup.dist @@ -111,6 +111,7 @@ PYTHONPATH=$(COREPYTHONPATH) posix posixmodule.c # posix (UNIX) system calls errno errnomodule.c # posix (UNIX) errno values _sre _sre.c # Fredrik Lundh's new regular expressions +_codecs _codecsmodule.c # access to the builtin codecs and codec registry # The rest of the modules listed in this file are all commented out by # default. Usually they can be detected and built as dynamically @@ -163,7 +164,6 @@ GLHACK=-Dclear=__GLclear #time timemodule.c # -lm # time operations and variables #operator operator.c # operator.add() and similar goodies #_weakref _weakref.c # basic weak reference support -#_codecs _codecsmodule.c # access to the builtin codecs and codec registry #_testcapi _testcapimodule.c # Python C API test module #unicodedata unicodedata.c # static Unicode character database @@ -313,8 +313,6 @@ class PyBuildExt(build_ext): libraries=math_libs) ) # operator.add() and similar goodies exts.append( Extension('operator', ['operator.c']) ) - # access to the builtin codecs and codec registry - exts.append( Extension('_codecs', ['_codecsmodule.c']) ) # Python C API test module exts.append( Extension('_testcapi', ['_testcapimodule.c']) ) # static Unicode character database |