#include <h/mh.h>
#include <h/utils.h>
+#include <stdarg.h>
+
+
+static char *
+copy(char *from, char *to)
+{
+ while ((*to = *from)) {
+ to++;
+ from++;
+ }
+ return (to);
+}
char *
-concat (char *s1, ...)
+concat(char *s1, ...)
{
char *cp, *dp, *sp;
size_t len;
va_list list;
- len = strlen (s1) + 1;
+ len = strlen(s1) + 1;
va_start(list, s1);
while ((cp = va_arg(list, char *)))
- len += strlen (cp);
+ len += strlen(cp);
va_end(list);
- dp = sp = mh_xmalloc(len);
+ dp = sp = mh_xcalloc(len, sizeof(char));
sp = copy(s1, sp);
va_start(list, s1);
- while ((cp = va_arg (list, char *)))
+ while ((cp = va_arg(list, char *)))
sp = copy(cp, sp);
va_end(list);