summaryrefslogtreecommitdiff
path: root/src/c
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2009-09-09 08:15:46 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2009-09-09 08:15:46 -0400
commit817b930ec6d0398a473fa7c6810d696abb8fd181 (patch)
tree1df04b9ac5d1ea383a6c6c572d2a707bd3ceee69 /src/c
parent8a79a264fe8f5f349b7ad546ec8024bc0e7585a0 (diff)
Find chances to use mstrcat()
Diffstat (limited to 'src/c')
-rw-r--r--src/c/urweb.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/c/urweb.c b/src/c/urweb.c
index 651cef17..774c5797 100644
--- a/src/c/urweb.c
+++ b/src/c/urweb.c
@@ -2836,3 +2836,23 @@ uw_Basis_string uw_Basis_unAs(uw_context ctx, uw_Basis_string s) {
return r;
}
+uw_Basis_string uw_Basis_mstrcat(uw_context ctx, ...) {
+ va_list ap;
+ size_t len = 1;
+ char *s, *r, *s2;
+
+ va_start(ap, ctx);
+ for (s = va_arg(ap, char*); s; s = va_arg(ap, char*))
+ len += strlen(s);
+ va_end(ap);
+
+ r = uw_malloc(ctx, len);
+ va_start(ap, ctx);
+ for (s2 = r, s = va_arg(ap, char*); s; s = va_arg(ap, char*))
+ while (*s)
+ *s2++ = *s++;
+ va_end(ap);
+ *s2 = 0;
+
+ return r;
+}