Merge branch 'js/mingw-create-hard-link'
authorJunio C Hamano <gitster@pobox.com>
Sun, 18 Nov 2018 09:23:58 +0000 (18:23 +0900)
committerJunio C Hamano <gitster@pobox.com>
Sun, 18 Nov 2018 09:23:58 +0000 (18:23 +0900)
Windows update.

* js/mingw-create-hard-link:
mingw: use `CreateHardLink()` directly

compat/mingw.c
index d2f4fabb44b898ea6049b8b3fecadc26ddbb6253..14ef81874d182b12a3cb6581639398c63ab5eee3 100644 (file)
@@ -2211,24 +2211,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;
        }