From ed7acf5176ad88caa90959b90507e267072d9b89 Mon Sep 17 00:00:00 2001 From: alwaysmpe <10211004+alwaysmpe@users.noreply.github.com> Date: Sat, 27 Sep 2025 01:04:15 +0100 Subject: [PATCH] Support negative indexing --- ugrapheme/ugrapheme.pyx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ugrapheme/ugrapheme.pyx b/ugrapheme/ugrapheme.pyx index 483b6cd..3427e91 100644 --- a/ugrapheme/ugrapheme.pyx +++ b/ugrapheme/ugrapheme.pyx @@ -631,7 +631,13 @@ cpdef unicode grapheme_slice(unicode ustr, cdef size_t l = PyUnicode_GetLength(ustr) - upos if startpos < 0: - startpos = 0 + startpos += l + if startpos < 0: + startpos = 0 + if endpos < 0: + endpos += l + if endpos < 0: + endpos = 0 if startpos >= l or endpos <= startpos: return ''