X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=lib%2Fmempool-str.c;h=176ff3e21e046169c1420ae8402910694544b9f9;hb=90afcc18dbf7cb6c682e1efb994007f03e304422;hp=96bc07dadfeb91ea05a56dc7bf04e6b146b89fa9;hpb=9a6b0c30557f246b8f01c99a80b139485ef30b0c;p=libucw.git diff --git a/lib/mempool-str.c b/lib/mempool-str.c index 96bc07da..176ff3e2 100644 --- a/lib/mempool-str.c +++ b/lib/mempool-str.c @@ -14,7 +14,7 @@ #include char * -mp_strdup(struct mempool *p, char *s) +mp_strdup(struct mempool *p, const char *s) { uns l = strlen(s) + 1; char *t = mp_alloc_fast_noalign(p, l); @@ -23,7 +23,7 @@ mp_strdup(struct mempool *p, char *s) } void * -mp_memdup(struct mempool *p, void *s, uns len) +mp_memdup(struct mempool *p, const void *s, uns len) { void *t = mp_alloc_fast(p, len); memcpy(t, s, len); @@ -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; }