From 585b0a61ce0cc7ddf136c1c4e462a0d4ad2a8fc7 Mon Sep 17 00:00:00 2001 From: antirez Date: Thu, 4 Jul 2013 18:30:59 +0200 Subject: [PATCH] sds.c: new function sdsjoin() to join strings. --- src/sds.c | 13 +++++++++++++ src/sds.h | 1 + 2 files changed, 14 insertions(+) diff --git a/src/sds.c b/src/sds.c index 4cf700b9..aa45fc4f 100644 --- a/src/sds.c +++ b/src/sds.c @@ -621,6 +621,19 @@ sds sdsmapchars(sds s, const char *from, const char *to, size_t setlen) { return s; } +/* Join an array of C strings using the specified separator (also a C string). + * Returns the result as an sds string. */ +sds sdsjoin(char **argv, int argc, char *sep) { + sds join = sdsempty(); + int j; + + for (j = 0; j < argc; j++) { + join = sdscat(join, argv[j]); + if (j != argc-1) join = sdscat(join,sep); + } + return join; +} + #ifdef SDS_TEST_MAIN #include #include "testhelp.h" diff --git a/src/sds.h b/src/sds.h index c5a4f30a..46d914fd 100644 --- a/src/sds.h +++ b/src/sds.h @@ -89,6 +89,7 @@ sds sdsfromlonglong(long long value); 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); /* Low level functions exposed to the user API */ sds sdsMakeRoomFor(sds s, size_t addlen);