BLI_string, dont pass unicode to ascii BLI_str_partition functions
authorCampbell Barton <ideasman42@gmail.com>
Mon, 7 Jul 2014 20:06:34 +0000 (06:06 +1000)
committerCampbell Barton <ideasman42@gmail.com>
Mon, 7 Jul 2014 20:06:34 +0000 (06:06 +1000)
CMakeLists.txt
source/blender/blenlib/BLI_string.h
source/blender/blenlib/intern/string.c
tests/gtests/blenlib/BLI_string_test.cc

index 3d3a8a4cc79e8781a6dd201c9eed4c0e9cd5b8f2..856ce8e934e52c9f1458f7fcf7b40fbaef3242d0 100644 (file)
@@ -1894,7 +1894,7 @@ elseif(APPLE)
                else() # vanilla gcc or clang_omp support OpenMP
                        message(STATUS "Using special OpenMP enabled compiler !") # letting find_package(OpenMP) module work for gcc
                        string(SUBSTRING "${CMAKE_C_COMPILER}" 0 5 CLANG_OMP)
-                       message(STATUS "Using clang-omp from darwin libs "${CLANG_OMP})
+                       message(STATUS "Using clang-omp from darwin libs " ${CLANG_OMP})
                        if(CMAKE_C_COMPILER_ID MATCHES "Clang") # clang-omp in darwin libs
                                set(OPENMP_FOUND ON)
                                set(OpenMP_C_FLAGS "-fopenmp" CACHE STRING "C compiler flags for OpenMP parallization" FORCE)
index 27bec227ece1192fabee685faf2671a4489cf6ce..786e5e9d9d8c6d320621979b18f21648900100e0 100644 (file)
@@ -79,9 +79,9 @@ int BLI_str_rstrip_float_zero(char *str, const char pad) ATTR_NONNULL();
 int BLI_str_index_in_array_n(const char *__restrict str, const char **__restrict str_array, const int str_array_len) ATTR_NONNULL();
 int BLI_str_index_in_array(const char *__restrict str, const char **__restrict str_array) ATTR_NONNULL();
 
-size_t BLI_str_partition(const char *str, const unsigned int delim[], char **sep, char **suf) ATTR_NONNULL();
-size_t BLI_str_rpartition(const char *str, const unsigned int delim[], char **sep, char **suf) ATTR_NONNULL();
-size_t BLI_str_partition_ex(const char *str, const unsigned int delim[], char **sep, char **suf, const bool from_right) ATTR_NONNULL();
+size_t BLI_str_partition(const char *str, const char delim[], char **sep, char **suf) ATTR_NONNULL();
+size_t BLI_str_rpartition(const char *str, const char delim[], char **sep, char **suf) ATTR_NONNULL();
+size_t BLI_str_partition_ex(const char *str, const char delim[], char **sep, char **suf, const bool from_right) ATTR_NONNULL();
 
 #ifdef __cplusplus
 }
index 87233d264393ed3882494e5e91a62fde0109fd45..f396abbeb8dc5758b7ffcb27e5f2534f3c2cdd80 100644 (file)
@@ -690,7 +690,7 @@ int BLI_str_index_in_array(const char *str, const char **str_array)
  * \param suf Return value, set to next char after the first delimiter found (or NULL if none found).
  * \return The length of the prefix (i.e. *sep - str).
  */
-size_t BLI_str_partition(const char *str, const unsigned int delim[], char **sep, char **suf)
+size_t BLI_str_partition(const char *str, const char delim[], char **sep, char **suf)
 {
        return BLI_str_partition_ex(str, delim, sep, suf, false);
 }
@@ -704,7 +704,7 @@ size_t BLI_str_partition(const char *str, const unsigned int delim[], char **sep
  * \param suf Return value, set to next char after the first delimiter found (or NULL if none found).
  * \return The length of the prefix (i.e. *sep - str).
  */
-size_t BLI_str_rpartition(const char *str, const unsigned int delim[], char **sep, char **suf)
+size_t BLI_str_rpartition(const char *str, const char delim[], char **sep, char **suf)
 {
        return BLI_str_partition_ex(str, delim, sep, suf, true);
 }
@@ -719,15 +719,15 @@ size_t BLI_str_rpartition(const char *str, const unsigned int delim[], char **se
  * \param from_right If %true, search from the right of \a str, else, search from its left.
  * \return The length of the prefix (i.e. *sep - str).
  */
-size_t BLI_str_partition_ex(const char *str, const unsigned int delim[], char **sep, char **suf, const bool from_right)
+size_t BLI_str_partition_ex(const char *str, const char delim[], char **sep, char **suf, const bool from_right)
 {
-       const unsigned int *d;
+       const char *d;
        char *(*func)(const char *str, int c) = from_right ? strrchr : strchr;
 
        *sep = *suf = NULL;
 
        for (d = delim; *d != '\0'; ++d) {
-               char *tmp = func(str, (int)*d);
+               char *tmp = func(str, *d);
 
                if (tmp && (from_right ? (*sep < tmp) : (!*sep || *sep > tmp))) {
                        *sep = tmp;
index 5a828f39f9c63e9b4fed0d32100250f2a8f338f0..13091d9e074395126e1fe0f4e9b279e46e2dad53 100644 (file)
@@ -35,7 +35,7 @@ int mk_wcswidth(const wchar_t *pwcs, size_t n)
 /* BLI_str_partition */
 TEST(string, StrPartition)
 {
-       const unsigned int delim[] = {'-', '.', '_', 0x00F1 /* n tilde */, 0x262F /* ying-yang */, '\0'};
+       const char delim[] = {'-', '.', '_', '~', '\\', '\0'};
        char *sep, *suf;
        size_t pre_ln;
 
@@ -94,7 +94,7 @@ TEST(string, StrPartition)
 /* BLI_str_rpartition */
 TEST(string, StrRPartition)
 {
-       const unsigned int delim[] = {'-', '.', '_', 0x00F1 /* n tilde */, 0x262F /* ying-yang */, '\0'};
+       const char delim[] = {'-', '.', '_', '~', '\\', '\0'};
        char *sep, *suf;
        size_t pre_ln;