Diff options
authorBryce Kwon <bryce@brycekwon.com>
committerBryce Kwon <bryce@brycekwon.com>
commit
parent
tree
download
Build cgit_ensure_end's copy in one expression
Diffstat (limited to '')
-rw-r--r--source/shared.c10
1 file changed, 1 insertion, 9 deletions
diff --git a/source/shared.c b/source/shared.c
index 86a2cf6..18de072 100644
--- a/source/shared.c
+++ b/source/shared.c
@@ -271,16 +271,8 @@ char *cgit_trim_end(const char *str, char c)
char *cgit_ensure_end(const char *str, char c)
{
size_t len = strlen(str);
- char *result;
- if (len && str[len - 1] == c)
- return xstrndup(str, len);
-
- result = xmalloc(len + 2);
- memcpy(result, str, len);
- result[len] = c;
- result[len + 1] = '\0';
- return result;
+ return len && str[len - 1] == c ? xstrdup(str) : xstrfmt("%s%c", str, c);
}
void strbuf_ensure_end(struct strbuf *sb, char c)