To: vim_dev@googlegroups.com Subject: Patch 7.4.1383 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.4.1383 Problem: GvimExt only loads the old libintl.dll. Solution: Also try loading libint-8.dll. (Ken Takata, closes #608) Files: src/GvimExt/gvimext.cpp, src/GvimExt/gvimext.h *** ../vim-7.4.1382/src/GvimExt/gvimext.cpp 2015-05-04 18:27:29.920714802 +0200 --- src/GvimExt/gvimext.cpp 2016-02-21 20:28:32.561755811 +0100 *************** *** 158,163 **** --- 158,164 ---- # define VIMPACKAGE "vim" # ifndef GETTEXT_DLL # define GETTEXT_DLL "libintl.dll" + # define GETTEXT_DLL_ALT "libintl-8.dll" # endif // Dummy functions *************** *** 194,214 **** {(char *)"bindtextdomain", (FARPROC*)&dyn_libintl_bindtextdomain}, {NULL, 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) { hLibintlDLL = LoadLibrary(GETTEXT_DLL); if (!hLibintlDLL) ! return 0; } // Get the addresses of the functions we need. for (i = 0; libintl_entry[i].name != NULL --- 195,230 ---- {(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 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) ! 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 *** ../vim-7.4.1382/src/GvimExt/gvimext.h 2015-05-04 18:27:29.920714802 +0200 --- src/GvimExt/gvimext.h 2016-02-21 20:28:32.561755811 +0100 *************** *** 42,47 **** --- 42,48 ---- #include #include #include + #include /* Accommodate old versions of VC that don't have a modern Platform SDK */ #if (defined(_MSC_VER) && _MSC_VER < 1300) || !defined(MAXULONG_PTR) *** ../vim-7.4.1382/src/version.c 2016-02-21 20:08:19.550419591 +0100 --- src/version.c 2016-02-21 20:28:21.685869780 +0100 *************** *** 749,750 **** --- 749,752 ---- { /* Add new patch number below this line */ + /**/ + 1383, /**/ -- WOMAN: I didn't know we had a king. I thought we were an autonomous collective. DENNIS: You're fooling yourself. We're living in a dictatorship. A self-perpetuating autocracy in which the working classes-- WOMAN: Oh there you go, bringing class into it again. DENNIS: That's what it's all about if only people would-- The Quest for the Holy Grail (Monty Python) /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///