From 7e652af242ca7afaafd611252fc33bc5682a6680 Mon Sep 17 00:00:00 2001
From: Paul Sokolovsky <pfalcon@users.sourceforge.net>
Date: Tue, 28 Jan 2014 03:14:20 +0200
Subject: [PATCH] array: CPython prints empty arrays inconsistently (only
 typecode, no []).

---
 py/objarray.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/py/objarray.c b/py/objarray.c
index 88f788811..ef5fe8ffe 100644
--- a/py/objarray.c
+++ b/py/objarray.c
@@ -124,17 +124,21 @@ static void array_set_el(mp_obj_array_t *o, int index, mp_obj_t val_in) {
 static void array_print(void (*print)(void *env, const char *fmt, ...), void *env, mp_obj_t o_in, mp_print_kind_t kind) {
     mp_obj_array_t *o = o_in;
     if (o->typecode == BYTEARRAY_TYPECODE) {
-        print(env, "bytearray([", o->typecode);
+        print(env, "bytearray(", o->typecode);
     } else {
-        print(env, "array('%c', [", o->typecode);
+        print(env, "array('%c'", o->typecode);
     }
-    for (int i = 0; i < o->len; i++) {
-        if (i > 0) {
-            print(env, ", ");
+    if (o->len > 0) {
+        print(env, ", [", o->typecode);
+        for (int i = 0; i < o->len; i++) {
+            if (i > 0) {
+                print(env, ", ");
+            }
+            print(env, "%d", array_get_el(o, i));
         }
-        print(env, "%d", array_get_el(o, i));
+        print(env, "]");
     }
-    print(env, "])");
+    print(env, ")");
 }
 
 static mp_obj_t array_construct(char typecode, mp_obj_t initializer) {
-- 
GitLab