Include empty strings in oc_str8_split

This commit is contained in:
Ben Visness 2023-09-28 20:28:51 -05:00
parent 8d915f03bf
commit caed72856e
1 changed files with 5 additions and 12 deletions

View File

@ -196,23 +196,16 @@ oc_str8_list oc_str8_split(oc_arena* arena, oc_str8 str, oc_str8_list separators
}
if(foundSep)
{
//NOTE(martin): we found a separator. If the start of the current substring is != ptr,
// the current substring is not empty and we emit the substring
if(ptr != subStart)
{
oc_str8 sub = oc_str8_from_buffer(ptr - subStart, subStart);
oc_str8_list_push(arena, &list, sub);
}
oc_str8 sub = oc_str8_from_buffer(ptr - subStart, subStart);
oc_str8_list_push(arena, &list, sub);
ptr += foundSep->len - 1; //NOTE(martin): ptr is incremented at the end of the loop
subStart = ptr + 1;
}
}
//NOTE(martin): emit the last substring
if(ptr != subStart)
{
oc_str8 sub = oc_str8_from_buffer(ptr - subStart, subStart);
oc_str8_list_push(arena, &list, sub);
}
oc_str8 sub = oc_str8_from_buffer(ptr - subStart, subStart);
oc_str8_list_push(arena, &list, sub);
return (list);
}