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@xxxxxxxxx> --- 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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html