summaryrefslogtreecommitdiffstats
path: root/usr.bin/make/str.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/make/str.c')
-rw-r--r--usr.bin/make/str.c26
1 files changed, 11 insertions, 15 deletions
diff --git a/usr.bin/make/str.c b/usr.bin/make/str.c
index 03ff7a4a..4889ec9 100644
--- a/usr.bin/make/str.c
+++ b/usr.bin/make/str.c
@@ -94,30 +94,26 @@ str_concat(s1, s2, flags)
char *result;
/* get the length of both strings */
- len1 = s1 == NULL ? 0 : strlen(s1);
- len2 = s2 == NULL ? 0 : strlen(s2);
+ len1 = strlen(s1);
+ len2 = strlen(s2);
/* allocate length plus separator plus EOS */
result = emalloc((u_int)(len1 + len2 + 2));
/* copy first string into place */
- if (len1)
- memcpy(result, s1, len1);
+ memcpy(result, s1, len1);
/* add separator character */
- if (len1 && len2) {
- if (flags & STR_ADDSPACE)
- result[len1++] = ' ';
- else if (flags & STR_ADDSLASH)
- result[len1++] = '/';
+ if (flags & STR_ADDSPACE) {
+ result[len1] = ' ';
+ ++len1;
+ } else if (flags & STR_ADDSLASH) {
+ result[len1] = '/';
+ ++len1;
}
- /* copy second string into place */
- if (len2)
- memcpy(result + len1, s2, len2);
-
- /* Terminate. */
- result[len1 + len2] = '\0';
+ /* copy second string plus EOS into place */
+ memcpy(result + len1, s2, len2 + 1);
/* free original strings */
if (flags & STR_DOFREE) {
OpenPOWER on IntegriCloud