From fa182e29cd435bb9c6da421d57a494db00dfce95 Mon Sep 17 00:00:00 2001 From: Dvir Volk Date: Mon, 6 Jun 2016 14:08:31 -0700 Subject: [PATCH] minor changes to string functions --- rmutil/strings.c | 14 +++++++++++++- rmutil/strings.h | 3 +++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/rmutil/strings.c b/rmutil/strings.c index 6adf3bc..f553cc3 100644 --- a/rmutil/strings.c +++ b/rmutil/strings.c @@ -26,8 +26,20 @@ int RMUtil_StringEquals(RedisModuleString *s1, RedisModuleString *s2) { size_t l1, l2; c1 = RedisModule_StringPtrLen(s1, &l1); c2 = RedisModule_StringPtrLen(s2, &l2); + if (l1 != l2) return 0; + + return strncmp(c1, c2, l1) == 0; +} + +int RMUtil_StringEqualsC(RedisModuleString *s1, const char *s2) { + + + const char *c1; + size_t l1, l2 = strlen(s2); + c1 = RedisModule_StringPtrLen(s1, &l1); + if (l1 != l2) return 0; - return strncmp(c1, c2, MAX(l1, l2)) == 0; + return strncmp(c1, s2, l1) == 0; } void RMUtil_StringToLower(RedisModuleString *s) { diff --git a/rmutil/strings.h b/rmutil/strings.h index 71df2b4..f7e1702 100644 --- a/rmutil/strings.h +++ b/rmutil/strings.h @@ -12,6 +12,9 @@ RedisModuleString *RMUtil_CreateFormattedString(RedisModuleCtx *ctx, const char /* Return 1 if the two strings are equal. Case *sensitive* */ int RMUtil_StringEquals(RedisModuleString *s1, RedisModuleString *s2); +/* Return 1 if the string is equal to a C NULL terminated string. Case *sensitive* */ +int RMUtil_StringEqualsC(RedisModuleString *s1, const char *s2); + /* Converts a redis string to lowercase in place without reallocating anything */ void RMUtil_StringToLower(RedisModuleString *s);