Commit: ab5f4c4dfad3880f60c8555437aeb0c9ba85cd1e
Author: Bastien Montagne
Date:   Tue Jun 17 15:58:07 2014 +0200
https://developer.blender.org/rBab5f4c4dfad3880f60c8555437aeb0c9ba85cd1e

BLI: Add two helpers to search a given string in an array of strings.

===================================================================

M       source/blender/blenlib/BLI_string.h
M       source/blender/blenlib/intern/string.c

===================================================================

diff --git a/source/blender/blenlib/BLI_string.h 
b/source/blender/blenlib/BLI_string.h
index 2cf9047..235147d 100644
--- a/source/blender/blenlib/BLI_string.h
+++ b/source/blender/blenlib/BLI_string.h
@@ -76,6 +76,9 @@ void BLI_ascii_strtolower(char *str, const size_t len) 
ATTR_NONNULL();
 void BLI_ascii_strtoupper(char *str, const size_t len) ATTR_NONNULL();
 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();
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/source/blender/blenlib/intern/string.c 
b/source/blender/blenlib/intern/string.c
index ab81c8f..4ab568e 100644
--- a/source/blender/blenlib/intern/string.c
+++ b/source/blender/blenlib/intern/string.c
@@ -639,3 +639,45 @@ int BLI_str_rstrip_float_zero(char *str, const char pad)
 
        return totstrip;
 }
+
+/**
+ * Return index of a string in a string array.
+ *
+ * \param str The string to find.
+ * \param str_array Array of strings.
+ * \param str_array_len The length of the array, or -1 for a NULL-terminated 
array.
+ * \return The index of str in str_array or -1.
+ */
+int BLI_str_index_in_array_n(const char *str, const char **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;
+}
+
+/**
+ * Return index of a string in a string array.
+ *
+ * \param str The string to find.
+ * \param str_array Array of strings, (must be NULL-terminated).
+ * \return The index of str in str_array or -1.
+ */
+int BLI_str_index_in_array(const char *str, const char **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;
+}
+

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to