# HG changeset patch # User Bram Moolenaar # Date 1554317106 -7200 # Node ID b0e19f135e50cd40d6d237d48076d523f7c2f530 # Parent 9ceec0282d0b28808dc8247df34d317412992cbb patch 8.1.1104: MS-Windows: not all environment variables can be used commit https://github.com/vim/vim/commit/796cc42d3a4fc7a940da87831a111eeb6b7a5cf3 Author: Bram Moolenaar Date: Wed Apr 3 20:31:00 2019 +0200 patch 8.1.1104: MS-Windows: not all environment variables can be used Problem: MS-Windows: not all environment variables can be used. Solution: Use the wide version of WinMain() and main(). (Ken Takata, closes #4206) diff --git a/src/Make_cyg.mak b/src/Make_cyg.mak --- a/src/Make_cyg.mak +++ b/src/Make_cyg.mak @@ -37,13 +37,12 @@ #RUBY=/cygdribe/c/ruby -# Use MinGW(-w64) cross compiler. -# There are three MinGW packages in Cygwin: -# 32-bit: mingw-gcc-g++ and mingw64-i686-gcc-g++ +# Use MinGW-w64 cross compiler. +# There are two MinGW-w64 packages in Cygwin: +# 32-bit: mingw64-i686-gcc-g++ # 64-bit: mingw64-x86_64-gcc-g++ # You may also need to set 'ARCH' in Make_cyg_ming.mak. -CROSS_COMPILE = i686-pc-mingw32- -#CROSS_COMPILE = i686-w64-mingw32- +CROSS_COMPILE = i686-w64-mingw32- #CROSS_COMPILE = x86_64-w64-mingw32- diff --git a/src/Make_cyg_ming.mak b/src/Make_cyg_ming.mak --- a/src/Make_cyg_ming.mak +++ b/src/Make_cyg_ming.mak @@ -691,7 +691,7 @@ CFLAGS += -s endif LIB = -lkernel32 -luser32 -lgdi32 -ladvapi32 -lcomdlg32 -lcomctl32 -lnetapi32 -lversion -GUIOBJ = $(OUTDIR)/gui.o $(OUTDIR)/gui_w32.o $(OUTDIR)/gui_beval.o $(OUTDIR)/os_w32exe.o +GUIOBJ = $(OUTDIR)/gui.o $(OUTDIR)/gui_w32.o $(OUTDIR)/gui_beval.o CUIOBJ = $(OUTDIR)/iscygpty.o OBJ = \ $(OUTDIR)/arabic.o \ @@ -737,9 +737,9 @@ OBJ = \ $(OUTDIR)/normal.o \ $(OUTDIR)/ops.o \ $(OUTDIR)/option.o \ + $(OUTDIR)/os_mswin.o \ + $(OUTDIR)/os_w32exe.o \ $(OUTDIR)/os_win32.o \ - $(OUTDIR)/os_mswin.o \ - $(OUTDIR)/winclip.o \ $(OUTDIR)/pathdef.o \ $(OUTDIR)/popupmnu.o \ $(OUTDIR)/quickfix.o \ @@ -759,6 +759,7 @@ OBJ = \ $(OUTDIR)/userfunc.o \ $(OUTDIR)/version.o \ $(OUTDIR)/vimrc.o \ + $(OUTDIR)/winclip.o \ $(OUTDIR)/window.o ifdef PERL @@ -865,6 +866,8 @@ ifdef MZSCHEME MZSCHEME_SUFFIX = Z endif +LFLAGS += -municode + ifeq ($(GUI),yes) TARGET := gvim$(DEBUG_SUFFIX).exe DEFINES += $(DEF_GUI) diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak --- a/src/Make_mvc.mak +++ b/src/Make_mvc.mak @@ -742,7 +742,7 @@ OBJ = \ $(OUTDIR)\ops.obj \ $(OUTDIR)\option.obj \ $(OUTDIR)\os_mswin.obj \ - $(OUTDIR)\winclip.obj \ + $(OUTDIR)\os_w32exe.obj \ $(OUTDIR)\os_win32.obj \ $(OUTDIR)\pathdef.obj \ $(OUTDIR)\popupmnu.obj \ @@ -761,6 +761,7 @@ OBJ = \ $(OUTDIR)\ui.obj \ $(OUTDIR)\undo.obj \ $(OUTDIR)\userfunc.obj \ + $(OUTDIR)\winclip.obj \ $(OUTDIR)\window.obj \ $(OUTDIR)\vim.res @@ -799,8 +800,7 @@ GUI_INCL = \ GUI_OBJ = \ $(OUTDIR)\gui.obj \ $(OUTDIR)\gui_beval.obj \ - $(OUTDIR)\gui_w32.obj \ - $(OUTDIR)\os_w32exe.obj + $(OUTDIR)\gui_w32.obj GUI_LIB = \ gdi32.lib version.lib $(IME_LIB) \ winspool.lib comctl32.lib advapi32.lib shell32.lib netapi32.lib \ diff --git a/src/main.c b/src/main.c --- a/src/main.c +++ b/src/main.c @@ -96,7 +96,7 @@ static char_u *start_dir = NULL; /* curr static int has_dash_c_arg = FALSE; int -# ifdef FEAT_GUI_MSWIN +# ifdef MSWIN # ifdef __BORLANDC__ _cdecl # endif diff --git a/src/os_w32exe.c b/src/os_w32exe.c --- a/src/os_w32exe.c +++ b/src/os_w32exe.c @@ -28,20 +28,22 @@ void _cdecl SaveInst(HINSTANCE hInst); #endif #ifndef PROTO +# ifdef FEAT_GUI int WINAPI -WinMain( +wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInst UNUSED, - LPSTR lpszCmdLine UNUSED, + LPWSTR lpszCmdLine UNUSED, int nCmdShow UNUSED) +# else + int +wmain(int argc UNUSED, wchar_t **argv UNUSED) +# endif { - int argc = 0; - char **argv = NULL; - # ifdef FEAT_GUI SaveInst(hInstance); # endif - VimMain(argc, argv); + VimMain(0, NULL); return 0; } diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -772,6 +772,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1104, +/**/ 1103, /**/ 1102,