config --show-origin: report paths with forward slashes
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Wed, 23 Mar 2016 10:55:00 +0000 (11:55 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 23 Mar 2016 16:58:48 +0000 (09:58 -0700)
On Windows, the backslash is the native directory separator, but all
supported Windows versions also accept the forward slash in most
circumstances.

Our tests expect forward slashes.

Relative paths are generated by Git using forward slashes.

So let's try to be consistent and use forward slashes in the $HOME part
of the paths reported by `git config --show-origin`, too.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
compat/mingw.h
path.c
index 8c5bf5076bfe25ce5b12235c035cff95a4900f2c..c008694639a654e6a04e541af70e90a5fa4da9e0 100644 (file)
@@ -396,6 +396,12 @@ static inline char *mingw_find_last_dir_sep(const char *path)
                        ret = (char *)path;
        return ret;
 }
                        ret = (char *)path;
        return ret;
 }
+static inline void convert_slashes(char *path)
+{
+       for (; *path; path++)
+               if (*path == '\\')
+                       *path = '/';
+}
 #define find_last_dir_sep mingw_find_last_dir_sep
 int mingw_offset_1st_component(const char *path);
 #define offset_1st_component mingw_offset_1st_component
 #define find_last_dir_sep mingw_find_last_dir_sep
 int mingw_offset_1st_component(const char *path);
 #define offset_1st_component mingw_offset_1st_component
diff --git a/path.c b/path.c
index 8b7e16812927645367c4912e88d2a5f3065efb85..969b494d72dff1439150e7bb945339be07c4d475 100644 (file)
--- a/path.c
+++ b/path.c
@@ -584,6 +584,9 @@ char *expand_user_path(const char *path)
                        if (!home)
                                goto return_null;
                        strbuf_addstr(&user_path, home);
                        if (!home)
                                goto return_null;
                        strbuf_addstr(&user_path, home);
+#ifdef GIT_WINDOWS_NATIVE
+                       convert_slashes(user_path.buf);
+#endif
                } else {
                        struct passwd *pw = getpw_str(username, username_len);
                        if (!pw)
                } else {
                        struct passwd *pw = getpw_str(username, username_len);
                        if (!pw)