Author: Antonio Cuni <[email protected]>
Branch: py3k-readline
Changeset: r194:8d689f601f1a
Date: 2012-05-04 17:35 +0200
http://bitbucket.org/pypy/pyrepl/changeset/8d689f601f1a/

Log:    fix reading/writing the pyrepl.readline history file, w.r.t. to
        unicode vs bytes

diff --git a/pyrepl/readline.py b/pyrepl/readline.py
--- a/pyrepl/readline.py
+++ b/pyrepl/readline.py
@@ -32,6 +32,10 @@
 from pyrepl.completing_reader import CompletingReader
 from pyrepl.unix_console import UnixConsole, _error
 
+try:
+    unicode
+except NameError:
+    unicode = str
 
 ENCODING = sys.getfilesystemencoding() or 'latin1'     # XXX review
 
@@ -232,6 +236,8 @@
 
     def _histline(self, line):
         line = line.rstrip('\n')
+        if isinstance(line, unicode):
+            return line # on py3k
         try:
             return unicode(line, ENCODING)
         except UnicodeDecodeError:   # bah, silently fall back...
@@ -271,7 +277,9 @@
         history = self.get_reader().get_trimmed_history(maxlength)
         f = open(os.path.expanduser(filename), 'w')
         for entry in history:
-            if isinstance(entry, unicode):
+            # if we are on py3k, we don't need to encode strings before
+            # writing it to a file
+            if isinstance(entry, unicode) and sys.version_info < (3,):
                 try:
                     entry = entry.encode(ENCODING)
                 except UnicodeEncodeError:   # bah, silently fall back...
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to