Address some minor bugs in dstr

This commit is contained in:
Abdelrahman Said 2024-03-31 17:00:16 +01:00
parent 2e93bd794a
commit 3f9a908860

View File

@ -105,7 +105,6 @@ void wapp_dstr_concat(String **dst, const char *src) {
}
u64 src_length = strlen(src);
if (src_length == 0) {
return;
}
@ -116,7 +115,7 @@ void wapp_dstr_concat(String **dst, const char *src) {
memset(str, 0, new_length + 1);
strncpy(str, (*dst)->buf, (*dst)->size);
strncat(str, src, src_length);
strncat(str, src, new_length + 1 - (*dst)->size);
wapp_dstr_update(dst, str);
}
@ -170,7 +169,7 @@ void wapp_dstr_print(const String *str) {
return;
}
printf("%s\n", str->buf);
printf("%.*s\n", (i32)str->size, str->buf);
}
i64 wapp_dstr_find(const String *str, const char *substr) {
@ -179,7 +178,6 @@ i64 wapp_dstr_find(const String *str, const char *substr) {
}
u64 substr_length = strlen(substr);
if (substr_length == 0 || substr_length > str->size) {
return -1;
}
@ -187,16 +185,15 @@ i64 wapp_dstr_find(const String *str, const char *substr) {
char buf[substr_length + 1];
memset(buf, 0, substr_length + 1);
const char *s1;
for (u64 i = 0; i < str->size; ++i) {
if (i + substr_length >= str->size) {
if (i + substr_length > str->size) {
break;
}
for (u64 j = 0; j < substr_length; ++j) {
buf[j] = str->buf[i + j];
}
s1 = &(str->buf[i]);
if (strcmp(buf, substr) == 0) {
if (strncmp(s1, substr, substr_length) == 0) {
return i;
}
}