summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xs.h11
-rw-r--r--xs_version.h2
2 files changed, 7 insertions, 6 deletions
diff --git a/xs.h b/xs.h
index 40dd706..1fe210e 100644
--- a/xs.h
+++ b/xs.h
@@ -849,17 +849,18 @@ xs_str *xs_join(const xs_list *list, const char *sep)
int sz;
/* add the separator */
- if (c != 0) {
+ if (c != 0 && ssz) {
s = xs_realloc(s, offset + ssz);
memcpy(s + offset, sep, ssz);
offset += ssz;
}
/* add the element */
- sz = strlen(v);
- s = xs_realloc(s, offset + sz);
- memcpy(s + offset, v, sz);
- offset += sz;
+ if ((sz = strlen(v)) > 0) {
+ s = xs_realloc(s, offset + sz);
+ memcpy(s + offset, v, sz);
+ offset += sz;
+ }
c++;
}
diff --git a/xs_version.h b/xs_version.h
index 1873039..752e1be 100644
--- a/xs_version.h
+++ b/xs_version.h
@@ -1 +1 @@
-/* 263e97c8ac21ff8524e3c890fe4310c696d01056 */
+/* 89589de72ce632da77b0ac4b9d56d3902946b5eb */