Re: [PATCH 1/4] config --show-origin: report paths with forward slashes
From: Junio C Hamano <hidden>
Date: 2016-06-16 02:18:39
Johannes Sixt [off-list ref] writes:
Although I am convinced that the change is not necessary for correctness, I can buy the justification that we should produce forward slashes for consistency. There are a number of occasions where we present paths to the user, and we do show forward-slashes in all cases that I found. We should keep the commit. But then let's do this:
Sounds like a plan; even though I am mildly against adding more platform specific #ifdef to files outside compat/, this patch does not. Dscho?
quoted hunk
---- 8< ---- Subject: [PATCH] Windows: shorten code by re-using convert_slashes() Make a few more spots more readable by using the recently introduced, Windows-specific helper. Signed-off-by: Johannes Sixt <redacted> --- abspath.c | 5 +---- compat/mingw.c | 9 ++------- 2 files changed, 3 insertions(+), 11 deletions(-)diff --git a/abspath.c b/abspath.c index 5edb4e7..2825de8 100644 --- a/abspath.c +++ b/abspath.c@@ -167,7 +167,6 @@ const char *prefix_filename(const char *pfx, int pfx_len, const char *arg) strbuf_add(&path, pfx, pfx_len); strbuf_addstr(&path, arg); #else - char *p; /* don't add prefix to absolute paths, but still replace '\' by '/' */ strbuf_reset(&path); if (is_absolute_path(arg))@@ -175,9 +174,7 @@ const char *prefix_filename(const char *pfx, int pfx_len, const char *arg) else if (pfx_len) strbuf_add(&path, pfx, pfx_len); strbuf_addstr(&path, arg); - for (p = path.buf + pfx_len; *p; p++) - if (*p == '\\') - *p = '/'; + convert_slashes(path.buf + pfx_len); #endif return path.buf; }diff --git a/compat/mingw.c b/compat/mingw.c index 54c82ec..0413d5c 100644 --- a/compat/mingw.c +++ b/compat/mingw.c@@ -763,15 +763,12 @@ struct tm *localtime_r(const time_t *timep, struct tm *result) char *mingw_getcwd(char *pointer, int len) { - int i; wchar_t wpointer[MAX_PATH]; if (!_wgetcwd(wpointer, ARRAY_SIZE(wpointer))) return NULL; if (xwcstoutf(pointer, wpointer, len) < 0) return NULL; - for (i = 0; pointer[i]; i++) - if (pointer[i] == '\\') - pointer[i] = '/'; + convert_slashes(pointer); return pointer; }@@ -2112,9 +2109,7 @@ static void setup_windows_environment() * executable (by not mistaking the dir separators * for escape characters). */ - for (; *tmp; tmp++) - if (*tmp == '\\') - *tmp = '/'; + convert_slashes(tmp); } /* simulate TERM to enable auto-color (see color.c) */