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
This commit is contained in:
Marc-André Lemburg 2002-12-12 17:37:50 +00:00
parent b69bb3d019
commit b28de0d79f
4 changed files with 17 additions and 9 deletions

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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