diff --git a/core/strings/strings.odin b/core/strings/strings.odin index 397b14b7c..6d135fc75 100644 --- a/core/strings/strings.odin +++ b/core/strings/strings.odin @@ -169,12 +169,12 @@ concatenate :: proc(a: []string, allocator := context.allocator) -> string { `rune_offset` and `rune_length` are in runes, not bytes. If `rune_length` <= 0, then it'll return the remainder of the string starting with `rune_offset`. */ -cut :: proc(s: string, rune_offset := int(0), rune_length := int(0), allocator := context.temp_allocator) -> (res: string) { +cut :: proc(s: string, rune_offset := int(0), rune_length := int(0), allocator := context.allocator) -> (res: string) { s := s; rune_length := rune_length; l := utf8.rune_count_in_string(s); if rune_offset >= l { return ""; } - if rune_offset == 0 && rune_length == 0 { + if rune_offset == 0 && rune_length <= 0 { return clone(s, allocator); } if rune_length == 0 { rune_length = l; }