From 082c9b0267e45cdff9bb8d30a4332f63bd14c58e Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Wed, 23 Jan 2008 14:20:50 +0000 Subject: Fixed bug #1915: Python compiles with --enable-unicode=no again. However several extension methods and modules do not work without unicode support. --- Lib/encodings/__init__.py | 3 ++- Lib/optparse.py | 6 +++++- Misc/NEWS | 4 ++++ Parser/tokenizer.c | 3 +-- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Lib/encodings/__init__.py b/Lib/encodings/__init__.py index 7db44cb..aea7c5e 100644 --- a/Lib/encodings/__init__.py +++ b/Lib/encodings/__init__.py @@ -30,6 +30,7 @@ Written by Marc-Andre Lemburg (mal@lemburg.com). import codecs from encodings import aliases +import __builtin__ _cache = {} _unknown = '--unknown--' @@ -60,7 +61,7 @@ def normalize_encoding(encoding): """ # Make sure we have an 8-bit string, because .translate() works # differently for Unicode strings. - if isinstance(encoding, unicode): + if hasattr(__builtin__, "unicode") and isinstance(encoding, unicode): # Note that .encode('latin-1') does *not* use the codec # registry, so this call doesn't recurse. (See unicodeobject.c # PyUnicode_AsEncodedString() for details) diff --git a/Lib/optparse.py b/Lib/optparse.py index 62d2f7e..4fbe094 100644 --- a/Lib/optparse.py +++ b/Lib/optparse.py @@ -824,7 +824,11 @@ except NameError: (True, False) = (1, 0) def isbasestring(x): - return isinstance(x, types.StringType) or isinstance(x, types.UnicodeType) + try: + return isinstance(x, basestring) + except: + return isinstance(x, types.StringType) or isinstance(x, types.UnicodeType) + class Values: diff --git a/Misc/NEWS b/Misc/NEWS index 103a353..4c1080a 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -12,6 +12,10 @@ What's New in Python 2.6 alpha 1? Core and builtins ----------------- +- Bug #1915: Python compiles with --enable-unicode=no again. However + several extension methods and modules do not work without unicode + support. + - Patch #1720595: add T_BOOL to the range of structmember types. - Issue #1882: when compiling code from a string, encoding cookies in the diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c index 6e74c7b..257ef1c 100644 --- a/Parser/tokenizer.c +++ b/Parser/tokenizer.c @@ -1563,7 +1563,7 @@ PyTokenizer_Get(struct tok_state *tok, char **p_start, char **p_end) there, as it must be empty for PGEN, and we can check for PGEN only in this file. */ -#ifdef PGEN +#if defined(PGEN) || !defined(Py_USING_UNICODE) char* PyTokenizer_RestoreEncoding(struct tok_state* tok, int len, int* offset) { @@ -1584,7 +1584,6 @@ dec_utf8(const char *enc, const char *text, size_t len) { } return ret; } - char * PyTokenizer_RestoreEncoding(struct tok_state* tok, int len, int *offset) { -- cgit v0.12