|
@@ -19,9 +19,6 @@ ScufContResult SCDString_alloc(SCDString *const dstr, const char *str, const siz
|
|
|
return SCUFCONT_SUCCESS;
|
|
return SCUFCONT_SUCCESS;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-/**
|
|
|
|
|
- @param dstr Must not be allocated with any of the alloc functions. This functions allocates it.
|
|
|
|
|
-*/
|
|
|
|
|
ScufContResult SCDString_alloc_copy(SCDString *const dstr, const SCDString *const o) {
|
|
ScufContResult SCDString_alloc_copy(SCDString *const dstr, const SCDString *const o) {
|
|
|
return SCDString_alloc(dstr, SCDString_c_str(o), o->len);
|
|
return SCDString_alloc(dstr, SCDString_c_str(o), o->len);
|
|
|
}
|
|
}
|
|
@@ -55,9 +52,6 @@ void SCDString_resize_to_fit(SCDString *const dstr) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-/**
|
|
|
|
|
- @param dst Must have been allocated with one of the allocation functions.
|
|
|
|
|
-*/
|
|
|
|
|
ScufContResult SCDString_copy(const SCDString *const src, SCDString *const dst) {
|
|
ScufContResult SCDString_copy(const SCDString *const src, SCDString *const dst) {
|
|
|
ScufContResult res = SCDString_reserve(dst, src->len + 1);
|
|
ScufContResult res = SCDString_reserve(dst, src->len + 1);
|
|
|
if (res != SCUFCONT_SUCCESS) {
|
|
if (res != SCUFCONT_SUCCESS) {
|
|
@@ -128,6 +122,10 @@ bool SCDString_equal_next_chars_c_str(
|
|
|
return true;
|
|
return true;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+/**
|
|
|
|
|
+ @return SCUFCONT_OUT_OF_MEMORY
|
|
|
|
|
+ @return SCUFCONT_SUCCESS
|
|
|
|
|
+*/
|
|
|
ScufContResult SCDString_concat_char(SCDString *const dstr, const char ch) {
|
|
ScufContResult SCDString_concat_char(SCDString *const dstr, const char ch) {
|
|
|
const size_t new_len = dstr->len + 1;
|
|
const size_t new_len = dstr->len + 1;
|
|
|
if (new_len > dstr->capacity) {
|
|
if (new_len > dstr->capacity) {
|
|
@@ -144,6 +142,10 @@ ScufContResult SCDString_concat_char(SCDString *const dstr, const char ch) {
|
|
|
return SCUFCONT_SUCCESS;
|
|
return SCUFCONT_SUCCESS;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+/**
|
|
|
|
|
+ @return SCUFCONT_OUT_OF_MEMORY
|
|
|
|
|
+ @return SCUFCONT_SUCCESS
|
|
|
|
|
+*/
|
|
|
ScufContResult SCDString_concat_c_str(
|
|
ScufContResult SCDString_concat_c_str(
|
|
|
SCDString *const dstr,
|
|
SCDString *const dstr,
|
|
|
const char *str,
|
|
const char *str,
|
|
@@ -164,6 +166,10 @@ ScufContResult SCDString_concat_c_str(
|
|
|
return SCUFCONT_SUCCESS;
|
|
return SCUFCONT_SUCCESS;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+/**
|
|
|
|
|
+ @return SCUFCONT_OUT_OF_MEMORY
|
|
|
|
|
+ @return SCUFCONT_SUCCESS
|
|
|
|
|
+*/
|
|
|
ScufContResult SCDString_alloc_concat_c_strs(
|
|
ScufContResult SCDString_alloc_concat_c_strs(
|
|
|
SCDString *const dstr,
|
|
SCDString *const dstr,
|
|
|
const char *s1,
|
|
const char *s1,
|
|
@@ -182,6 +188,10 @@ ScufContResult SCDString_alloc_concat_c_strs(
|
|
|
return SCUFCONT_SUCCESS;
|
|
return SCUFCONT_SUCCESS;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+/**
|
|
|
|
|
+ @return SCUFCONT_OUT_OF_MEMORY
|
|
|
|
|
+ @return SCUFCONT_SUCCESS
|
|
|
|
|
+*/
|
|
|
ScufContResult SCDString_split(
|
|
ScufContResult SCDString_split(
|
|
|
const SCDString *const dstr,
|
|
const SCDString *const dstr,
|
|
|
const char *delim,
|
|
const char *delim,
|
|
@@ -244,6 +254,10 @@ void SCDString_split_arr_free(SCDString **const arr, const size_t arr_len) {
|
|
|
*arr = NULL;
|
|
*arr = NULL;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+/**
|
|
|
|
|
+ @return SCUFCONT_OUT_OF_BOUNDS
|
|
|
|
|
+ @return SCUFCONT_SUCCESS
|
|
|
|
|
+*/
|
|
|
ScufContResult SCDString_char_mod(SCDString *const dstr, const size_t at, const char ch) {
|
|
ScufContResult SCDString_char_mod(SCDString *const dstr, const size_t at, const char ch) {
|
|
|
if (at > dstr->len - 1) {
|
|
if (at > dstr->len - 1) {
|
|
|
return SCUFCONT_OUT_OF_BOUNDS;
|
|
return SCUFCONT_OUT_OF_BOUNDS;
|
|
@@ -254,6 +268,10 @@ ScufContResult SCDString_char_mod(SCDString *const dstr, const size_t at, const
|
|
|
return SCUFCONT_SUCCESS;
|
|
return SCUFCONT_SUCCESS;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+/**
|
|
|
|
|
+ @return SCUFCONT_OUT_OF_BOUNDS
|
|
|
|
|
+ @return SCUFCONT_SUCCESS
|
|
|
|
|
+*/
|
|
|
ScufContResult SCDString_char_remove_no_resize(SCDString *const dstr, const size_t at) {
|
|
ScufContResult SCDString_char_remove_no_resize(SCDString *const dstr, const size_t at) {
|
|
|
if (at > dstr->len - 1) {
|
|
if (at > dstr->len - 1) {
|
|
|
return SCUFCONT_OUT_OF_BOUNDS;
|
|
return SCUFCONT_OUT_OF_BOUNDS;
|
|
@@ -264,6 +282,10 @@ ScufContResult SCDString_char_remove_no_resize(SCDString *const dstr, const size
|
|
|
return SCUFCONT_SUCCESS;
|
|
return SCUFCONT_SUCCESS;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+/**
|
|
|
|
|
+ @return SCUFCONT_OUT_OF_BOUNDS
|
|
|
|
|
+ @return SCUFCONT_SUCCESS
|
|
|
|
|
+*/
|
|
|
ScufContResult SCDString_char_remove(SCDString *const dstr, const size_t at) {
|
|
ScufContResult SCDString_char_remove(SCDString *const dstr, const size_t at) {
|
|
|
const ScufContResult res = SCDString_char_remove_no_resize(dstr, at);
|
|
const ScufContResult res = SCDString_char_remove_no_resize(dstr, at);
|
|
|
if (res != SCUFCONT_SUCCESS) {
|
|
if (res != SCUFCONT_SUCCESS) {
|
|
@@ -275,6 +297,11 @@ ScufContResult SCDString_char_remove(SCDString *const dstr, const size_t at) {
|
|
|
return SCUFCONT_SUCCESS;
|
|
return SCUFCONT_SUCCESS;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+/**
|
|
|
|
|
+ @return SCUFCONT_OUT_OF_BOUNDS
|
|
|
|
|
+ @return SCUFCONT_OUT_OF_MEMORY
|
|
|
|
|
+ @return SCUFCONT_SUCCESS
|
|
|
|
|
+*/
|
|
|
ScufContResult SCDString_char_insert(SCDString *const dstr, const size_t at, const char ch) {
|
|
ScufContResult SCDString_char_insert(SCDString *const dstr, const size_t at, const char ch) {
|
|
|
if (at > dstr->len) {
|
|
if (at > dstr->len) {
|
|
|
return SCUFCONT_OUT_OF_BOUNDS;
|
|
return SCUFCONT_OUT_OF_BOUNDS;
|