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

Reply via email to