diff options
Diffstat (limited to 'strbuf.c')
-rw-r--r-- | strbuf.c | 23 |
1 files changed, 8 insertions, 15 deletions
@@ -1,22 +1,22 @@ #include "cache.h" #include "refs.h" -int prefixcmp(const char *str, const char *prefix) +int starts_with(const char *str, const char *prefix) { for (; ; str++, prefix++) if (!*prefix) - return 0; + return 1; else if (*str != *prefix) - return (unsigned char)*prefix - (unsigned char)*str; + return 0; } -int suffixcmp(const char *str, const char *suffix) +int ends_with(const char *str, const char *suffix) { int len = strlen(str), suflen = strlen(suffix); if (len < suflen) - return -1; + return 0; else - return strcmp(str + len - suflen, suffix); + return !strcmp(str + len - suflen, suffix); } /* @@ -78,15 +78,8 @@ void strbuf_grow(struct strbuf *sb, size_t extra) void strbuf_trim(struct strbuf *sb) { - char *b = sb->buf; - while (sb->len > 0 && isspace((unsigned char)sb->buf[sb->len - 1])) - sb->len--; - while (sb->len > 0 && isspace(*b)) { - b++; - sb->len--; - } - memmove(sb->buf, b, sb->len); - sb->buf[sb->len] = '\0'; + strbuf_rtrim(sb); + strbuf_ltrim(sb); } void strbuf_rtrim(struct strbuf *sb) { |