# [PATCH v2] skip_prefix:rewrite so that prefix is scanned once

2 messages from 2014-03-02 to 2014-03-02. Participants: Siddharth Goel, Eric Sunshine.
Thread: https://gitlist.dev/t/36022

## Siddharth Goel, 2014-03-02 15:03

Subject: [PATCH v2] skip_prefix:rewrite so that prefix is scanned once
Message-ID: <1393772584-3716-1-git-send-email-siddharth98391@gmail.com>
URL: https://gitlist.dev/e/1393772584-3716-1-git-send-email-siddharth98391%40gmail.com

```
Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Siddharth Goel <siddharth98391@gmail.com>
---
Thanks a lot Eric for your valuable comments. Please let me know if there is 
anything else which needs to be modified in this patch.

 git-compat-util.h | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/git-compat-util.h b/git-compat-util.h
index 614a5e9..550dce3 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -357,8 +357,11 @@ extern int suffixcmp(const char *str, const char *suffix);
 
 static inline const char *skip_prefix(const char *str, const char *prefix)
 {
-	size_t len = strlen(prefix);
-	return strncmp(str, prefix, len) ? NULL : str + len;
+	while (*prefix != '\0' && *str == *prefix) {
+		str++;
+		prefix++;
+	}
+	return (*prefix == '\0' ? str : NULL);
 }
 
 #if defined(NO_MMAP) || defined(USE_WIN32_MMAP)
-- 
1.9.0.138.g2de3478.dirty

```

## Eric Sunshine, 2014-03-02 18:57

Subject: Re: [PATCH v2] skip_prefix:rewrite so that prefix is scanned once
Message-ID: <CAPig+cS9SXwF5ZGzPW1GGoWqxQhKXSyGuEv2yWKbtKXDR-7CAA@mail.gmail.com>
URL: https://gitlist.dev/e/CAPig%2BcS9SXwF5ZGzPW1GGoWqxQhKXSyGuEv2yWKbtKXDR-7CAA%40mail.gmail.com
In-Reply-To: <1393772584-3716-1-git-send-email-siddharth98391@gmail.com>

```
On Sun, Mar 2, 2014 at 10:03 AM, Siddharth Goel
<siddharth98391@gmail.com> wrote:
> Helped-by: Eric Sunshine <sunshine@sunshineco.com>
> Signed-off-by: Siddharth Goel <siddharth98391@gmail.com>
> ---
> Thanks a lot Eric for your valuable comments. Please let me know if there is
> anything else which needs to be modified in this patch.

Other than suggesting that you insert a space after the colon in the
subject, I don't have any further comments on this patch. That's
probably not a reason to resend, though.

As general commentary to any potential GSoC students reading this: do
what you can to ease the review process. One way to do so is to supply
commentary below the "---" line (or in the cover letter) explaining
what changed in the present patch compared with the previous attempt.
Bonus points for providing a reference to the previous version of the
submission, like this [1].

[1]: http://thread.gmane.org/gmane.comp.version-control.git/243097

>  git-compat-util.h | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/git-compat-util.h b/git-compat-util.h
> index 614a5e9..550dce3 100644
> --- a/git-compat-util.h
> +++ b/git-compat-util.h
> @@ -357,8 +357,11 @@ extern int suffixcmp(const char *str, const char *suffix);
>
>  static inline const char *skip_prefix(const char *str, const char *prefix)
>  {
> -       size_t len = strlen(prefix);
> -       return strncmp(str, prefix, len) ? NULL : str + len;
> +       while (*prefix != '\0' && *str == *prefix) {
> +               str++;
> +               prefix++;
> +       }
> +       return (*prefix == '\0' ? str : NULL);
>  }
>
>  #if defined(NO_MMAP) || defined(USE_WIN32_MMAP)
> --
> 1.9.0.138.g2de3478.dirty

```
