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
pclo...@gmail.com 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 pclo...@gmail.com
Signed-off-by: Ramsay Jones ram...@ramsay1.demon.co.uk
Signed-off-by: Junio C Hamano gits...@pobox.com
---
 .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 popt.h
+#ifndef MAXPATHLEN
+#define MAXPATHLEN 1024
+#endif
+#ifdef NO_STRLCPY
+#include compat/strlcpy.c
+#define strlcpy gitstrlcpy
+#endif

 #ifdef COMPARE_WITH_FNMATCH
 #include fnmatch.h

-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 pclo...@gmail.com 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 pclo...@gmail.com
 Signed-off-by: Ramsay Jones ram...@ramsay1.demon.co.uk
 Signed-off-by: Junio C Hamano gits...@pobox.com
 ---
  .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 popt.h
 +#ifndef MAXPATHLEN
 +#define MAXPATHLEN 1024
 +#endif
 +#ifdef NO_STRLCPY
 +#include compat/strlcpy.c
 +#define strlcpy gitstrlcpy
 +#endif

  #ifdef COMPARE_WITH_FNMATCH
  #include fnmatch.h

 -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