From 652ab706dc2761476d2283e2e104f42472be9acd Mon Sep 17 00:00:00 2001 From: Marius Tolzmann <tolzmann@molgen.mpg.de> Date: Fri, 16 Oct 2015 15:31:52 +0200 Subject: [PATCH] mx_util: Cleanup mx_strvec_join() * use stpcpy() instead of loops --- mx_util.c | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/mx_util.c b/mx_util.c index 70f532f..24088b2 100644 --- a/mx_util.c +++ b/mx_util.c @@ -1250,29 +1250,28 @@ char *mx_strvec_join(char *sep,char **strvec) char *p; int i; + assert(sep); + assert(strvec); + for (i=0;(in=strvec[i]);i++) { elements++; - len+=strlen(in); + len += strlen(in); } - if (elements==0) return mx_strdup_forever(""); - len+=strlen(sep)*(elements-1); - out=mx_malloc_forever(len+1); - p=out; + + if (elements == 0) + return mx_strdup_forever(""); + + len += strlen(sep)*(elements-1); + out = mx_malloc_forever(len+1); + p = out; for (i=0;i<elements-1;i++) { - in=strvec[i]; - while (*in) - *p++ = *in++; - in=sep; - while (*in) - *p++ = *in++; + p = stpcpy(p, strvec[i]); + p = stpcpy(p, sep); } - in=strvec[i]; - while (*in) - *p++ = *in++; - in=sep; - *p='\0'; - return(out); + p = stpcpy(p, strvec[i]); + + return out; } char *mx_cpuset_to_str(cpu_set_t* cpuset_ptr)