From: Bram Moolenaar Date: Sat, 19 Nov 2016 16:28:44 +0000 (+0100) Subject: patch 8.0.0094 X-Git-Tag: v8.0.0094 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=63e4344edc0cc1b4ed68a9d9c787265799602670;p=vim patch 8.0.0094 Problem: When vimrun.exe is not found the error message is not properly encoded. Solution: Use utf-16 and MessageBoxW(). (Ken Takata) --- diff --git a/src/os_win32.c b/src/os_win32.c index f8e0f117d..34b2ca838 100644 --- a/src/os_win32.c +++ b/src/os_win32.c @@ -4705,12 +4705,24 @@ mch_call_shell( #if defined(FEAT_GUI_W32) if (need_vimrun_warning) { - MessageBox(NULL, - _("VIMRUN.EXE not found in your $PATH.\n" - "External commands will not pause after completion.\n" - "See :help win32-vimrun for more information."), - _("Vim Warning"), - MB_ICONWARNING); + char *msg = _("VIMRUN.EXE not found in your $PATH.\n" + "External commands will not pause after completion.\n" + "See :help win32-vimrun for more information."); + char *title = _("Vim Warning"); +# ifdef FEAT_MBYTE + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) + { + WCHAR *wmsg = enc_to_utf16((char_u *)msg, NULL); + WCHAR *wtitle = enc_to_utf16((char_u *)title, NULL); + + if (wmsg != NULL && wtitle != NULL) + MessageBoxW(NULL, wmsg, wtitle, MB_ICONWARNING); + vim_free(wmsg); + vim_free(wtitle); + } + else +# endif + MessageBox(NULL, msg, title, MB_ICONWARNING); need_vimrun_warning = FALSE; } if (!s_dont_use_vimrun && p_stmp) diff --git a/src/version.c b/src/version.c index 65f12936b..1224142b8 100644 --- a/src/version.c +++ b/src/version.c @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 94, /**/ 93, /**/