diff options
author | Campbell Barton <ideasman42@gmail.com> | 2021-12-14 07:49:31 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2021-12-14 08:17:10 +0300 |
commit | c097c7b855d4b01950494dc369e9def59486b0fd (patch) | |
tree | d6a9c5a7108e97b0c38f5ba6cb4ded2a2e45ba2e /source/blender/blenlib/intern/string.c | |
parent | c1f5d8d023c6fdef67efbc6ce2af49e384c9bd98 (diff) |
Cleanup: correct unbalanced doxygen groups
Also add groups in some files.
Diffstat (limited to 'source/blender/blenlib/intern/string.c')
-rw-r--r-- | source/blender/blenlib/intern/string.c | 256 |
1 files changed, 163 insertions, 93 deletions
diff --git a/source/blender/blenlib/intern/string.c b/source/blender/blenlib/intern/string.c index 35711c9432f..2c626773871 100644 --- a/source/blender/blenlib/intern/string.c +++ b/source/blender/blenlib/intern/string.c @@ -42,6 +42,10 @@ // #define DEBUG_STRSIZE +/* -------------------------------------------------------------------- */ +/** \name String Duplicate/Copy + * \{ */ + char *BLI_strdupn(const char *str, const size_t len) { char *n = MEM_mallocN(len + 1, "strdup"); @@ -150,6 +154,12 @@ size_t BLI_strcpy_rlen(char *__restrict dst, const char *__restrict src) return srclen; } +/** \} */ + +/* -------------------------------------------------------------------- */ +/** \name String Printing + * \{ */ + size_t BLI_vsnprintf(char *__restrict buffer, size_t maxncpy, const char *__restrict format, @@ -247,6 +257,12 @@ char *BLI_sprintfN(const char *__restrict format, ...) return n; } +/** \} */ + +/* -------------------------------------------------------------------- */ +/** \name String Escape/Un-Escape + * \{ */ + size_t BLI_str_escape(char *__restrict dst, const char *__restrict src, const size_t dst_maxncpy) { @@ -349,6 +365,12 @@ const char *BLI_str_escape_find_quote(const char *str) return (*str == '"') ? str : NULL; } +/** \} */ + +/* -------------------------------------------------------------------- */ +/** \name String Quote/Un-Quote + * \{ */ + bool BLI_str_quoted_substr_range(const char *__restrict str, const char *__restrict prefix, int *__restrict r_start, @@ -432,6 +454,12 @@ bool BLI_str_quoted_substr(const char *__restrict str, return is_complete; } +/** \} */ + +/* -------------------------------------------------------------------- */ +/** \name String Replace + * \{ */ + char *BLI_str_replaceN(const char *__restrict str, const char *__restrict substr_old, const char *__restrict substr_new) @@ -513,6 +541,10 @@ bool BLI_str_replace_table_exact(char *string, /** \} */ +/* -------------------------------------------------------------------- */ +/** \name String Comparison/Matching + * \{ */ + int BLI_strcaseeq(const char *a, const char *b) { return (BLI_strcasecmp(a, b) == 0); @@ -806,6 +838,79 @@ int BLI_strcmp_ignore_pad(const char *str1, const char *str2, const char pad) } } +/** \} */ + +/* -------------------------------------------------------------------- */ +/** \name String Comparison at Start/End + * \{ */ + +int BLI_str_index_in_array_n(const char *__restrict str, + const char **__restrict str_array, + const int str_array_len) +{ + int index; + const char **str_iter = str_array; + + for (index = 0; index < str_array_len; str_iter++, index++) { + if (STREQ(str, *str_iter)) { + return index; + } + } + return -1; +} + +int BLI_str_index_in_array(const char *__restrict str, const char **__restrict str_array) +{ + int index; + const char **str_iter = str_array; + + for (index = 0; *str_iter; str_iter++, index++) { + if (STREQ(str, *str_iter)) { + return index; + } + } + return -1; +} + +bool BLI_str_startswith(const char *__restrict str, const char *__restrict start) +{ + for (; *str && *start; str++, start++) { + if (*str != *start) { + return false; + } + } + + return (*start == '\0'); +} + +bool BLI_strn_endswith(const char *__restrict str, const char *__restrict end, size_t slength) +{ + size_t elength = strlen(end); + + if (elength < slength) { + const char *iter = &str[slength - elength]; + while (*iter) { + if (*iter++ != *end++) { + return false; + } + } + return true; + } + return false; +} + +bool BLI_str_endswith(const char *__restrict str, const char *__restrict end) +{ + const size_t slength = strlen(str); + return BLI_strn_endswith(str, end, slength); +} + +/** \} */ + +/* -------------------------------------------------------------------- */ +/** \name String Length + * \{ */ + size_t BLI_strnlen(const char *s, const size_t maxlen) { size_t len; @@ -818,6 +923,12 @@ size_t BLI_strnlen(const char *s, const size_t maxlen) return len; } +/** \} */ + +/* -------------------------------------------------------------------- */ +/** \name String Case Conversion + * \{ */ + void BLI_str_tolower_ascii(char *str, const size_t len) { size_t i; @@ -840,6 +951,12 @@ void BLI_str_toupper_ascii(char *str, const size_t len) } } +/** \} */ + +/* -------------------------------------------------------------------- */ +/** \name String Stripping + * \{ */ + void BLI_str_rstrip(char *str) { for (int i = (int)strlen(str) - 1; i >= 0; i--) { @@ -872,66 +989,11 @@ int BLI_str_rstrip_float_zero(char *str, const char pad) return totstrip; } -int BLI_str_index_in_array_n(const char *__restrict str, - const char **__restrict str_array, - const int str_array_len) -{ - int index; - const char **str_iter = str_array; - - for (index = 0; index < str_array_len; str_iter++, index++) { - if (STREQ(str, *str_iter)) { - return index; - } - } - return -1; -} - -int BLI_str_index_in_array(const char *__restrict str, const char **__restrict str_array) -{ - int index; - const char **str_iter = str_array; - - for (index = 0; *str_iter; str_iter++, index++) { - if (STREQ(str, *str_iter)) { - return index; - } - } - return -1; -} - -bool BLI_str_startswith(const char *__restrict str, const char *__restrict start) -{ - for (; *str && *start; str++, start++) { - if (*str != *start) { - return false; - } - } - - return (*start == '\0'); -} - -bool BLI_strn_endswith(const char *__restrict str, const char *__restrict end, size_t slength) -{ - size_t elength = strlen(end); - - if (elength < slength) { - const char *iter = &str[slength - elength]; - while (*iter) { - if (*iter++ != *end++) { - return false; - } - } - return true; - } - return false; -} +/** \} */ -bool BLI_str_endswith(const char *__restrict str, const char *__restrict end) -{ - const size_t slength = strlen(str); - return BLI_strn_endswith(str, end, slength); -} +/* -------------------------------------------------------------------- */ +/** \name String Split (Partition) + * \{ */ size_t BLI_str_partition(const char *str, const char delim[], const char **sep, const char **suf) { @@ -993,6 +1055,47 @@ size_t BLI_str_partition_ex(const char *str, return end ? (size_t)(end - str) : strlen(str); } +int BLI_string_find_split_words( + const char *str, const size_t len, const char delim, int r_words[][2], int words_max) +{ + int n = 0, i; + bool charsearch = true; + + /* Skip leading spaces */ + for (i = 0; (i < len) && (str[i] != '\0'); i++) { + if (str[i] != delim) { + break; + } + } + + for (; (i < len) && (str[i] != '\0') && (n < words_max); i++) { + if ((str[i] != delim) && (charsearch == true)) { + r_words[n][0] = i; + charsearch = false; + } + else { + if ((str[i] == delim) && (charsearch == false)) { + r_words[n][1] = i - r_words[n][0]; + n++; + charsearch = true; + } + } + } + + if (charsearch == false) { + r_words[n][1] = i - r_words[n][0]; + n++; + } + + return n; +} + +/** \} */ + +/* -------------------------------------------------------------------- */ +/** \name String Formatting (Numeric) + * \{ */ + static size_t BLI_str_format_int_grouped_ex(char src[16], char dst[16], int num_len) { char *p_src = src; @@ -1082,37 +1185,4 @@ void BLI_str_format_attribute_domain_size(char dst[7], int number_to_format) BLI_snprintf(dst, dst_len, "%.*f%s", decimals, number_to_format_converted, units[order]); } -int BLI_string_find_split_words( - const char *str, const size_t len, const char delim, int r_words[][2], int words_max) -{ - int n = 0, i; - bool charsearch = true; - - /* Skip leading spaces */ - for (i = 0; (i < len) && (str[i] != '\0'); i++) { - if (str[i] != delim) { - break; - } - } - - for (; (i < len) && (str[i] != '\0') && (n < words_max); i++) { - if ((str[i] != delim) && (charsearch == true)) { - r_words[n][0] = i; - charsearch = false; - } - else { - if ((str[i] == delim) && (charsearch == false)) { - r_words[n][1] = i - r_words[n][0]; - n++; - charsearch = true; - } - } - } - - if (charsearch == false) { - r_words[n][1] = i - r_words[n][0]; - n++; - } - - return n; -} +/** \} */ |