diff options
author | antirez <antirez@gmail.com> | 2013-07-04 18:30:59 +0200 |
---|---|---|
committer | antirez <antirez@gmail.com> | 2013-07-04 18:30:59 +0200 |
commit | 585b0a61ce0cc7ddf136c1c4e462a0d4ad2a8fc7 (patch) | |
tree | ee46fcb6ac0734cecee7fa083aa9c10f15915546 | |
parent | 1135e9faa253789a6d6e67fd6a44d7395af8fb35 (diff) | |
download | redis-585b0a61ce0cc7ddf136c1c4e462a0d4ad2a8fc7.tar.gz |
sds.c: new function sdsjoin() to join strings.
-rw-r--r-- | src/sds.c | 13 | ||||
-rw-r--r-- | src/sds.h | 1 |
2 files changed, 14 insertions, 0 deletions
@@ -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 <stdio.h> #include "testhelp.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); |