This patch adds convenience functions to work with absolute paths. The function is_absolute_path() should help the efforts to integrate the MinGW fork. Note that make_absolute_path() returns a pointer to a static buffer. Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx> --- I am in the middle of so many things, otherwise I would have tried to find all places that can use these functions. But maybe a helpful soul out there wants to do that? cache.h | 5 +++++ path.c | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+), 0 deletions(-) diff --git a/cache.h b/cache.h index 53801b8..98af530 100644 --- a/cache.h +++ b/cache.h @@ -358,6 +358,11 @@ int git_config_perm(const char *var, const char *value); int adjust_shared_perm(const char *path); int safe_create_leading_directories(char *path); char *enter_repo(char *path, int strict); +static inline int is_absolute_path(const char *path) +{ + return path[0] == '/'; +} +const char *make_absolute_path(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 c4ce962..b5b1959 100644 --- a/path.c +++ b/path.c @@ -292,3 +292,21 @@ int adjust_shared_perm(const char *path) return -2; return 0; } + +const char *make_absolute_path(const char *path) +{ + static char buf[PATH_MAX]; + const int size = sizeof(buf); + int len; + + if (is_absolute_path(path)) + return path; + + if (!getcwd(buf, size)) + die ("Could not get current working directory"); + len = strlen(buf); + if (snprintf(buf + len, size - len, "/%s", path) > size - 1) + die ("Could not make absolute path from '%s'", path); + return buf; +} + -- 1.5.3.rc2.29.gc4640f - 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