| -rw-r--r-- | shared.c | 14 |
1 files changed, 11 insertions, 3 deletions
@@ -100,15 +100,23 @@ void *cgit_free_commitinfo(struct commitinfo *info) char *trim_end(const char *str, char c) { int len; + char *s, *t; if (str == NULL) return NULL; - len = strlen(str); - while(len > 0 && str[len - 1] == c) + t = (char *)str; + len = strlen(t); + while(len > 0 && t[len - 1] == c) len--; + if (len == 0) return NULL; - return xstrndup(str, len); + + c = t[len]; + t[len] = '\0'; + s = xstrdup(t); + t[len] = c; + return s; } char *strlpart(char *txt, int maxlen) |