From 5048df0b7c1cfb951e28fc2d4b1f1385b1c8046e Mon Sep 17 00:00:00 2001
From: Paul Sokolovsky <pfalcon@users.sourceforge.net>
Date: Sat, 14 Jun 2014 03:15:00 +0300
Subject: [PATCH] objstr: find(), rfind(), index(): Make return value be
 unicode-aware.

---
 py/objstr.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/py/objstr.c b/py/objstr.c
index acbf00283..c732719dd 100644
--- a/py/objstr.c
+++ b/py/objstr.c
@@ -32,6 +32,7 @@
 #include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
+#include "unicode.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime0.h"
@@ -591,6 +592,11 @@ STATIC mp_obj_t str_finder(uint n_args, const mp_obj_t *args, machine_int_t dire
         }
     } else {
         // found
+        #if MICROPY_PY_BUILTINS_STR_UNICODE
+        if (self_type == &mp_type_str) {
+            return MP_OBJ_NEW_SMALL_INT(utf8_ptr_to_index(haystack, p));
+        }
+        #endif
         return MP_OBJ_NEW_SMALL_INT(p - haystack);
     }
 }
-- 
GitLab