RE: [PATCH] On Cygwin support both UNIX and DOS style path-names
> Thanks for the review/feedback. Will work on that and propose another
> patch.
Perhaps something like this on top of (or before) your patch?
-- >8 --
Subject: [PATCH] git-compat-util: add generic find_last_dir_sep that respects
is_dir_sep
Move MinGW's find_last_dir_sep to git-compat-util.h, so it can also be used on other platforms that define is_dir_sep, e.g. Cygwin.
Signed-off-by: Theo Niessink <theo@taletn.com>
---
compat/mingw.h | 9 ---------
git-compat-util.h | 12 ++++++++++++
2 files changed, 12 insertions(+), 9 deletions(-)
Show changes to 2 files +12 −9
compat/mingw.h, git-compat-util.h
diff --git a/compat/mingw.h b/compat/mingw.h
index ce9dd98..547568b 100644
--- a/compat/mingw.h
+++ b/compat/mingw.h
@@ -300,15 +300,6 @@ 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"
diff --git a/git-compat-util.h b/git-compat-util.h
index ddfbf77..c2c94cd 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -211,6 +211,18 @@ extern char *gitbasename(char *);
#define has_dos_drive_prefix(path) 0
#endif
+#if !defined(find_last_dir_sep) && defined(is_dir_sep)
+static inline char *compat_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 compat_find_last_dir_sep
+#endif
+
#ifndef is_dir_sep
#define is_dir_sep(c) ((c) == '/')
#endif
--
1.7.6.msysgit.0