On Wed, Mar 19, 2014 at 9:44 AM, Othman Darraz <darrazo16@xxxxxxxxx> wrote: > Subject: fsck.c:fsck_commit() use skip_prefix() and starts_with() Add a space after the colon. Add a colon after fsck_commit(). > make buffer const char* because the content of the memory referenced by this variable doesn't change in this function. Wrap lines to 65-70 characters. Capitalize start of sentence. You don't need to spell out 'const char*'. It's okay to say that you're just making it 'const'. Conceptually, this is a distinct change, so it deserves its own patch. Thus, your submission should become a two-patch series. See documentation for "git format-patch" and "git send-email" to learn how to create a multi-part patch series. > Add cast to buffer to match fsck_ident signature which is (char**,...) But, is _this_ cast really needed? In my earlier review, I asked if you could drop the cast you had in that attempt by making 'buffer' const. I also mentioned that you might have to fix some small fallout from making it const. That was a hint that you should dig a bit deeper. It is possible to eliminate the casts. See if you can figure out how. > use skip_prefix() instead of memcmp() to avoid using magic number. Capitalize start of sentence. You might want to explain a bit that skip_prefix() conveys more clearly than memcmp() that the code is checking the string for a prefix. An added benefit is that it allows you to eliminate some magic numbers. > Signed-off-by: Othman Darraz <darrazo16@xxxxxxxxx> > --- > I am planning to apply for GSOC2014 > fsck.c | 27 ++++++++++++++------------- > 1 file changed, 14 insertions(+), 13 deletions(-) > > diff --git a/fsck.c b/fsck.c > index 5eae856..128d426 100644 > --- a/fsck.c > +++ b/fsck.c > @@ -284,21 +284,22 @@ static int fsck_ident(char **ident, struct object *obj, fsck_error error_func) > > static int fsck_commit(struct commit *commit, fsck_error error_func) > { > - char *buffer = commit->buffer; > + const char *buffer = commit->buffer; > unsigned char tree_sha1[20], sha1[20]; > struct commit_graft *graft; > int parents = 0; > int err; > - > - if (starts_with(buffer, "tree ")) > + buffer = skip_prefix(buffer, "tree "); Unfortunately, this patch is quite broken since it is based upon your previous patch rather than upon a clean copy of fsck.c. I'll abort the review at this point since this and your previous attempt are intermingled, and the patch does not provide a clear picture of how the original fsck.c gets changed. > + if (!buffer) > return error_func(&commit->object, FSCK_ERROR, "invalid format - expected 'tree' line"); > - if (get_sha1_hex(buffer+5, tree_sha1) || buffer[45] != '\n')() > + if (get_sha1_hex(buffer, tree_sha1) || buffer[40] != '\n') > return error_func(&commit->object, FSCK_ERROR, "invalid 'tree' line format - bad sha1"); > - buffer += 46; > - while (!memcmp(buffer, "parent ", 7)) { > - if (get_sha1_hex(buffer+7, sha1) || buffer[47] != '\n') > + buffer += 41; > + while (starts_with(buffer, "parent ")) { > + buffer = skip_prefix(buffer, "parent "); > + if (get_sha1_hex(buffer, sha1) || buffer[40] != '\n') > return error_func(&commit->object, FSCK_ERROR, "invalid 'parent' line format - bad sha1"); > - buffer += 48; > + buffer += 41; > parents++; > } > graft = lookup_commit_graft(commit->object.sha1); > @@ -322,16 +323,16 @@ static int fsck_commit(struct commit *commit, fsck_error error_func) > if (p || parents) > return error_func(&commit->object, FSCK_ERROR, "parent objects missing"); > } > - if (starts_with(buffer, "author ")) > + buffer = skip_prefix(buffer, "author "); > + if (!buffer) > return error_func(&commit->object, FSCK_ERROR, "invalid format - expected 'author' line"); > - buffer += 7; > - err = fsck_ident(&buffer, &commit->object, error_func); > + err = fsck_ident((char **)&buffer, &commit->object, error_func); > if (err) > return err; > - buffer = (char* )skip_prefix(buffer,"committer "); > + buffer = skip_prefix(buffer,"committer "); > if (!buffer) > return error_func(&commit->object, FSCK_ERROR, "invalid format - expected 'committer' line"); > - err = fsck_ident(&buffer, &commit->object, error_func); > + err = fsck_ident((char **)&buffer, &commit->object, error_func); > if (err) > return err; > if (!commit->tree) > -- > 1.9.0.258.g00eda23.dirty -- 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