diff --git a/ev_str.h b/ev_str.h index a65aba6..16ff0c5 100644 --- a/ev_str.h +++ b/ev_str.h @@ -402,6 +402,7 @@ evstring_setLength( meta = META(*s); } meta->length = newlen; + (*s)[newlen] = 0; return EV_STR_ERR_NONE; } @@ -498,10 +499,13 @@ evstring_slice( u64 wrapped_begin = begin < 0 ? string_len + 1 + begin : begin; u64 wrapped_end = end < 0 ? string_len + 1 + end : end; - assert(wrapped_begin >= 0 && wrapped_begin < string_len); - assert(wrapped_end > 0 && wrapped_end <= string_len); - - assert(wrapped_begin < wrapped_end); + // In this case, the assertions don't matter + if(wrapped_begin != wrapped_end) + { + assert(wrapped_begin >= 0 && wrapped_begin < string_len); + assert(wrapped_end > 0 && wrapped_end <= string_len); + assert(wrapped_begin < wrapped_end); + } return (evstring_view) { .data = s, @@ -688,8 +692,9 @@ evstring_findAll( evstring_slice(text, v.offset + v.len, -1), evstring_slice(query, 0, -1))) { if(!check_run) { - results[count++] = v; + results[count] = v; } + count++; } return count; }