Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2019-04-19 15:49:57 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-04-19 15:52:58 +0300
commitd892f1037c43e3d94b26f05d1e1947b62add2e58 (patch)
tree5ca2faae3a33ea19ada8fe03dc6ac3e4d36ec5b3 /source/blender/blenlib/BLI_string.h
parent9ade9d247d90d348b0d84c3ef5644982de24e9ef (diff)
Fix error in recently added STR_ELEM macro
Very bad oversight, using pointer comparison instead of strcmp for all but the first item.
Diffstat (limited to 'source/blender/blenlib/BLI_string.h')
-rw-r--r--source/blender/blenlib/BLI_string.h31
1 files changed, 16 insertions, 15 deletions
diff --git a/source/blender/blenlib/BLI_string.h b/source/blender/blenlib/BLI_string.h
index 47ff0a15b01..95ee5c81be9 100644
--- a/source/blender/blenlib/BLI_string.h
+++ b/source/blender/blenlib/BLI_string.h
@@ -163,30 +163,31 @@ int BLI_string_find_split_words(const char *str,
/* STR_ELEM#(v, ...): is the first arg equal any others? */
/* Internal helpers. */
#define _VA_STR_ELEM2(v, a) (strcmp(v, a) == 0)
-#define _VA_STR_ELEM3(v, a, b) (_VA_STR_ELEM2(v, a) || ((v) == (b)))
-#define _VA_STR_ELEM4(v, a, b, c) (_VA_STR_ELEM3(v, a, b) || ((v) == (c)))
-#define _VA_STR_ELEM5(v, a, b, c, d) (_VA_STR_ELEM4(v, a, b, c) || ((v) == (d)))
-#define _VA_STR_ELEM6(v, a, b, c, d, e) (_VA_STR_ELEM5(v, a, b, c, d) || ((v) == (e)))
-#define _VA_STR_ELEM7(v, a, b, c, d, e, f) (_VA_STR_ELEM6(v, a, b, c, d, e) || ((v) == (f)))
-#define _VA_STR_ELEM8(v, a, b, c, d, e, f, g) (_VA_STR_ELEM7(v, a, b, c, d, e, f) || ((v) == (g)))
+#define _VA_STR_ELEM3(v, a, b) (_VA_STR_ELEM2(v, a) || (strcmp(v, b) == 0))
+#define _VA_STR_ELEM4(v, a, b, c) (_VA_STR_ELEM3(v, a, b) || (strcmp(v, c) == 0))
+#define _VA_STR_ELEM5(v, a, b, c, d) (_VA_STR_ELEM4(v, a, b, c) || (strcmp(v, d) == 0))
+#define _VA_STR_ELEM6(v, a, b, c, d, e) (_VA_STR_ELEM5(v, a, b, c, d) || (strcmp(v, e) == 0))
+#define _VA_STR_ELEM7(v, a, b, c, d, e, f) (_VA_STR_ELEM6(v, a, b, c, d, e) || (strcmp(v, f) == 0))
+#define _VA_STR_ELEM8(v, a, b, c, d, e, f, g) \
+ (_VA_STR_ELEM7(v, a, b, c, d, e, f) || (strcmp(v, g) == 0))
#define _VA_STR_ELEM9(v, a, b, c, d, e, f, g, h) \
- (_VA_STR_ELEM8(v, a, b, c, d, e, f, g) || ((v) == (h)))
+ (_VA_STR_ELEM8(v, a, b, c, d, e, f, g) || (strcmp(v, h) == 0))
#define _VA_STR_ELEM10(v, a, b, c, d, e, f, g, h, i) \
- (_VA_STR_ELEM9(v, a, b, c, d, e, f, g, h) || ((v) == (i)))
+ (_VA_STR_ELEM9(v, a, b, c, d, e, f, g, h) || (strcmp(v, i) == 0))
#define _VA_STR_ELEM11(v, a, b, c, d, e, f, g, h, i, j) \
- (_VA_STR_ELEM10(v, a, b, c, d, e, f, g, h, i) || ((v) == (j)))
+ (_VA_STR_ELEM10(v, a, b, c, d, e, f, g, h, i) || (strcmp(v, j) == 0))
#define _VA_STR_ELEM12(v, a, b, c, d, e, f, g, h, i, j, k) \
- (_VA_STR_ELEM11(v, a, b, c, d, e, f, g, h, i, j) || ((v) == (k)))
+ (_VA_STR_ELEM11(v, a, b, c, d, e, f, g, h, i, j) || (strcmp(v, k) == 0))
#define _VA_STR_ELEM13(v, a, b, c, d, e, f, g, h, i, j, k, l) \
- (_VA_STR_ELEM12(v, a, b, c, d, e, f, g, h, i, j, k) || ((v) == (l)))
+ (_VA_STR_ELEM12(v, a, b, c, d, e, f, g, h, i, j, k) || (strcmp(v, l) == 0))
#define _VA_STR_ELEM14(v, a, b, c, d, e, f, g, h, i, j, k, l, m) \
- (_VA_STR_ELEM13(v, a, b, c, d, e, f, g, h, i, j, k, l) || ((v) == (m)))
+ (_VA_STR_ELEM13(v, a, b, c, d, e, f, g, h, i, j, k, l) || (strcmp(v, m) == 0))
#define _VA_STR_ELEM15(v, a, b, c, d, e, f, g, h, i, j, k, l, m, n) \
- (_VA_STR_ELEM14(v, a, b, c, d, e, f, g, h, i, j, k, l, m) || ((v) == (n)))
+ (_VA_STR_ELEM14(v, a, b, c, d, e, f, g, h, i, j, k, l, m) || (strcmp(v, n) == 0))
#define _VA_STR_ELEM16(v, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) \
- (_VA_STR_ELEM15(v, a, b, c, d, e, f, g, h, i, j, k, l, m, n) || ((v) == (o)))
+ (_VA_STR_ELEM15(v, a, b, c, d, e, f, g, h, i, j, k, l, m, n) || (strcmp(v, o) == 0))
#define _VA_STR_ELEM17(v, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) \
- (_VA_STR_ELEM16(v, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) || ((v) == (p)))
+ (_VA_STR_ELEM16(v, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) || (strcmp(v, p) == 0))
/* reusable STR_ELEM macro */
#define STR_ELEM(...) VA_NARGS_CALL_OVERLOAD(_VA_STR_ELEM, __VA_ARGS__)