summaryrefslogtreecommitdiff
path: root/cache.h
diff options
context:
space:
mode:
authorJohannes Sixt <johannes.sixt@telecom.at>2008-03-05 20:51:27 (GMT)
committerJohannes Sixt <johannes.sixt@telecom.at>2008-06-23 11:30:22 (GMT)
commit25fe217b86ca40c53e710d776e120dfa0d81f60b (patch)
tree17d027b37da265e44e48bf01f872cf20c1e6d931 /cache.h
parent4cd148d83f852363363e921c4925e67601654ff6 (diff)
downloadgit-25fe217b86ca40c53e710d776e120dfa0d81f60b.zip
git-25fe217b86ca40c53e710d776e120dfa0d81f60b.tar.gz
git-25fe217b86ca40c53e710d776e120dfa0d81f60b.tar.bz2
Windows: Treat Windows style path names.
GIT's guts work with a forward slash as a path separators. We do not change that. Rather we make sure that only "normalized" paths enter the depths of the machinery. We have to translate backslashes to forward slashes in the prefix and in command line arguments. Fortunately, all of them are passed through functions in setup.c. A macro has_dos_drive_path() is defined that checks whether a path begins with a drive letter+colon combination. This predicate is always false on Unix. Another macro is_dir_sep() abstracts that a backslash is also a directory separator on Windows. Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Diffstat (limited to 'cache.h')
-rw-r--r--cache.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/cache.h b/cache.h
index 81b7e17..72544de 100644
--- a/cache.h
+++ b/cache.h
@@ -521,7 +521,7 @@ 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] == '/';
+ return path[0] == '/' || has_dos_drive_prefix(path);
}
const char *make_absolute_path(const char *path);
const char *make_nonrelative_path(const char *path);