All of lore.kernel.org
 help / color / mirror / Atom feed
From: =?UTF-8?q?Nguy=E1=BB=85n=20Th=C3=A1i=20Ng=E1=BB=8Dc=20Duy?= <pclouds@gmail.com>
To: Johannes Sixt <j6t@kdbg.org>
Cc: git@vger.kernel.org,
	"João Carlos Mendes Luís" <jonny@jonny.eng.br>,
	"Junio C Hamano" <gitster@pobox.com>
Subject: [PATCH v3 3/5] Move offset_1st_component() to path.c
Date: Tue, 16 Feb 2010 12:22:08 +0700	[thread overview]
Message-ID: <20100216052208.GA18438@do> (raw)
In-Reply-To: <4B79A3ED.4090308@kdbg.org>

The implementation is also lightly modified to use is_dir_sep()
instead of hardcoding '/'.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
  On Mon, Feb 15, 2010 at 08:43:41PM +0100, Johannes Sixt wrote:
  > Nguyễn Thái Ngọc Duy schrieb:
  >> +int offset_1st_component(const char *path)
  >> +{
  >> +	if (has_dos_drive_prefix(path))
  >> +		return 2 + (path[2] == '/');
  >> +	return *path == '/';
  >> +}
  >
  > I'd have expected that you future-proofed this function by using 
  > is_dir_sep() or even use your previous implementation of is_root_path 
  > (because this implementation is a bit cryptic).
  >
  > But if the new callers of this function will only pass the results of 
  > normalize_path_copy() and getcwd() (both return only forward-slashes on 
  > Windows), then I'm fine with this version. Do they?

  They do. But future-proofing can never be a bad thing.

 cache.h     |    1 +
 path.c      |   10 ++++++++++
 sha1_file.c |    7 -------
 3 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/cache.h b/cache.h
index d478eff..ff23cd1 100644
--- a/cache.h
+++ b/cache.h
@@ -675,6 +675,7 @@ int normalize_path_copy(char *dst, const char *src);
 int longest_ancestor_length(const char *path, const char *prefix_list);
 char *strip_path_suffix(const char *path, const char *suffix);
 int daemon_avoid_alias(const char *path);
+int offset_1st_component(const char *path);
 
 /* Read and unpack a sha1 file into memory, write memory to a sha1 file */
 extern int sha1_object_info(const unsigned char *, unsigned long *);
diff --git a/path.c b/path.c
index 0005df3..6304805 100644
--- a/path.c
+++ b/path.c
@@ -649,3 +649,13 @@ int daemon_avoid_alias(const char *p)
 		}
 	}
 }
+
+int offset_1st_component(const char *path)
+{
+	int len = 0;
+	if (has_dos_drive_prefix(path))
+		len += 2;
+	if (is_dir_sep(path[len]))
+		return len++;
+	return len;
+}
diff --git a/sha1_file.c b/sha1_file.c
index 657825e..52052b9 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -35,13 +35,6 @@ static size_t sz_fmt(size_t s) { return s; }
 
 const unsigned char null_sha1[20];
 
-static inline int offset_1st_component(const char *path)
-{
-	if (has_dos_drive_prefix(path))
-		return 2 + (path[2] == '/');
-	return *path == '/';
-}
-
 int safe_create_leading_directories(char *path)
 {
 	char *pos = path + offset_1st_component(path);
-- 
1.7.0.195.g637a2

  reply	other threads:[~2010-02-16  5:24 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-14 15:44 [PATCH v3 1/5] make_absolute_path(): Do not append redundant slash Nguyễn Thái Ngọc Duy
2010-02-14 15:44 ` [PATCH v3 2/5] init-db, rev-parse --git-dir: do " Nguyễn Thái Ngọc Duy
2010-02-14 15:44 ` [PATCH v3 3/5] Move offset_1st_component() to path.c Nguyễn Thái Ngọc Duy
2010-02-15 19:43   ` Johannes Sixt
2010-02-16  5:22     ` =?UTF-8?q?Nguy=E1=BB=85n=20Th=C3=A1i=20Ng=E1=BB=8Dc=20Duy?= [this message]
2010-02-16 19:47       ` Johannes Sixt
2010-02-14 15:44 ` [PATCH v3 4/5] Support working directory located at root Nguyễn Thái Ngọc Duy
2010-02-14 15:44 ` [PATCH v3 5/5] Add test for using Git at root of file system Nguyễn Thái Ngọc Duy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100216052208.GA18438@do \
    --to=pclouds@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=j6t@kdbg.org \
    --cc=jonny@jonny.eng.br \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.