Message ID | 31485f76-13a9-ec3b-16b9-78864490164d@cs-ware.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] MSVC: Unbreak real_path for Windows paths | expand |
Sven Strickroth <email@cs-ware.de> writes: > A path such as 'c:/somepath/submodule/../.git/modules/submodule' wasn't > resolved correctly any more, because the *nix variant of offset_1st_component > is used instead of the Win32 specific version. > > Regression was introduced in commit 1cadad6f6 when mingw_offset_1st_component > was moved from mingw.c which is included by msvc.c to a separate file. Then, > the new file "compat/win32/path-utils.h" was only included for the __CYGWIN__ > and __MINGW32__ cases in git-compat-util.h, the case for _MSC_VER was missing. > > Signed-off-by: Sven Strickroth <email@cs-ware.de> > --- > config.mak.uname | 1 + > git-compat-util.h | 1 + > 2 files changed, 2 insertions(+) Some context lines in config.mak.uname did not match tips of any of the well-known branches I tried, and the blob object name recorded on the "index" line was not useful, either, so I ended up applying the patch by hand. I do not think I screwed up a simple two-liner patch like this too badly ;-), but please keep an eye on what will appear on 'pu' and holler if I did, so we can correct it before it hits 'master'. Thanks. > > diff --git a/config.mak.uname b/config.mak.uname > index 32381f5fd1..eb1428858c 100644 > --- a/config.mak.uname > +++ b/config.mak.uname > @@ -426,6 +426,7 @@ ifeq ($(uname_S),Windows) > CFLAGS = > BASIC_CFLAGS = -nologo -I. -Icompat/vcbuild/include -DWIN32 -D_CONSOLE -DHAVE_STRING_H -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE
diff --git a/config.mak.uname b/config.mak.uname index 32381f5fd1..eb1428858c 100644 --- a/config.mak.uname +++ b/config.mak.uname @@ -426,6 +426,7 @@ ifeq ($(uname_S),Windows) CFLAGS = BASIC_CFLAGS = -nologo -I. -Icompat/vcbuild/include -DWIN32 -D_CONSOLE -DHAVE_STRING_H -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE COMPAT_OBJS = compat/msvc.o compat/winansi.o \ + compat/win32/path-utils.o \ compat/win32/pthread.o compat/win32/syslog.o \ compat/win32/dirent.o compat/win32/fscache.o COMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DDETECT_MSYS_TTY -DNOGDI -DHAVE_STRING_H -Icompat -Icompat/regex -Icompat/win32 -DSTRIP_EXTENSION=\".exe\" diff --git a/git-compat-util.h b/git-compat-util.h index e0275da7e0..9be177e588 100644 --- a/git-compat-util.h +++ b/git-compat-util.h @@ -210,6 +210,7 @@ #include "compat/mingw.h" #include "compat/win32/fscache.h" #elif defined(_MSC_VER) +#include "compat/win32/path-utils.h" #include "compat/msvc.h" #include "compat/win32/fscache.h" #else
A path such as 'c:/somepath/submodule/../.git/modules/submodule' wasn't resolved correctly any more, because the *nix variant of offset_1st_component is used instead of the Win32 specific version. Regression was introduced in commit 1cadad6f6 when mingw_offset_1st_component was moved from mingw.c which is included by msvc.c to a separate file. Then, the new file "compat/win32/path-utils.h" was only included for the __CYGWIN__ and __MINGW32__ cases in git-compat-util.h, the case for _MSC_VER was missing. Signed-off-by: Sven Strickroth <email@cs-ware.de> --- config.mak.uname | 1 + git-compat-util.h | 1 + 2 files changed, 2 insertions(+)