From 11425c89cf4a2c36941ac7b85c5f4d74636d4e45 Mon Sep 17 00:00:00 2001
From: antirez <antirez@gmail.com>
Date: Sat, 25 Jul 2015 17:05:20 +0200
Subject: [PATCH] SDS: sdsjoinsds() call ported from antirez/sds fork.

---
 src/sds.c | 12 ++++++++++++
 src/sds.h |  1 +
 2 files changed, 13 insertions(+)

diff --git a/src/sds.c b/src/sds.c
index d0649dcf..c1c78e28 100644
--- a/src/sds.c
+++ b/src/sds.c
@@ -1075,6 +1075,18 @@ sds sdsjoin(char **argv, int argc, char *sep) {
     return join;
 }
 
+/* Like sdsjoin, but joins an array of SDS strings. */
+sds sdsjoinsds(sds *argv, int argc, const char *sep, size_t seplen) {
+    sds join = sdsempty();
+    int j;
+
+    for (j = 0; j < argc; j++) {
+        join = sdscatsds(join, argv[j]);
+        if (j != argc-1) join = sdscatlen(join,sep,seplen);
+    }
+    return join;
+}
+
 #if defined(REDIS_TEST) || defined(SDS_TEST_MAIN)
 #include <stdio.h>
 #include "testhelp.h"
diff --git a/src/sds.h b/src/sds.h
index 1fcbe115..7cc8e9c1 100644
--- a/src/sds.h
+++ b/src/sds.h
@@ -247,6 +247,7 @@ sds sdscatrepr(sds s, const char *p, size_t len);
 sds *sdssplitargs(const char *line, int *argc);
 sds sdsmapchars(sds s, const char *from, const char *to, size_t setlen);
 sds sdsjoin(char **argv, int argc, char *sep);
+sds sdsjoinsds(sds *argv, int argc, const char *sep, size_t seplen);
 
 /* Low level functions exposed to the user API */
 sds sdsMakeRoomFor(sds s, size_t addlen);