Re: [PATCH 4/8] wildmatch: remove static variable force_lower_case

2012-10-09 Thread Junio C Hamano
Nguyễn Thái Ngọc Duy  pclo...@gmail.com writes:

 diff --git a/wildmatch.c b/wildmatch.c
 index 7b64a6b..2382873 100644
 --- a/wildmatch.c
 +++ b/wildmatch.c
 @@ -11,8 +11,8 @@
  
  #include stddef.h
  #include ctype.h
 -#include string.h
  
 +#include cache.h
  #include wildmatch.h

This is wrong; the includes from the system headers should have
been removed in the previous step where the series integrated
wildmatch to git, after which point the first include any C source
that is not at the platform-compatibility layer should be cache.h
or git-compat-util.h.
--
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 4/8] wildmatch: remove static variable force_lower_case

2012-10-09 Thread Nguyen Thai Ngoc Duy
On Wed, Oct 10, 2012 at 3:47 AM, Junio C Hamano gits...@pobox.com wrote:
 Nguyễn Thái Ngọc Duy  pclo...@gmail.com writes:

 diff --git a/wildmatch.c b/wildmatch.c
 index 7b64a6b..2382873 100644
 --- a/wildmatch.c
 +++ b/wildmatch.c
 @@ -11,8 +11,8 @@

  #include stddef.h
  #include ctype.h
 -#include string.h

 +#include cache.h
  #include wildmatch.h

 This is wrong; the includes from the system headers should have
 been removed in the previous step where the series integrated
 wildmatch to git, after which point the first include any C source
 that is not at the platform-compatibility layer should be cache.h
 or git-compat-util.h.

Git's ctype does not seem to be complete for wildmatch's use so
ctype.h is required. But that can be easily fixed later on.
-- 
Duy
--
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 4/8] wildmatch: remove static variable force_lower_case

2012-10-09 Thread Junio C Hamano
Nguyen Thai Ngoc Duy pclo...@gmail.com writes:

 Git's ctype does not seem to be complete for wildmatch's use so
 ctype.h is required. But that can be easily fixed later on.

Until later on, I cannot even compile the series.
--
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 4/8] wildmatch: remove static variable force_lower_case

2012-10-09 Thread Nguyen Thai Ngoc Duy
On Wed, Oct 10, 2012 at 12:31 PM, Junio C Hamano gits...@pobox.com wrote:
 Nguyen Thai Ngoc Duy pclo...@gmail.com writes:

 Git's ctype does not seem to be complete for wildmatch's use so
 ctype.h is required. But that can be easily fixed later on.

 Until later on, I cannot even compile the series.

So that's why you noticed this patch :) It builds fine here. I'll fix
up and send an update later.
-- 
Duy
--
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


[PATCH 4/8] wildmatch: remove static variable force_lower_case

2012-10-08 Thread Nguyễn Thái Ngọc Duy
One place less to worry about thread safety. Also combine wildmatch
and iwildmatch into one.

Signed-off-by: Nguyễn Thái Ngọc Duy pclo...@gmail.com
---
 test-wildmatch.c |  4 ++--
 wildmatch.c  | 23 ++-
 wildmatch.h  |  3 +--
 3 files changed, 9 insertions(+), 21 deletions(-)

diff --git a/test-wildmatch.c b/test-wildmatch.c
index 08962d5..5c18cf8 100644
--- a/test-wildmatch.c
+++ b/test-wildmatch.c
@@ -4,9 +4,9 @@
 int main(int argc, char **argv)
 {
if (!strcmp(argv[1], wildmatch))
-   return wildmatch(argv[3], argv[2]) ? 0 : 1;
+   return wildmatch(argv[3], argv[2], 0) ? 0 : 1;
else if (!strcmp(argv[1], iwildmatch))
-   return iwildmatch(argv[3], argv[2]) ? 0 : 1;
+   return wildmatch(argv[3], argv[2], FNM_CASEFOLD) ? 0 : 1;
else if (!strcmp(argv[1], fnmatch))
return fnmatch(argv[3], argv[2], FNM_PATHNAME);
else
diff --git a/wildmatch.c b/wildmatch.c
index 7b64a6b..2382873 100644
--- a/wildmatch.c
+++ b/wildmatch.c
@@ -11,8 +11,8 @@
 
 #include stddef.h
 #include ctype.h
-#include string.h
 
+#include cache.h
 #include wildmatch.h
 
 typedef unsigned char uchar;
@@ -59,11 +59,9 @@ typedef unsigned char uchar;
 #define ISUPPER(c) (ISASCII(c)  isupper(c))
 #define ISXDIGIT(c) (ISASCII(c)  isxdigit(c))
 
-static int force_lower_case = 0;
-
 /* Match pattern p against the a virtually-joined string consisting
  * of text and any strings in array a. */
-static int dowild(const uchar *p, const uchar *text)
+static int dowild(const uchar *p, const uchar *text, int force_lower_case)
 {
 uchar p_ch;
 
@@ -107,7 +105,7 @@ static int dowild(const uchar *p, const uchar *text)
while (1) {
if (t_ch == '\0')
break;
-   if ((matched = dowild(p, text)) != FALSE) {
+   if ((matched = dowild(p, text, force_lower_case)) != FALSE) {
if (!special || matched != ABORT_TO_STARSTAR)
return matched;
} else if (!special  t_ch == '/')
@@ -215,17 +213,8 @@ static int dowild(const uchar *p, const uchar *text)
 }
 
 /* Match the pattern against the text string. */
-int wildmatch(const char *pattern, const char *text)
-{
-return dowild((const uchar*)pattern, (const uchar*)text) == TRUE;
-}
-
-/* Match the pattern against the forced-to-lower-case text string. */
-int iwildmatch(const char *pattern, const char *text)
+int wildmatch(const char *pattern, const char *text, int flags)
 {
-int ret;
-force_lower_case = 1;
-ret = dowild((const uchar*)pattern, (const uchar*)text) == TRUE;
-force_lower_case = 0;
-return ret;
+return dowild((const uchar*)pattern, (const uchar*)text,
+ flags  FNM_CASEFOLD ? 1 : 0) == TRUE;
 }
diff --git a/wildmatch.h b/wildmatch.h
index 562faa3..e974f9a 100644
--- a/wildmatch.h
+++ b/wildmatch.h
@@ -1,4 +1,3 @@
 /* wildmatch.h */
 
-int wildmatch(const char *pattern, const char *text);
-int iwildmatch(const char *pattern, const char *text);
+int wildmatch(const char *pattern, const char *text, int flags);
-- 
1.8.0.rc0.29.g1fdd78f

--
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