summaryrefslogtreecommitdiff
path: root/compat/mingw.h
diff options
context:
space:
mode:
authorTheo Niessink <theo@taletn.com>2011-05-27 18:00:39 +0200
committerJunio C Hamano <gitster@pobox.com>2011-05-27 10:59:16 -0700
commitd1c69255a1014ccaeb9841f2114e20f048556391 (patch)
treecf14af796f23230e0f2cbda339e4bc7074c1c7d1 /compat/mingw.h
parent88135203af9df27c0f9c76c27bbbf48833bb31c8 (diff)
downloadgit-d1c69255a1014ccaeb9841f2114e20f048556391.tar.gz
real_path: do not assume '/' is the path seperator
real_path currently assumes it's input had '/' as path seperator. This assumption does not hold true for the code-path from prefix_path (on Windows), where real_path can be called before normalize_path_copy. Fix real_path so it doesn't make this assumption. Create a helper function to reverse-search for the last path-seperator in a string. Signed-off-by: Theo Niessink <theo@taletn.com> Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'compat/mingw.h')
-rw-r--r--compat/mingw.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/compat/mingw.h b/compat/mingw.h
index 14211c6214..bea909d76f 100644
--- a/compat/mingw.h
+++ b/compat/mingw.h
@@ -299,6 +299,15 @@ int winansi_fprintf(FILE *stream, const char *format, ...) __attribute__((format
#define has_dos_drive_prefix(path) (isalpha(*(path)) && (path)[1] == ':')
#define is_dir_sep(c) ((c) == '/' || (c) == '\\')
+static inline char *mingw_find_last_dir_sep(const char *path)
+{
+ char *ret = NULL;
+ for (; *path; ++path)
+ if (is_dir_sep(*path))
+ ret = (char *)path;
+ return ret;
+}
+#define find_last_dir_sep mingw_find_last_dir_sep
#define PATH_SEP ';'
#define PRIuMAX "I64u"