compat/fnmatch/fnmatch.c: Fix a sparse error
authorRamsay Jones <ramsay@ramsay1.demon.co.uk>
Sat, 27 Apr 2013 18:44:08 +0000 (19:44 +0100)
committerJunio C Hamano <gitster@pobox.com>
Sun, 28 Apr 2013 19:24:40 +0000 (12:24 -0700)
Sparse issues the following error and warnings:

SP compat/fnmatch/fnmatch.c
.../fnmatch.c:144:17: warning: Using plain integer as NULL pointer
.../fnmatch.c:238:67: warning: Using plain integer as NULL pointer
.../fnmatch.c:303:40: error: too many arguments for function getenv

The error is caused by the extern declaration for the getenv function
not including the function prototype. Without the prototype, sparse
effectively sees the declaration as 'char *getenv(void)'. In order to
suppress the error, we simply include the function prototype.

In order to suppress the warnings, we include the <stddef.h> header
which provides an appropriate definition of the NULL macro, rather
than using the (inappropriate) default definition at fnmatch.c:132.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
compat/fnmatch/fnmatch.c
index 5ef0685135662e3cefc80eed5c5ae030fe1a5d49..378c467401ea156cb189313bd75f3c28406277c0 100644 (file)
@@ -25,6 +25,7 @@
 # define _GNU_SOURCE   1
 #endif
 
+#include <stddef.h>
 #include <errno.h>
 #include <fnmatch.h>
 #include <ctype.h>
    whose names are inconsistent.  */
 
 # if !defined _LIBC && !defined getenv
-extern char *getenv ();
+extern char *getenv (const char *name);
 # endif
 
 # ifndef errno