git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] ctype.c only wants git-compat-util.h
@ 2012-02-10  2:13 Namhyung Kim
  2012-02-10  2:13 ` [PATCH 2/2] ctype: implement islower/isupper macro Namhyung Kim
  0 siblings, 1 reply; 6+ messages in thread
From: Namhyung Kim @ 2012-02-10  2:13 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

The implementation of sane ctype macros only depends on symbols in
git-compat-util.h not cache.h

Signed-off-by: Namhyung Kim <namhyung.kim@lge.com>
---
 ctype.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/ctype.c b/ctype.c
index b5d856f..af722f9 100644
--- a/ctype.c
+++ b/ctype.c
@@ -3,7 +3,7 @@
  *
  * No surprises, and works with signed and unsigned chars.
  */
-#include "cache.h"
+#include "git-compat-util.h"
 
 enum {
 	S = GIT_SPACE,
-- 
1.7.9

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] ctype: implement islower/isupper macro
  2012-02-10  2:13 [PATCH 1/2] ctype.c only wants git-compat-util.h Namhyung Kim
@ 2012-02-10  2:13 ` Namhyung Kim
  2012-02-10  2:17   ` Junio C Hamano
  0 siblings, 1 reply; 6+ messages in thread
From: Namhyung Kim @ 2012-02-10  2:13 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

The git-compat-util.h provides various ctype macros but lacks those two
(along with others). Add them.

Signed-off-by: Namhyung Kim <namhyung.kim@lge.com>
---
 git-compat-util.h |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/git-compat-util.h b/git-compat-util.h
index 8f3972c..d3f8f17 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -463,6 +463,8 @@ static inline int has_extension(const char *filename, const char *ext)
 #undef isdigit
 #undef isalpha
 #undef isalnum
+#undef islower
+#undef isupper
 #undef tolower
 #undef toupper
 extern unsigned char sane_ctype[256];
@@ -478,6 +480,8 @@ extern unsigned char sane_ctype[256];
 #define isdigit(x) sane_istest(x,GIT_DIGIT)
 #define isalpha(x) sane_istest(x,GIT_ALPHA)
 #define isalnum(x) sane_istest(x,GIT_ALPHA | GIT_DIGIT)
+#define islower(x) sane_iscase(x, 1)
+#define isupper(x) sane_iscase(x, 0)
 #define is_glob_special(x) sane_istest(x,GIT_GLOB_SPECIAL)
 #define is_regex_special(x) sane_istest(x,GIT_GLOB_SPECIAL | GIT_REGEX_SPECIAL)
 #define tolower(x) sane_case((unsigned char)(x), 0x20)
@@ -491,6 +495,17 @@ static inline int sane_case(int x, int high)
 	return x;
 }
 
+static inline int sane_iscase(int x, int lower)
+{
+	if (!sane_istest(x, GIT_ALPHA))
+		return 0;
+
+	if (lower)
+		return (x & 0x20) != 0;
+	else
+		return (x & 0x20) == 0;
+}
+
 static inline int strtoul_ui(char const *s, int base, unsigned int *result)
 {
 	unsigned long ul;
-- 
1.7.9

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] ctype: implement islower/isupper macro
  2012-02-10  2:13 ` [PATCH 2/2] ctype: implement islower/isupper macro Namhyung Kim
@ 2012-02-10  2:17   ` Junio C Hamano
  2012-02-10  2:32     ` 김남형
  0 siblings, 1 reply; 6+ messages in thread
From: Junio C Hamano @ 2012-02-10  2:17 UTC (permalink / raw)
  To: Namhyung Kim; +Cc: git

Namhyung Kim <namhyung.kim@lge.com> writes:

> The git-compat-util.h provides various ctype macros but lacks those two
> (along with others). Add them.

Isn't that because we do not use them ourselves? Uses in compat/ do not
count, and judging from the way it is used in compat/fnmatch/fnmatch.c,
the implementation of sane_iscase() might be overly protective.

What problem are you trying to solve?

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] ctype: implement islower/isupper macro
  2012-02-10  2:17   ` Junio C Hamano
@ 2012-02-10  2:32     ` 김남형
  2012-02-10  4:03       ` Junio C Hamano
  0 siblings, 1 reply; 6+ messages in thread
From: 김남형 @ 2012-02-10  2:32 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Hello,

2012-02-10 11:17 AM, Junio C Hamano wrote:
> Namhyung Kim <namhyung.kim@lge.com> writes:
>
>> The git-compat-util.h provides various ctype macros but lacks those two
>> (along with others). Add them.
>
> Isn't that because we do not use them ourselves? Uses in compat/ do not
> count, and judging from the way it is used in compat/fnmatch/fnmatch.c,
> the implementation of sane_iscase() might be overly protective.
>
> What problem are you trying to solve?
>

There's no problem. In fact, these patches come from perf as it uses a copy of 
git code in this part. So I didn't check it's really needed for git too, but 
just hoped it'd be helpful someday. If you don't think it's worth applying I'm 
fine with dropping it.

Thanks,
Namhyung

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] ctype: implement islower/isupper macro
  2012-02-10  2:32     ` 김남형
@ 2012-02-10  4:03       ` Junio C Hamano
  2012-02-10  5:04         ` Namhyung Kim
  0 siblings, 1 reply; 6+ messages in thread
From: Junio C Hamano @ 2012-02-10  4:03 UTC (permalink / raw)
  To: 김남형; +Cc: git

김남형 <namhyung.kim@lge.com> writes:

> 2012-02-10 11:17 AM, Junio C Hamano wrote:
>> Namhyung Kim <namhyung.kim@lge.com> writes:
>>
>>> The git-compat-util.h provides various ctype macros but lacks those two
>>> (along with others). Add them.
>>
>> Isn't that because we do not use them ourselves? Uses in compat/ do not
>> count, and judging from the way it is used in compat/fnmatch/fnmatch.c,
>> the implementation of sane_iscase() might be overly protective.
>>
>> What problem are you trying to solve?
>
> There's no problem. In fact, these patches come from perf as it uses a
> copy of git code in this part.

Kim-ssi, the above is something I would have like to see in your first
message.

> If you don't
> think it's worth applying I'm fine with dropping it.

I never said these patches are worthless.

I just was wondering what the motivation behind them were.  If you are
involved in maintaining Perf, and if it wants to keep its own forked copy
as close as ours, that is a good enough justification, as long as the
additions we do not use ourselves is still reasonably done.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] ctype: implement islower/isupper macro
  2012-02-10  4:03       ` Junio C Hamano
@ 2012-02-10  5:04         ` Namhyung Kim
  0 siblings, 0 replies; 6+ messages in thread
From: Namhyung Kim @ 2012-02-10  5:04 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

2012-02-10 1:03 PM, Junio C Hamano wrote:
> 김남형<namhyung.kim@lge.com>  writes:
>
>> 2012-02-10 11:17 AM, Junio C Hamano wrote:
>>> Namhyung Kim<namhyung.kim@lge.com>  writes:
>>>
>>>> The git-compat-util.h provides various ctype macros but lacks those two
>>>> (along with others). Add them.
>>>
>>> Isn't that because we do not use them ourselves? Uses in compat/ do not
>>> count, and judging from the way it is used in compat/fnmatch/fnmatch.c,
>>> the implementation of sane_iscase() might be overly protective.
>>>
>>> What problem are you trying to solve?
>>
>> There's no problem. In fact, these patches come from perf as it uses a
>> copy of git code in this part.
>
> Kim-ssi, the above is something I would have like to see in your first
> message.
>
>> If you don't
>> think it's worth applying I'm fine with dropping it.
>
> I never said these patches are worthless.
>
> I just was wondering what the motivation behind them were.  If you are
> involved in maintaining Perf, and if it wants to keep its own forked copy
> as close as ours, that is a good enough justification, as long as the
> additions we do not use ourselves is still reasonably done.
>

Hamano-san, Thanks for your explanation. I'll try to write a better 
description for the future.

Thanks,
Namhyung

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2012-02-10  5:05 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-02-10  2:13 [PATCH 1/2] ctype.c only wants git-compat-util.h Namhyung Kim
2012-02-10  2:13 ` [PATCH 2/2] ctype: implement islower/isupper macro Namhyung Kim
2012-02-10  2:17   ` Junio C Hamano
2012-02-10  2:32     ` 김남형
2012-02-10  4:03       ` Junio C Hamano
2012-02-10  5:04         ` Namhyung Kim

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).