Address some minor bugs in dstr
This commit is contained in:
parent
2e93bd794a
commit
3f9a908860
@ -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;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user