From 5048df0b7c1cfb951e28fc2d4b1f1385b1c8046e Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky 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 acbf002837..c732719dd5 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); } }