mingw: use CreateHardLink() directly
cover mingw: use CreateHardLink() directly
This is another tidbit from the stash of Git for Windows' patches: it avoids loading the function address of CreateHardLink() at runtime. This was done in case we were running on a Windows version that does not support that function, but we no longer support any of these Windows versions.
Johannes Schindelin (1):
mingw: use CreateHardLink() directly
compat/mingw.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-)
base-commit: 8858448bb49332d353febc078ce4a3abcc962efe
Published-As: https://github.com/gitgitgadget/git/releases/tags/pr-77%2Fdscho%2Fmingw-CreateHardLink-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-77/dscho/mingw-CreateHardLink-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/77
Signature · 1 line
gitgitgadget
PATCH 1/1 mingw: use `CreateHardLink()` directly
From: Johannes Schindelin <[email protected]>
The function CreateHardLink() is available in all supported Windows versions (even since Windows XP), so there is no more need to resolve it at runtime.
--- compat/mingw.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-)
compat/mingw.c +1 -13
@@ -2084,24 +2084,12 @@ int mingw_raise(int sig)int link (const char *oldpath,const char *newpath) { - typedef BOOL (WINAPI *T)(LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES); -static T create_hard_link =NULL ;wchar_t woldpath[MAX_PATH ], wnewpath[MAX_PATH ];if (xutftowcs_path (woldpath, oldpath) <0 ||xutftowcs_path (wnewpath, newpath) <0 )return -1 ; -if (!create_hard_link) { - create_hard_link = (T )GetProcAddress ( -GetModuleHandle ("kernel32.dll" ),"CreateHardLinkW" ); -if (!create_hard_link) - create_hard_link = (T )-1 ; - } -if (create_hard_link == (T )-1 ) { - errno =ENOSYS ; -return -1 ; - } -if (!create_hard_link (wnewpath, woldpath,NULL )) { +if (!CreateHardLinkW (wnewpath, woldpath,NULL )) { errno =err_win_to_posix (GetLastError ());return -1 ; }
Signature · 1 line
gitgitgadget