fixed str_trim bugs

This commit is contained in:
Timerix 2025-11-01 00:15:41 +05:00
parent a0affaa6d0
commit 75c94e88d9

View File

@ -134,10 +134,10 @@ str hex_to_str(Array(u8) buf, bool uppercase){
} }
void str_trim(str* line, bool set_zero_at_end){ void str_trim(str* line, bool set_zero_at_end){
bool stop = false;
// loop forward // loop forward
bool stop = false;
while(line->size > 0 && !stop){ while(line->size > 0 && !stop){
char first_char = line->data[line->size - 1]; char first_char = line->data[0];
switch(first_char){ switch(first_char){
case '\0': case '\r': case '\n': case '\0': case '\r': case '\n':
case '\t': case ' ': case '\t': case ' ':
@ -149,7 +149,9 @@ void str_trim(str* line, bool set_zero_at_end){
break; break;
} }
} }
// loop backward // loop backward
stop = false;
while(line->size > 0 && !stop) while(line->size > 0 && !stop)
{ {
char last_char = line->data[line->size - 1]; char last_char = line->data[line->size - 1];
@ -163,6 +165,7 @@ void str_trim(str* line, bool set_zero_at_end){
break; break;
} }
} }
if(set_zero_at_end){ if(set_zero_at_end){
line->data[line->size] = '\0'; line->data[line->size] = '\0';
line->isZeroTerminated = true; line->isZeroTerminated = true;