Re: [PATCH 08/10] Integrate wildmatch to git

2012-10-06 Thread Joachim Schmitz

Thiago Farina wrote:

On Fri, Oct 5, 2012 at 1:41 AM, Nguyễn Thái Ngọc Duy
 wrote:

This makes wildmatch.c part of libgit.a and builds test-wildmatch;
the dependency on libpopt in the original has been replaced with the
use
of our parse-options. Global variables in test-wildmatch are marked
static to avoid sparse warnings.

Signed-off-by: Nguyễn Thái Ngọc Duy 
Signed-off-by: Ramsay Jones 
Signed-off-by: Junio C Hamano 
---
 .gitignore   |  1 +
 Makefile |  3 ++
 t/t3070-wildmatch.sh | 27 
 test-wildmatch.c | 88
 ++-- wildmatch.c
 | 26 +--- 5 files changed, 75 insertions(+), 70
 deletions(-) create mode 100755 t/t3070-wildmatch.sh

diff --git a/test-wildmatch.c b/test-wildmatch.c
index 88585c2..bb726c8 100644
--- a/test-wildmatch.c
+++ b/test-wildmatch.c
@@ -19,34 +19,38 @@

 /*#define COMPARE_WITH_FNMATCH*/

-#define WILD_TEST_ITERATIONS
-#include "lib/wildmatch.c"
+#include "cache.h"
+#include "parse-options.h"
+#include "wildmatch.h"

-#include 
+#ifndef MAXPATHLEN
+#define MAXPATHLEN 1024
+#endif
+#ifdef NO_STRLCPY
+#include "compat/strlcpy.c"
+#define strlcpy gitstrlcpy
+#endif

 #ifdef COMPARE_WITH_FNMATCH
 #include 

-int fnmatch_errors = 0;
+static int fnmatch_errors = 0;
 #endif

-int wildmatch_errors = 0;
-char number_separator = ',';
+static int wildmatch_errors = 0;

 typedef char bool;

-int output_iterations = 0;
-int explode_mod = 0;
-int empties_mod = 0;
-int empty_at_start = 0;
-int empty_at_end = 0;
-
-static struct poptOption long_options[] = {
-  /* longName, shortName, argInfo, argPtr, value, descrip, argDesc
*/
-  {"iterations", 'i', POPT_ARG_NONE,   &output_iterations, 0,
0, 0},
-  {"empties",'e', POPT_ARG_STRING, 0, 'e', 0, 0},
-  {"explode",'x', POPT_ARG_INT,&explode_mod, 0, 0, 0},
-  {0,0,0,0, 0, 0, 0}
+static int explode_mod = 0;

Isn't static variables like this initialized to zero by default? There
is a high chance that I might be wrong though.


C99,
5.1.2.1: All objects with static storage duration shall be initialized (set 
to their initial values) before program startup.
6.2.4.2: An object whose identifier is declared with external or internal 
linkage, or with the storage-class specifier static has static storage 
duration. Its lifetime is the entire execution of the program and its stored 
value is initialized only once, prior to program startup.
6.7.8.10: If an object that has automatic storage duration is not 
initialized explicitly, its value is indeterminate. If an object that has 
static storage duration is not initialized explicitly, then:

— if it has pointer type, it is initialized to a null pointer;
— if it has arithmetic type, it is initialized to (positive or unsigned) 
zero;
— if it is an aggregate, every member is initialized (recursively) according 
to these rules;
— if it is a union, the first named member is initialized (recursively) 
according to these rules.


So seems you're right ;-) 



--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 08/10] Integrate wildmatch to git

2012-10-05 Thread Thiago Farina
On Fri, Oct 5, 2012 at 1:41 AM, Nguyễn Thái Ngọc Duy  wrote:
> This makes wildmatch.c part of libgit.a and builds test-wildmatch; the
> dependency on libpopt in the original has been replaced with the use
> of our parse-options. Global variables in test-wildmatch are marked
> static to avoid sparse warnings.
>
> Signed-off-by: Nguyễn Thái Ngọc Duy 
> Signed-off-by: Ramsay Jones 
> Signed-off-by: Junio C Hamano 
> ---
>  .gitignore   |  1 +
>  Makefile |  3 ++
>  t/t3070-wildmatch.sh | 27 
>  test-wildmatch.c | 88 
> ++--
>  wildmatch.c  | 26 +---
>  5 files changed, 75 insertions(+), 70 deletions(-)
>  create mode 100755 t/t3070-wildmatch.sh
>
> diff --git a/test-wildmatch.c b/test-wildmatch.c
> index 88585c2..bb726c8 100644
> --- a/test-wildmatch.c
> +++ b/test-wildmatch.c
> @@ -19,34 +19,38 @@
>
>  /*#define COMPARE_WITH_FNMATCH*/
>
> -#define WILD_TEST_ITERATIONS
> -#include "lib/wildmatch.c"
> +#include "cache.h"
> +#include "parse-options.h"
> +#include "wildmatch.h"
>
> -#include 
> +#ifndef MAXPATHLEN
> +#define MAXPATHLEN 1024
> +#endif
> +#ifdef NO_STRLCPY
> +#include "compat/strlcpy.c"
> +#define strlcpy gitstrlcpy
> +#endif
>
>  #ifdef COMPARE_WITH_FNMATCH
>  #include 
>
> -int fnmatch_errors = 0;
> +static int fnmatch_errors = 0;
>  #endif
>
> -int wildmatch_errors = 0;
> -char number_separator = ',';
> +static int wildmatch_errors = 0;
>
>  typedef char bool;
>
> -int output_iterations = 0;
> -int explode_mod = 0;
> -int empties_mod = 0;
> -int empty_at_start = 0;
> -int empty_at_end = 0;
> -
> -static struct poptOption long_options[] = {
> -  /* longName, shortName, argInfo, argPtr, value, descrip, argDesc */
> -  {"iterations", 'i', POPT_ARG_NONE,   &output_iterations, 0, 0, 0},
> -  {"empties",'e', POPT_ARG_STRING, 0, 'e', 0, 0},
> -  {"explode",'x', POPT_ARG_INT,&explode_mod, 0, 0, 0},
> -  {0,0,0,0, 0, 0, 0}
> +static int explode_mod = 0;
Isn't static variables like this initialized to zero by default? There
is a high chance that I might be wrong though.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html