]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Fix some problems introduced by the str8 repr change.
authorGuido van Rossum <guido@python.org>
Fri, 15 Jun 2007 03:35:38 +0000 (03:35 +0000)
committerGuido van Rossum <guido@python.org>
Fri, 15 Jun 2007 03:35:38 +0000 (03:35 +0000)
Lib/pickle.py
Lib/test/test_popen.py
Modules/cPickle.c

index 9919aa4c58d77db37f87c4a12b3dd4686db97dac..27f7ecaffa6e9d187cf96799420f12b0e74fab90 100644 (file)
@@ -501,7 +501,8 @@ class Pickler:
             else:
                 self.write(BINSTRING + pack("<i", n) + bytes(obj))
         else:
-            self.write(STRING + bytes(repr(obj)) + b'\n')
+            # Strip leading 's' due to repr() of str8() returning s'...'
+            self.write(STRING + bytes(repr(obj).lstrip("s")) + b'\n')
         self.memoize(obj)
     dispatch[str8] = save_string
 
index 24573968993e4cc6e7a7c0c62905032e869477ea..fba3f41ca458af5d1582f5eaf6de99170f42cacc 100644 (file)
@@ -18,8 +18,10 @@ if ' ' in python:
     python = '"' + python + '"'     # quote embedded space for cmdline
 
 class PopenTest(unittest.TestCase):
+
     def _do_test_commandline(self, cmdline, expected):
-        cmd = '%s -c "import sys; print(sys.argv)" %s' % (python, cmdline)
+        cmd = '%s -c "import sys; print(list(map(str, sys.argv)))" %s'
+        cmd = cmd % (python, cmdline)
         data = os.popen(cmd).read()
         got = eval(data)[1:] # strip off argv[0]
         self.assertEqual(got, expected)
index f0b3c8a5d68bafdd43e03306e3c568ff99c10721..00855604066dbd3bc3c97d22fa70dede49c02cd5 100644 (file)
@@ -1085,6 +1085,10 @@ save_string(Picklerobject *self, PyObject *args, int doput)
                        goto err;
                repr_str = PyString_AS_STRING((PyStringObject *)repr);
 
+                /* Strip leading 's' due to repr() of str8() returning s'...' */
+                if (repr_str[0] == 's')
+                       repr_str++;
+
                if (self->write_func(self, &string, 1) < 0)
                        goto err;