Re: [PATCH] Rewrite git-compat-util.h:skip_prefix() as a loop

2014-02-27 Thread Junio C Hamano
Sun He sunheeh...@gmail.com writes:

 Signed-off-by: Sun He sunheeh...@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)
--
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] Rewrite git-compat-util.h:skip_prefix() as a loop

2014-02-27 Thread David Kastrup
Junio C Hamano gits...@pobox.com writes:

 Sun He sunheeh...@gmail.com writes:

 Signed-off-by: Sun He sunheeh...@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
--
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] Rewrite git-compat-util.h:skip_prefix() as a loop

2014-02-27 Thread Junio C Hamano
David Kastrup d...@gnu.org writes:

 Junio C Hamano gits...@pobox.com writes:

 Sun He sunheeh...@gmail.com writes:

 Signed-off-by: Sun He sunheeh...@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.


 
--
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] Rewrite git-compat-util.h:skip_prefix() as a loop

2014-02-27 Thread Jeff King
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 p...@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

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