From 11425c89cf4a2c36941ac7b85c5f4d74636d4e45 Mon Sep 17 00:00:00 2001 From: antirez Date: Sat, 25 Jul 2015 17:05:20 +0200 Subject: 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 d0649dcf7..c1c78e285 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 #include "testhelp.h" diff --git a/src/sds.h b/src/sds.h index 1fcbe1155..7cc8e9c14 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); -- cgit v1.2.1