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