Re: [PATCH] commit.c: Replace starts_with() with skip_prefix()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks for the submission. Some commentary below to expose you to the
review process on this project...

On Mon, Mar 3, 2014 at 2:47 AM, Karthik Nayak <karthik.188@xxxxxxxxx> wrote:
> Replace with skip_prefix(), which uses the inbuilt function
> strcmp() to compare.

Explaining the purpose of the change is indeed important, however,
this description misses the mark. See below.

> Other Places were this can be implemented:
> commit.c : line 1117
> commit.c : line 1197

Bonus points if you actually follow through with this.

> Signed-off-by: Karthik Nayak <karthik.188@xxxxxxxxx>
> ---
>  commit.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/commit.c b/commit.c
> index 6bf4fe0..1e181cf 100644
> --- a/commit.c
> +++ b/commit.c
> @@ -552,6 +552,7 @@ static void record_author_date(struct author_date_slab *author_date,
>         char *buffer = NULL;
>         struct ident_split ident;
>         char *date_end;
> +       char *flag_sp; /* stores return value of skip_prefix() */

It's not clear why this variable is needed. It's only assigned (below)
but never referenced. Also, the name conveys little or no meaning. If
you need a comment to explain the purpose of the variable, that's
probably a good indication that it's poorly named.

>         unsigned long date;
>
>         if (!commit->buffer) {
> @@ -566,7 +567,7 @@ static void record_author_date(struct author_date_slab *author_date,
>              buf;
>              buf = line_end + 1) {
>                 line_end = strchrnul(buf, '\n');
> -               if (!starts_with(buf, "author ")) {
> +               if ((flag_sp = skip_prefix(buf, "author ")) == NULL) {

Unfortunately, this change makes the code more difficult to read.
Let's review the GSoC microproject:

    Rewrite commit.c:record_author_date() to use skip_prefix().
    Are there other places in this file where skip_prefix() would
    be **more readable** than starts_with()?

Note the part I **highlighted**. This is a good clue that use of
skip_prefix() can be used to simplify the code. Examine
record_author_date() more carefully and see if you can identify how to
do so.

>                         if (!line_end[0] || line_end[1] == '\n')
>                                 return; /* end of header */
>                         continue;
> --
> 1.9.0.138.g2de3478
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]