All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.