Re: [GSoc PATCH 1/3] diff-no-index.c: rename read_directory()
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Mar 20, 2014, 23:53 UTC
- Message-ID
- <CAPig+cS4ScFQhMEkWigay1oi6X=6H7JC7LoxW6U4g9AWyR37=g@mail.gmail.com>
- In-Reply-To
- <1395345164-5239-1-git-send-email-mandrei.dinu@gmail.com>
On Thu, Mar 20, 2014 at 3:52 PM, Andrei Dinu <mandrei.dinu@gmail.com> wrote:
> Avoid the conflict between read_directory() from diff-no-index.c and > read_directory() from "dir.h"
This message is lacking a bit of information. Since diff-no-index.c does not presently include dir.h, the reader is left to wonder why you need to resolve a non-existent conflict. You should explain that diff-no-index.c will soon be including dir.h, which is why the function must be renamed. You might say something like:
A subsequent patch will include dir.h in diff-no-index.c to
access is_dot_or_dotdot(), however, dir.h declares a
read_directory() which conflicts with a (different)
read_directory() defined in diff-no-index.c. Rename
diff-no-index.c's read_directory() to avoid the conflict.Show 9 quoted lines
> Signed-off-by: Andrei Dinu <mandrei.dinu@gmail.com> > > --- > > I plan on applying to GSOC 2014 > > Submit again on the list for an older bug that I solved, to show you that > I received your feedback and I reviewed my code, numbering and partitioning > patches style. Thank you!
Unfortunately, all three patches arrived in a single email message, which is undesirable. It's a good idea to try sending patches to yourself first (using "git send-email") to make sure that everything comes through okay; then send to the list.
Show 22 quoted lines
> diff --git a/diff-no-index.c b/diff-no-index.c
> index 8e10bff..5e4a76c 100644
> --- a/diff-no-index.c
> +++ b/diff-no-index.c
> @@ -16,7 +16,7 @@
> #include "builtin.h"
> #include "string-list.h"
>
> -static int read_directory(const char *path, struct string_list *list)
> +static int read_directory_path(const char *path, struct string_list *list)
> {
> DIR *dir;
> struct dirent *e;
> @@ -107,9 +107,9 @@ static int queue_diff(struct diff_options *o,
> int i1, i2, ret = 0;
> size_t len1 = 0, len2 = 0;
>
> - if (name1 && read_directory(name1, &p1))
> + if (name1 && read_directory_path(name1, &p1))
> return -1;
> - if (name2 && read_directory(name2, &p2)) {
> + if (name2 && read_directory_path(name2, &p2)) {The patch looks reasonable. The name is a bit odd, but not terribly important.
Show 12 quoted lines
> string_list_clear(&p1, 0); > return -1; > } > -- > 1.7.9.5 > > > From d54129eacb45b307dacf2b7afebd1da40df17047 Mon Sep 17 00:00:00 2001 > From: Andrei Dinu <mandrei.dinu@gmail.com> > Date: Wed, 19 Mar 2014 17:42:08 +0200 > Subject: [GSoc PATCH 2/3] diff-no-index.c: read_directory_path() use > is_dot_or_dotdot().
You can drop the "." from the end of this line.
> Implement code so read_directory_path() use is_dot_or_dotdot() from "dir.h" > instead of strcmp().
You're not really implementing any code, so this is a bit misleading, and you don't need to explain that it's from dir.h since that's obvious from the fact that you are including dir.h You might say instead:
Use is_dot_or_dotdot() instead of manually checking against "."
or "..".Show 26 quoted lines
> Signed-off-by: Andrei Dinu <mandrei.dinu@gmail.com>
>
> ---
>
> I plan on applying to GSOC 2014
> diff-no-index.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/diff-no-index.c b/diff-no-index.c
> index 5e4a76c..2d1165f 100644
> --- a/diff-no-index.c
> +++ b/diff-no-index.c
> @@ -15,6 +15,7 @@
> #include "log-tree.h"
> #include "builtin.h"
> #include "string-list.h"
> +#include "dir.h"
>
> static int read_directory_path(const char *path, struct string_list *list)
> {
> @@ -25,7 +26,7 @@ static int read_directory_path(const char *path, struct string_list *list)
> return error("Could not open directory %s", path);
>
> while ((e = readdir(dir)))
> - if (strcmp(".", e->d_name) && strcmp("..", e->d_name))
> + if (!is_dot_or_dotdot(e->d_name))Looks fine.
Show 11 quoted lines
> string_list_insert(list, e->d_name); > > closedir(dir); > -- > 1.7.9.5 > > > From 4843ad23675047163211c68434517c097435ebb7 Mon Sep 17 00:00:00 2001 > From: Andrei Dinu <mandrei.dinu@gmail.com> > Date: Wed, 19 Mar 2014 18:01:55 +0200 > Subject: [GSoc PATCH 3/3] fsck.c: fsck_tree() now use is_dot_or_dotdot().
Drop "now" and the ".".
> Rewrite fsck_tree() to use is_dot_or_dotdot() from "dir.h" instead > of calling twice strcmp().
No need to explain that it is from dir.h.
Show 31 quoted lines
> Signed-off-by: Andrei Dinu <mandrei.dinu@gmail.com>
>
> ---
>
> I plan on applying to GSOC 2014.
>
> fsck.c | 11 +++++++----
> 1 file changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/fsck.c b/fsck.c
> index 64bf279..82a55ab 100644
> --- a/fsck.c
> +++ b/fsck.c
> @@ -6,6 +6,7 @@
> #include "commit.h"
> #include "tag.h"
> #include "fsck.h"
> +#include "dir.h"
>
> static int fsck_walk_tree(struct tree *tree, fsck_walk_func walk, void *data)
> {
> @@ -171,10 +172,12 @@ static int fsck_tree(struct tree *item, int strict, fsck_error error_func)
> has_full_path = 1;
> if (!*name)
> has_empty_name = 1;
> - if (!strcmp(name, "."))
> - has_dot = 1;
> - if (!strcmp(name, ".."))
> - has_dotdot = 1;
> + if (is_dot_or_dotdot(name))
> + if (name[1] == '\0')On this project it probably would be more idiomatic to say !name[1].
> + has_dot = 1; > + else > + has_dotdot = 1;
Overall, however, this change does not really make the code clearer. It probably would be best to drop this patch from your submission.
Show 5 quoted lines
> if (!strcmp(name, ".git")) > has_dotgit = 1; > has_zero_pad |= *(char *)desc.buffer == '0'; > -- > 1.7.9.5