Re: [PATCH] git-compat-util.h:rewrite skip_prefix() as loop
- From
Siddharth Goel <siddharth98391@gmail.com>
- Date
- Mar 2, 2014, 03:22 UTC
- Message-ID
- <CANQLRip4zpOuF=GUsuhsQtQ4z5Z9VtCHo8yBb6vL3npuMHHgZA@mail.gmail.com>
- In-Reply-To
- <1393680724-19983-1-git-send-email-siddharth98391@gmail.com>
To my surprise, git format-patch had removed the Git Notes that I had put to my commit (regarding GSoC). I have written this patch as a part of the GSoC 2014 MicroProject for Git. Going through the mail-chain I observed that many students have attempted this Microproject. So is it ok if I stick to this Microproject or should I go with another one?
On Sat, Mar 1, 2014 at 9:32 PM, Siddharth Goel <siddharth98391@gmail.com> wrote:
Show 28 quoted lines
> Rewrote skip_prefix() function so that prefix is scanned once.
>
> Signed-off-by: Siddharth Goel <siddharth98391@gmail.com>
> ---
> 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
>