aboutsummaryrefslogtreecommitdiff
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
-rw-r--r--shared.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/shared.c b/shared.c
index 3926b4a..7ec2e19 100644
--- a/shared.c
+++ b/shared.c
@@ -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)