X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/1268afe83692cb8a9ea839ab979d82458da2d03d..fb3655df:/shared.c diff --git a/shared.c b/shared.c index cc06930..10be355 100644 --- a/shared.c +++ b/shared.c @@ -115,6 +115,27 @@ char *trim_end(const char *str, char c) return xstrndup(str, len); } +char *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] = '/'; + result[len + 1] = '\0'; + return result; +} + +void strbuf_ensure_end(struct strbuf *sb, char c) +{ + if (!sb->len || sb->buf[sb->len - 1] != c) + strbuf_addch(sb, c); +} + char *strlpart(char *txt, int maxlen) { char *result;