# [PATCH] builtin/clean.c: Fix some sparse warnings

2 messages from 2012-12-20 to 2012-12-21. Participants: Ramsay Jones, Zoltan Klinger.
Thread: https://gitlist.dev/t/32420

## Ramsay Jones, 2012-12-20 18:33

Subject: [PATCH] builtin/clean.c: Fix some sparse warnings
Message-ID: <50D35A13.9080605@ramsay1.demon.co.uk>
URL: https://gitlist.dev/e/50D35A13.9080605%40ramsay1.demon.co.uk

```

Sparse issues two "Using plain integer as NULL pointer" warnings
(lines 41 and 47).

The first warning relates to the initializer expression in the
declaration for the 'char *dir' variable. In order to suppress
the warning, we simply replace the zero initializer with NULL.

The second warning relates to an expression, as part of an if
conditional, using the equality operator to compare the 'dir'
variable to zero. In order to suppress the warning, we replace
the 'dir == 0' expression with the more idiomatic '!dir'.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
---

Hi Zoltan,

If you have already updated your patch and made this redundant
(it's been a few days since I read the list or fetched git.git),
please ignore this. Otherwise, could you please squash this into
the new version of commit 16e4033e6 ("git-clean: Display more
accurate delete messages", 17-12-2012).

[BTW, in the same conditional expression you have an strncmp()
call which doesn't quite follow the style/conventions of the
existing code.]

Thanks!

ATB,
Ramsay Jones

 builtin/clean.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/builtin/clean.c b/builtin/clean.c
index 1c25a75..0c603c8 100644
--- a/builtin/clean.c
+++ b/builtin/clean.c
@@ -38,13 +38,13 @@ static void print_filtered(const char *msg, struct string_list *lst)
 {
 	int i;
 	char *name;
-	char *dir = 0;
+	char *dir = NULL;
 
 	sort_string_list(lst);
 
 	for (i = 0; i < lst->nr; i++) {
 		name = lst->items[i].string;
-		if (dir == 0 || strncmp(name, dir, strlen(dir)) != 0)
+		if (!dir || strncmp(name, dir, strlen(dir)) != 0)
 			printf("%s %s\n", msg, name);
 		if (name[strlen(name) - 1] == '/')
 			dir = name;
-- 
1.8.0

```

## Zoltan Klinger, 2012-12-21 12:31

Subject: Re: [PATCH] builtin/clean.c: Fix some sparse warnings
Message-ID: <CAKJhZwSLSbR2pTB67-KLtrtuFsq6HtBGdHbN8h6tLiXBKynQzg@mail.gmail.com>
URL: https://gitlist.dev/e/CAKJhZwSLSbR2pTB67-KLtrtuFsq6HtBGdHbN8h6tLiXBKynQzg%40mail.gmail.com
In-Reply-To: <50D35A13.9080605@ramsay1.demon.co.uk>

```
Thanks, Ramsay. I am rewriting the whole patch to do things a better
way (as kindly suggested by Junio). So the print_filtered() function
is going to disappear, but thanks for pointing out the problems with
the existing code.
Cheers,
Zoltan

On 21 December 2012 05:33, Ramsay Jones <ramsay@ramsay1.demon.co.uk> wrote:
>
> Sparse issues two "Using plain integer as NULL pointer" warnings
> (lines 41 and 47).
>
> The first warning relates to the initializer expression in the
> declaration for the 'char *dir' variable. In order to suppress
> the warning, we simply replace the zero initializer with NULL.
>
> The second warning relates to an expression, as part of an if
> conditional, using the equality operator to compare the 'dir'
> variable to zero. In order to suppress the warning, we replace
> the 'dir == 0' expression with the more idiomatic '!dir'.
>
> Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
> ---
>
> Hi Zoltan,
>
> If you have already updated your patch and made this redundant
> (it's been a few days since I read the list or fetched git.git),
> please ignore this. Otherwise, could you please squash this into
> the new version of commit 16e4033e6 ("git-clean: Display more
> accurate delete messages", 17-12-2012).
>
> [BTW, in the same conditional expression you have an strncmp()
> call which doesn't quite follow the style/conventions of the
> existing code.]
>
> Thanks!
>
> ATB,
> Ramsay Jones
>
>  builtin/clean.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/builtin/clean.c b/builtin/clean.c
> index 1c25a75..0c603c8 100644
> --- a/builtin/clean.c
> +++ b/builtin/clean.c
> @@ -38,13 +38,13 @@ static void print_filtered(const char *msg, struct string_list *lst)
>  {
>         int i;
>         char *name;
> -       char *dir = 0;
> +       char *dir = NULL;
>
>         sort_string_list(lst);
>
>         for (i = 0; i < lst->nr; i++) {
>                 name = lst->items[i].string;
> -               if (dir == 0 || strncmp(name, dir, strlen(dir)) != 0)
> +               if (!dir || strncmp(name, dir, strlen(dir)) != 0)
>                         printf("%s %s\n", msg, name);
>                 if (name[strlen(name) - 1] == '/')
>                         dir = name;
> --
> 1.8.0
>

```
