From 12968fb6b24fa3e28e4b4f9cb7928579a9477318 Mon Sep 17 00:00:00 2001
From: Andrew Scheller <github@loowis.durge.org>
Date: Tue, 8 Apr 2014 02:42:50 +0100
Subject: [PATCH] Display \r and \t escape codes in string repr

---
 py/objstr.c                 | 5 ++++-
 tests/basics/string-repr.py | 3 +++
 2 files changed, 7 insertions(+), 1 deletion(-)
 create mode 100644 tests/basics/string-repr.py

diff --git a/py/objstr.c b/py/objstr.c
index 4c09871b9..d2d672b98 100644
--- a/py/objstr.c
+++ b/py/objstr.c
@@ -63,7 +63,10 @@ void mp_str_print_quoted(void (*print)(void *env, const char *fmt, ...), void *e
             print(env, "%c", *s);
         } else if (*s == '\n') {
             print(env, "\\n");
-        // TODO add more escape codes here if we want to match CPython
+        } else if (*s == '\r') {
+            print(env, "\\r");
+        } else if (*s == '\t') {
+            print(env, "\\t");
         } else {
             print(env, "\\x%02x", *s);
         }
diff --git a/tests/basics/string-repr.py b/tests/basics/string-repr.py
new file mode 100644
index 000000000..ba8dbe6d1
--- /dev/null
+++ b/tests/basics/string-repr.py
@@ -0,0 +1,3 @@
+# anything above 0xa0 is printed as Unicode by CPython3.3
+for c in range(0xa1):
+    print("0x%02x: %s" % (c, repr(chr(c))))
-- 
GitLab