# [PATCH v2] diff-no-index.c : rewrite read_directory() to use is_dot_or_dotdot().

2 messages from 2014-03-19 to 2014-03-19. Participants: Andrei Dinu, Matthieu Moy.
Thread: https://gitlist.dev/t/36225

## Andrei Dinu, 2014-03-19 13:29

Subject: [PATCH v2] diff-no-index.c : rewrite read_directory() to use is_dot_or_dotdot().
Message-ID: <1395235753-3285-1-git-send-email-mandrei.dinu@gmail.com>
URL: https://gitlist.dev/e/1395235753-3285-1-git-send-email-mandrei.dinu%40gmail.com

```
replace manual "."/".." check with is_dot_or_dotdot().

choose to implement my own function because did't find the defined one.

[1]: http://article.gmane.org/gmane.comp.version-control.git/244420

Signed-off-by: Andrei Dinu <mandrei.dinu@gmail.com>


---
 I plan on applying to GSoc 2014

 diff-no-index.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/diff-no-index.c b/diff-no-index.c
index 83cdbf7..d91ea3b 100644
--- a/diff-no-index.c
+++ b/diff-no-index.c
@@ -19,10 +19,10 @@
 static int is_dot_or_dotdot(const char *path)
 {
     if (path[0] == '.' && path[1] == '\0')
-        return 0;
+        return 1;
     else if (path[0] == '.' && path[1] == '.' && path[2] == '\0')
-        return 0;
-    return 1;
+        return 1;
+    return 0;
 }
 
 static int read_directory(const char *path, struct string_list *list)
@@ -34,7 +34,7 @@ static int read_directory(const char *path, struct string_list *list)
 		return error("Could not open directory %s", path);
 
 	while ((e = readdir(dir)))
-		if (is_dot_or_dotdot(e->d_name))
+		if (!is_dot_or_dotdot(e->d_name))
 			string_list_insert(list, e->d_name);
 
 	closedir(dir);
-- 
1.7.9.5

```

## Matthieu Moy, 2014-03-19 13:44

Subject: Re: [PATCH v2] diff-no-index.c : rewrite read_directory() to use is_dot_or_dotdot().
Message-ID: <vpqpplii9pl.fsf@anie.imag.fr>
URL: https://gitlist.dev/e/vpqpplii9pl.fsf%40anie.imag.fr
In-Reply-To: <1395235753-3285-1-git-send-email-mandrei.dinu@gmail.com>

```
Andrei Dinu <mandrei.dinu@gmail.com> writes:

> replace manual "."/".." check with is_dot_or_dotdot().

This is not what the patch below does.

> choose to implement my own function because did't find the defined one.

That does not seem to be a good reason to me. Run

  git grep is_dot_or_dotdot

in Git's source code to find it (or use your favorite code navigation
tool like ctags/etags/...).

> [1]: http://article.gmane.org/gmane.comp.version-control.git/244420

>  diff-no-index.c |    8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/diff-no-index.c b/diff-no-index.c
> index 83cdbf7..d91ea3b 100644
> --- a/diff-no-index.c
> +++ b/diff-no-index.c
> @@ -19,10 +19,10 @@
>  static int is_dot_or_dotdot(const char *path)
>  {
>      if (path[0] == '.' && path[1] == '\0')
> -        return 0;
> +        return 1;
>      else if (path[0] == '.' && path[1] == '.' && path[2] == '\0')
> -        return 0;
> -    return 1;
> +        return 1;
> +    return 0;
>  }
>  
>  static int read_directory(const char *path, struct string_list *list)
> @@ -34,7 +34,7 @@ static int read_directory(const char *path, struct string_list *list)
>  		return error("Could not open directory %s", path);
>  
>  	while ((e = readdir(dir)))
> -		if (is_dot_or_dotdot(e->d_name))
> +		if (!is_dot_or_dotdot(e->d_name))
>  			string_list_insert(list, e->d_name);

This could come on top of your previous patch, but when you resend,
please sent a new patch, not a "fixup patch" like this. Git's history
should be clean, and the patch that will eventually be applied should
not reflect the trial and error iterations that led to the result.

Read about "git rebase -i" and "git commit --amend" for more information
about this.

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

```
