]> diplodocus.org Git - nmh/blobdiff - sbr/concat.c
new.c: Order two return statements to match comment.
[nmh] / sbr / concat.c
index 82979f5aa0229e529000fe293279be5b4cc70e45..b97c6e44e82ec1731b86ff286b5beedf36157c59 100644 (file)
@@ -1,6 +1,4 @@
-
-/*
- * concat.c -- concatenate a variable number (minimum of 1)
+/* concat.c -- concatenate a variable number (minimum of 1)
  *             of strings in managed memory
  *
  * This code is Copyright (c) 2002, by the authors of nmh.  See the
 #include <h/utils.h>
 
 
+/* concat returns a non-NULL malloc'd pointer to the catenation of the
+ * argument strings less their NUL terminators other than the last.  The
+ * arguments are terminated by a NULL.
+ *
+ * Example:  concat("abc", "def", "", "g", NULL) returns "abcdefg". */
 char *
-concat (char *s1, ...)
+concat (const char *s1, ...)
 {
     char *cp, *dp, *sp;
     size_t len;
@@ -27,11 +30,11 @@ concat (char *s1, ...)
 
     dp = sp = mh_xmalloc(len);
 
-    sp = copy(s1, sp);
+    sp = stpcpy(sp, s1);
 
     va_start(list, s1); 
     while ((cp = va_arg (list, char *)))
-       sp = copy(cp, sp);
+       sp = stpcpy(sp, cp);
     va_end(list);
 
     return dp;