]> gitweb.ps.run Git - ps-cgit/blobdiff - shared.c
use struct strbuf instead of static buffers
[ps-cgit] / shared.c
index cc06930f68acad64c430ae1fea7c8bdd9c13ae60..10be35504dd7f110ef2f6db08dd47da08b81424e 100644 (file)
--- 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;