0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 7.4.1383

Problem:    GvimExt only loads the old libintl.dll.
Solution:   Also try loading libint-8.dll. (Ken Takata, closes #608)
This commit is contained in:
Bram Moolenaar
2016-02-21 20:30:22 +01:00
parent 02e83b438e
commit 271273c39f
3 changed files with 25 additions and 6 deletions

View File

@@ -158,6 +158,7 @@ HBITMAP IconToBitmap(HICON hIcon, HBRUSH hBackground, int width, int height)
# define VIMPACKAGE "vim"
# ifndef GETTEXT_DLL
# define GETTEXT_DLL "libintl.dll"
# define GETTEXT_DLL_ALT "libintl-8.dll"
# endif
// Dummy functions
@@ -194,21 +195,36 @@ dyn_libintl_init(char *dir)
{(char *)"bindtextdomain", (FARPROC*)&dyn_libintl_bindtextdomain},
{NULL, NULL}
};
DWORD len, len2;
LPWSTR buf = NULL;
LPWSTR buf2 = NULL;
// No need to initialize twice.
if (hLibintlDLL)
return 1;
// Load gettext library, first try the Vim runtime directory, then search
// the path.
strcat(dir, GETTEXT_DLL);
hLibintlDLL = LoadLibrary(dir);
if (!hLibintlDLL)
// Load gettext library from the Vim runtime directory.
// Add the directory to $PATH temporarily.
len = GetEnvironmentVariableW(L"PATH", NULL, 0);
len2 = MAX_PATH + 1 + len;
buf = (LPWSTR)malloc(len * sizeof(WCHAR));
buf2 = (LPWSTR)malloc(len2 * sizeof(WCHAR));
if (buf != NULL && buf2 != NULL)
{
GetEnvironmentVariableW(L"PATH", buf, len);
_snwprintf(buf2, len2, L"%S;%s", dir, buf);
SetEnvironmentVariableW(L"PATH", buf2);
hLibintlDLL = LoadLibrary(GETTEXT_DLL);
#ifdef GETTEXT_DLL_ALT
if (!hLibintlDLL)
return 0;
hLibintlDLL = LoadLibrary(GETTEXT_DLL_ALT);
#endif
SetEnvironmentVariableW(L"PATH", buf);
}
free(buf);
free(buf2);
if (!hLibintlDLL)
return 0;
// Get the addresses of the functions we need.
for (i = 0; libintl_entry[i].name != NULL

View File

@@ -42,6 +42,7 @@
#include <windows.h>
#include <windowsx.h>
#include <shlobj.h>
#include <wchar.h>
/* Accommodate old versions of VC that don't have a modern Platform SDK */
#if (defined(_MSC_VER) && _MSC_VER < 1300) || !defined(MAXULONG_PTR)