All the changes follow the pattern

  if (!starts_with(foo, "bar"))
    return;
  foo += 3;

which is turned into

  if ((foo = skip_prefix(foo, "bar")) == NULL)
    return;

Signed-off-by: Nguyễn Thái Ngọc Duy <pclo...@gmail.com>
---
 builtin/branch.c | 3 +--
 pretty.c         | 3 +--
 setup.c          | 3 +--
 tag.c            | 7 +++----
 wt-status.c      | 3 +--
 5 files changed, 7 insertions(+), 12 deletions(-)

diff --git a/builtin/branch.c b/builtin/branch.c
index b4d7716..d063de2 100644
--- a/builtin/branch.c
+++ b/builtin/branch.c
@@ -868,9 +868,8 @@ int cmd_branch(int argc, const char **argv, const char 
*prefix)
        if (!strcmp(head, "HEAD")) {
                detached = 1;
        } else {
-               if (!starts_with(head, "refs/heads/"))
+               if ((head = skip_prefix(head, "refs/heads/")) == NULL)
                        die(_("HEAD not found below refs/heads!"));
-               head += 11;
        }
        hashcpy(merge_filter_ref, head_sha1);
 
diff --git a/pretty.c b/pretty.c
index 87db08b..08e30ec 100644
--- a/pretty.c
+++ b/pretty.c
@@ -40,10 +40,9 @@ static int git_pretty_formats_config(const char *var, const 
char *value, void *c
        const char *fmt;
        int i;
 
-       if (!starts_with(var, "pretty."))
+       if ((name = skip_prefix(var, "pretty.")) == NULL)
                return 0;
 
-       name = var + strlen("pretty.");
        for (i = 0; i < builtin_formats_len; i++) {
                if (!strcmp(commit_formats[i].name, name))
                        return 0;
diff --git a/setup.c b/setup.c
index 6c3f85f..debfaab 100644
--- a/setup.c
+++ b/setup.c
@@ -304,14 +304,13 @@ const char *read_gitfile(const char *path)
        if (len != st.st_size)
                die("Error reading %s", path);
        buf[len] = '\0';
-       if (!starts_with(buf, "gitdir: "))
+       if ((dir = (char *)skip_prefix(buf, "gitdir: ")) == NULL)
                die("Invalid gitfile format: %s", path);
        while (buf[len - 1] == '\n' || buf[len - 1] == '\r')
                len--;
        if (len < 9)
                die("No path in gitfile: %s", path);
        buf[len] = '\0';
-       dir = buf + 8;
 
        if (!is_absolute_path(dir) && (slash = strrchr(path, '/'))) {
                size_t pathlen = slash+1 - path;
diff --git a/tag.c b/tag.c
index 7b07921..9b63d1b 100644
--- a/tag.c
+++ b/tag.c
@@ -86,9 +86,8 @@ int parse_tag_buffer(struct tag *item, const void *data, 
unsigned long size)
                return -1;
        bufptr += 48; /* "object " + sha1 + "\n" */
 
-       if (!starts_with(bufptr, "type "))
+       if ((bufptr = skip_prefix(bufptr, "type ")) == NULL)
                return -1;
-       bufptr += 5;
        nl = memchr(bufptr, '\n', tail - bufptr);
        if (!nl || sizeof(type) <= (nl - bufptr))
                return -1;
@@ -109,11 +108,11 @@ int parse_tag_buffer(struct tag *item, const void *data, 
unsigned long size)
                item->tagged = NULL;
        }
 
-       if (bufptr + 4 < tail && starts_with(bufptr, "tag "))
+       if (bufptr + 4 < tail &&
+           (bufptr = skip_prefix(bufptr, "tag ")) != NULL)
                ;               /* good */
        else
                return -1;
-       bufptr += 4;
        nl = memchr(bufptr, '\n', tail - bufptr);
        if (!nl)
                return -1;
diff --git a/wt-status.c b/wt-status.c
index 1f65039..185fa81 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -1145,9 +1145,8 @@ static int grab_1st_switch(unsigned char *osha1, unsigned 
char *nsha1,
        struct grab_1st_switch_cbdata *cb = cb_data;
        const char *target = NULL, *end;
 
-       if (!starts_with(message, "checkout: moving from "))
+       if ((message = skip_prefix(message, "checkout: moving from ")) == NULL)
                return 0;
-       message += strlen("checkout: moving from ");
        target = strstr(message, " to ");
        if (!target)
                return 0;
-- 
1.8.5.1.208.g019362e

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to