From 63e4344edc0cc1b4ed68a9d9c787265799602670 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 19 Nov 2016 17:28:44 +0100 Subject: [PATCH] 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) --- src/os_win32.c | 24 ++++++++++++++++++------ src/version.c | 2 ++ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/os_win32.c b/src/os_win32.c index f8e0f117d7..34b2ca8384 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 65f12936b5..1224142b89 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, /**/ -- 2.47.2