From: Martin Mares Date: Fri, 28 Apr 2006 08:35:38 +0000 (+0200) Subject: Added a function for joining an array of strings, using an optional X-Git-Tag: holmes-import~645^2~11^2~11 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=cbaeb60241cd69c455b64ffecb818274d830f4cb;p=libucw.git Added a function for joining an array of strings, using an optional separator. --- diff --git a/lib/mempool-str.c b/lib/mempool-str.c index 96bc07da..62fb18ba 100644 --- a/lib/mempool-str.c +++ b/lib/mempool-str.c @@ -61,6 +61,28 @@ mp_multicat(struct mempool *p, ...) return buf; } +char * +mp_strjoin(struct mempool *p, char **a, uns n, uns sep) +{ + uns sizes[n]; + uns len = 1; + for (uns i=0; i @@ -71,6 +93,9 @@ int main(void) char *s = mp_strdup(p, "12345"); char *c = mp_multicat(p, "<<", s, ">>", NULL); puts(c); + char *a[] = { "bugs", "gnats", "insects" }; + puts(mp_strjoin(p, a, 3, '.')); + puts(mp_strjoin(p, a, 3, 0)); return 0; } diff --git a/lib/mempool.h b/lib/mempool.h index 95727688..6f6a7ffe 100644 --- a/lib/mempool.h +++ b/lib/mempool.h @@ -70,6 +70,7 @@ mp_strcat(struct mempool *mp, char *x, char *y) { return mp_multicat(mp, x, y, NULL); } +char *mp_strjoin(struct mempool *p, char **a, uns n, uns sep); /* mempool-fmt.c */ diff --git a/lib/mempool.t b/lib/mempool.t index 0a3ccc41..7a1f2978 100644 --- a/lib/mempool.t +++ b/lib/mempool.t @@ -5,3 +5,5 @@ Out: Run: obj/lib/mempool-str-t Out: <<12345>> + bugs.gnats.insects + bugsgnatsinsects