Index: pickle.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/pickle.py,v retrieving revision 1.49 diff -u -r1.49 pickle.py --- pickle.py 2001/08/02 04:15:00 1.49 +++ pickle.py 2001/08/03 07:33:42 @@ -26,6 +26,11 @@ __version__ = "$Revision: 1.49 $" # Code version from types import * +try: + UnicodeType + _have_unicode +except NameError: + _have_unicode = 0 from copy_reg import dispatch_table, safe_constructors import marshal import sys @@ -304,16 +309,17 @@ s = mdumps(l)[1:] self.write(BINUNICODE + s + encoding) else: - object = object.replace(u"\\", u"\\u005c") - object = object.replace(u"\n", u"\\u000a") + object = object.replace(unicode("\\"), unicode("\\u005c")) + object = object.replace(unicode("\n"), unicode("\\u000a")) self.write(UNICODE + object.encode('raw-unicode-escape') + '\n') memo_len = len(memo) self.write(self.put(memo_len)) memo[d] = (memo_len, object) - dispatch[UnicodeType] = save_unicode + if _have_unicode: + dispatch[UnicodeType] = save_unicode - if StringType == UnicodeType: + if _have_unicode and StringType == UnicodeType: # This is true for Jython def save_string(self, object): d = id(object) @@ -334,8 +340,8 @@ self.write(BINSTRING + s + object) else: if unicode: - object = object.replace(u"\\", u"\\u005c") - object = object.replace(u"\n", u"\\u000a") + object = object.replace(unicode("\\"), unicode("\\u005c")) + object = object.replace(unicode("\n"), unicode("\\u000a")) object = object.encode('raw-unicode-escape') self.write(UNICODE + object + '\n') else: