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 ''