From 9f85c4fe488a8f123348786448f534263dc003e1 Mon Sep 17 00:00:00 2001
From: Damien George <damien.p.george@gmail.com>
Date: Fri, 2 Jun 2017 13:07:22 +1000
Subject: [PATCH] py/objstr: Catch case of negative "maxsplit" arg to
 str.rsplit().

Negative values mean no limit on the number of splits so should delegate to
the .split() method.
---
 py/objstr.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/py/objstr.c b/py/objstr.c
index a1e223572..1d2a28045 100644
--- a/py/objstr.c
+++ b/py/objstr.c
@@ -602,6 +602,11 @@ STATIC mp_obj_t str_rsplit(size_t n_args, const mp_obj_t *args) {
     GET_STR_DATA_LEN(args[0], s, len);
 
     mp_int_t splits = mp_obj_get_int(args[2]);
+    if (splits < 0) {
+        // Negative limit means no limit, so delegate to split().
+        return mp_obj_str_split(n_args, args);
+    }
+
     mp_int_t org_splits = splits;
     // Preallocate list to the max expected # of elements, as we
     // will fill it from the end.
-- 
GitLab