* [PATCH] Rewrite git-compat-util.h:skip_prefix() as a loop
@ 2014-02-27 12:13 Sun He
2014-02-27 19:35 ` Junio C Hamano
0 siblings, 1 reply; 5+ messages in thread
From: Sun He @ 2014-02-27 12:13 UTC (permalink / raw)
To: git; +Cc: Sun He
Signed-off-by: Sun He <sunheehnus@gmail.com>
---
git-compat-util.h | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/git-compat-util.h b/git-compat-util.h
index cbd86c3..4daa6cf 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -357,8 +357,8 @@ extern int suffixcmp(const char *str, const char *suffix);
static inline const char *skip_prefix(const char *str, const char *prefix)
{
- size_t len = strlen(prefix);
- return strncmp(str, prefix, len) ? NULL : str + len;
+ while( *prefix != '\0' && *str++ == *prefix++ );
+ return *prefix == '\0' ? str : NULL;
}
#if defined(NO_MMAP) || defined(USE_WIN32_MMAP)
--
1.7.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] Rewrite git-compat-util.h:skip_prefix() as a loop
2014-02-27 12:13 [PATCH] Rewrite git-compat-util.h:skip_prefix() as a loop Sun He
@ 2014-02-27 19:35 ` Junio C Hamano
2014-02-27 20:33 ` David Kastrup
0 siblings, 1 reply; 5+ messages in thread
From: Junio C Hamano @ 2014-02-27 19:35 UTC (permalink / raw)
To: Sun He; +Cc: git
Sun He <sunheehnus@gmail.com> writes:
> Signed-off-by: Sun He <sunheehnus@gmail.com>
> ---
> git-compat-util.h | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/git-compat-util.h b/git-compat-util.h
> index cbd86c3..4daa6cf 100644
> --- a/git-compat-util.h
> +++ b/git-compat-util.h
> @@ -357,8 +357,8 @@ extern int suffixcmp(const char *str, const char *suffix);
>
> static inline const char *skip_prefix(const char *str, const char *prefix)
> {
> - size_t len = strlen(prefix);
> - return strncmp(str, prefix, len) ? NULL : str + len;
> + while( *prefix != '\0' && *str++ == *prefix++ );
> + return *prefix == '\0' ? str : NULL;
Documentation/CodingGuidelines?
> }
>
> #if defined(NO_MMAP) || defined(USE_WIN32_MMAP)
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Rewrite git-compat-util.h:skip_prefix() as a loop
2014-02-27 19:35 ` Junio C Hamano
@ 2014-02-27 20:33 ` David Kastrup
2014-02-27 22:16 ` Junio C Hamano
2014-02-28 6:17 ` Jeff King
0 siblings, 2 replies; 5+ messages in thread
From: David Kastrup @ 2014-02-27 20:33 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Sun He, git
Junio C Hamano <gitster@pobox.com> writes:
> Sun He <sunheehnus@gmail.com> writes:
>
>> Signed-off-by: Sun He <sunheehnus@gmail.com>
>> ---
>> git-compat-util.h | 4 ++--
>> 1 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/git-compat-util.h b/git-compat-util.h
>> index cbd86c3..4daa6cf 100644
>> --- a/git-compat-util.h
>> +++ b/git-compat-util.h
>> @@ -357,8 +357,8 @@ extern int suffixcmp(const char *str, const char *suffix);
>>
>> static inline const char *skip_prefix(const char *str, const char *prefix)
>> {
>> - size_t len = strlen(prefix);
>> - return strncmp(str, prefix, len) ? NULL : str + len;
>> + while( *prefix != '\0' && *str++ == *prefix++ );
>> + return *prefix == '\0' ? str : NULL;
>
> Documentation/CodingGuidelines?
Mostly relevant for tabification here, not helping much otherwise. In
particular, does not contain the advice "empty statements should appear
on a line of their own" which would help with readability here.
--
David Kastrup
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Rewrite git-compat-util.h:skip_prefix() as a loop
2014-02-27 20:33 ` David Kastrup
@ 2014-02-27 22:16 ` Junio C Hamano
2014-02-28 6:17 ` Jeff King
1 sibling, 0 replies; 5+ messages in thread
From: Junio C Hamano @ 2014-02-27 22:16 UTC (permalink / raw)
To: David Kastrup; +Cc: Sun He, git
David Kastrup <dak@gnu.org> writes:
> Junio C Hamano <gitster@pobox.com> writes:
>
>> Sun He <sunheehnus@gmail.com> writes:
>>
>>> Signed-off-by: Sun He <sunheehnus@gmail.com>
>>> ---
>>> git-compat-util.h | 4 ++--
>>> 1 files changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/git-compat-util.h b/git-compat-util.h
>>> index cbd86c3..4daa6cf 100644
>>> --- a/git-compat-util.h
>>> +++ b/git-compat-util.h
>>> @@ -357,8 +357,8 @@ extern int suffixcmp(const char *str, const char *suffix);
>>>
>>> static inline const char *skip_prefix(const char *str, const char *prefix)
>>> {
>>> - size_t len = strlen(prefix);
>>> - return strncmp(str, prefix, len) ? NULL : str + len;
>>> + while( *prefix != '\0' && *str++ == *prefix++ );
>>> + return *prefix == '\0' ? str : NULL;
>>
>> Documentation/CodingGuidelines?
>
> Mostly relevant for tabification here, not helping much otherwise.
"Imitate existing code" would let you spot that we have SP outside
the () pair, not inside, for controls like while/for/if, and we
usually do not explicitly compare things with 0, NULL or '\0'.
Together with the "empty statement should occupy its own line" you
mentioned, I tend to agree with you that some people may benefit
from them explicitly spelled out.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Rewrite git-compat-util.h:skip_prefix() as a loop
2014-02-27 20:33 ` David Kastrup
2014-02-27 22:16 ` Junio C Hamano
@ 2014-02-28 6:17 ` Jeff King
1 sibling, 0 replies; 5+ messages in thread
From: Jeff King @ 2014-02-28 6:17 UTC (permalink / raw)
To: David Kastrup; +Cc: Junio C Hamano, Sun He, git
On Thu, Feb 27, 2014 at 09:33:45PM +0100, David Kastrup wrote:
> >> diff --git a/git-compat-util.h b/git-compat-util.h
> >> index cbd86c3..4daa6cf 100644
> >> --- a/git-compat-util.h
> >> +++ b/git-compat-util.h
> >> @@ -357,8 +357,8 @@ extern int suffixcmp(const char *str, const char *suffix);
> >>
> >> static inline const char *skip_prefix(const char *str, const char *prefix)
> >> {
> >> - size_t len = strlen(prefix);
> >> - return strncmp(str, prefix, len) ? NULL : str + len;
> >> + while( *prefix != '\0' && *str++ == *prefix++ );
> >> + return *prefix == '\0' ? str : NULL;
> >
> > Documentation/CodingGuidelines?
>
> Mostly relevant for tabification here, not helping much otherwise. In
> particular, does not contain the advice "empty statements should appear
> on a line of their own" which would help with readability here.
Also whitespace in the "while", which I could not find mentioned in
CodingGuidelines either. Maybe:
-- >8 --
Subject: [PATCH] CodingGuidelines: mention C whitespace rules
We are fairly consistent about these, so most are covered by
"follow existing style", but it doesn't hurt to be explicit.
Signed-off-by: Jeff King <peff@peff.net>
---
Documentation/CodingGuidelines | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines
index ef67b53..ed432a8 100644
--- a/Documentation/CodingGuidelines
+++ b/Documentation/CodingGuidelines
@@ -126,6 +126,17 @@ For C programs:
"char * string". This makes it easier to understand code
like "char *string, c;".
+ - Use whitespace around operators and keywords, but not inside
+ parentheses and not around functions. So:
+
+ while (condition)
+ func(bar + 1);
+
+ and not:
+
+ while( condition )
+ func (bar+1);
+
- We avoid using braces unnecessarily. I.e.
if (bla) {
--
1.8.5.2.500.g8060133
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-02-28 6:17 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-27 12:13 [PATCH] Rewrite git-compat-util.h:skip_prefix() as a loop Sun He
2014-02-27 19:35 ` Junio C Hamano
2014-02-27 20:33 ` David Kastrup
2014-02-27 22:16 ` Junio C Hamano
2014-02-28 6:17 ` Jeff King
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.