0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

Make the dos installer work with more compilers.

This commit is contained in:
Bram Moolenaar 2010-07-07 15:14:03 +02:00
parent ccd9ccfa59
commit ab8205e8b8
7 changed files with 46 additions and 53 deletions

View File

@ -157,7 +157,7 @@ DOSBIN_S = dosbin_s
# - If building the Win32s version delete vimrun.exe. # - If building the Win32s version delete vimrun.exe.
# Win32s GUI version: # Win32s GUI version:
# - Set environment for Visual C++ 4.1 (requires a new console window) # - Set environment for Visual C++ 4.1 (requires a new console window)
# - "vcvars32" (use the path for VC 4.1 e:\msdev\bin) # - "vcvars32.bat" (use the path for VC 4.1 e:\msdev\bin)
# - "nmake -f Make_mvc.mak GUI=yes INTL=no clean" (use the path for VC 4.1) # - "nmake -f Make_mvc.mak GUI=yes INTL=no clean" (use the path for VC 4.1)
# - "nmake -f Make_mvc.mak GUI=yes INTL=no" (use the path for VC 4.1) # - "nmake -f Make_mvc.mak GUI=yes INTL=no" (use the path for VC 4.1)
# - Rename "gvim.exe" to "gvim_w32s.exe". # - Rename "gvim.exe" to "gvim_w32s.exe".
@ -178,6 +178,7 @@ DOSBIN_S = dosbin_s
# VisVim.dll in src/VisVim # VisVim.dll in src/VisVim
# Note: VisVim needs to be build with MSVC 5, newer versions don't work. # Note: VisVim needs to be build with MSVC 5, newer versions don't work.
# gvimext64.dll can be obtained from http://code.google.com/p/vim-win3264/ # gvimext64.dll can be obtained from http://code.google.com/p/vim-win3264/
# It is part of vim72.zip as vim72/gvimext.dll.
# - make sure there is a diff.exe two levels up # - make sure there is a diff.exe two levels up
# - go to ../nsis and do "makensis gvim.nsi" (takes a few minutes). # - go to ../nsis and do "makensis gvim.nsi" (takes a few minutes).
# - Copy gvim##.exe to the dist directory. # - Copy gvim##.exe to the dist directory.

View File

@ -34,6 +34,9 @@ Bug in undo, using freed memory. (Dominique Pelle, Jul 1)
Cursor positioning wrong with 0x200e character. (John Becket, 2010 May 6) Cursor positioning wrong with 0x200e character. (John Becket, 2010 May 6)
Test 69 breaks on MS-Windows, both 32 and 64 builds. (George Reilly, 2010 Feb
26)
E315 when trying to change a file in FileChangedRO autocommand event. E315 when trying to change a file in FileChangedRO autocommand event.
(Dominique Pelle, 2010 Apr 30) (Dominique Pelle, 2010 Apr 30)
@ -103,9 +106,6 @@ Shell not recognized properly if it ends in "csh -f". (James Vega, 2009 Nov 3)
Find tail? Might have a / in argument. Find space? Might have space in Find tail? Might have a / in argument. Find space? Might have space in
path. path.
Test 69 breaks on MS-Windows, both 32 and 64 builds. (George Reilly, 2010 Feb
26)
":function f(x) keepjumps" creates a function where every command is executed ":function f(x) keepjumps" creates a function where every command is executed
like it has ":keepjumps" before it. like it has ":keepjumps" before it.
@ -1094,9 +1094,6 @@ Patch to support horizontal scroll wheel in GTK. Untested. (Bjorn Winckler,
Vim 7.3: Vim 7.3:
- using NSIS 2.46: install on Windows 7 works, but no "Edit with Vim" menu.
Use register_shell_extension()?
Patch from Geoffrey Reilly, 2010 Jun 22
- in August remove UF_VERSION_CRYPT_PREV and UF_VERSION_PREV. - in August remove UF_VERSION_CRYPT_PREV and UF_VERSION_PREV.
- Conceal feature: no update when moving to another window. (Dominique Pelle, - Conceal feature: no update when moving to another window. (Dominique Pelle,
2010 Jul 5) Vince will look into it. 2010 Jul 5) Vince will look into it.

View File

@ -7228,5 +7228,9 @@ right compiler flags. (Michael Bienia)
Window title is not updated after dropping a file on Vim. (Hari G) Window title is not updated after dropping a file on Vim. (Hari G)
MS-Windows: The self-installing executable now also works on 64-bit systems.
The gvim executable is 32 bits, the installed gvimext.dll is either a 32 or 64
bit version. (George Reilly)
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:ft=help:norl:

View File

@ -138,31 +138,6 @@ static char *(vimfiles_subdirs[]) =
"syntax", "syntax",
}; };
/*
* Copy a directory name from "dir" to "buf", doubling backslashes.
* Also make sure it ends in a double backslash.
*/
static void
double_bs(char *dir, char *buf)
{
char *d = buf;
char *s;
for (s = dir; *s; ++s)
{
if (*s == '\\')
*d++ = '\\';
*d++ = *s;
}
/* when dir is not empty, it must end in a double backslash */
if (d > buf && d[-1] != '\\')
{
*d++ = '\\';
*d++ = '\\';
}
*d = NUL;
}
/* /*
* Obtain a choice from a table. * Obtain a choice from a table.
* First entry is a question, others are choices. * First entry is a question, others are choices.
@ -442,7 +417,7 @@ get_vim_env(void)
else else
{ {
printf("Failed to open %s\n", fname); printf("Failed to open %s\n", fname);
Sleep(2000); sleep(2);
} }
} }
@ -582,10 +557,10 @@ uninstall_check(int skip_question)
* The uninstaller copies itself, executes the copy * The uninstaller copies itself, executes the copy
* and exits, thus we can't wait for the process to * and exits, thus we can't wait for the process to
* finish. */ * finish. */
Sleep(1000); /* wait for uninstaller to start up */ sleep(1); /* wait for uninstaller to start up */
num_windows = 0; num_windows = 0;
EnumWindows(window_cb, 0); EnumWindows(window_cb, 0);
Sleep(1000); /* wait for windows to be counted */ sleep(1); /* wait for windows to be counted */
if (num_windows == 0) if (num_windows == 0)
{ {
/* Did not find the uninstaller, ask user to press /* Did not find the uninstaller, ask user to press
@ -603,7 +578,7 @@ uninstall_check(int skip_question)
fflush(stdout); fflush(stdout);
num_windows = 0; num_windows = 0;
EnumWindows(window_cb, 0); EnumWindows(window_cb, 0);
Sleep(1000); /* wait for windows to be counted */ sleep(1); /* wait for windows to be counted */
} while (num_windows > 0); } while (num_windows > 0);
} }
printf("\nDone!\n"); printf("\nDone!\n");
@ -1376,7 +1351,15 @@ init_vimrc_choices(void)
++choice_count; ++choice_count;
} }
#if defined(DJGPP) || defined(WIN3264) || defined(UNIX_LINT) #if defined(WIN3264)
/*
* Modern way of creating registry entries, also works on 64 bit windows when
* compiled as a 32 bit program.
*/
# ifndef KEY_WOW64_64KEY
# define KEY_WOW64_64KEY 0x0100
# endif
static LONG static LONG
reg_create_key( reg_create_key(
HKEY root, HKEY root,
@ -1525,7 +1508,7 @@ register_uninstall(
"UninstallString", uninstall_string); "UninstallString", uninstall_string);
return lRet; return lRet;
} }
#endif /* if defined(DJGPP) || defined(WIN3264) || defined(UNIX_LINT) */ #endif /* WIN3264 */
/* /*
* Add some entries to the registry: * Add some entries to the registry:
@ -1534,11 +1517,11 @@ register_uninstall(
* - to uninstall Vim * - to uninstall Vim
*/ */
/*ARGSUSED*/ /*ARGSUSED*/
static LONG static int
install_registry(void) install_registry(void)
{ {
#ifdef WIN3264
LONG lRet = ERROR_SUCCESS; LONG lRet = ERROR_SUCCESS;
#if defined(DJGPP) || defined(WIN3264) || defined(UNIX_LINT)
const char *vim_ext_ThreadingModel = "Apartment"; const char *vim_ext_ThreadingModel = "Apartment";
const char *vim_ext_name = "Vim Shell Extension"; const char *vim_ext_name = "Vim Shell Extension";
const char *vim_ext_clsid = "{51EEE242-AD87-11d3-9C1E-0090278BBD99}"; const char *vim_ext_clsid = "{51EEE242-AD87-11d3-9C1E-0090278BBD99}";
@ -1566,11 +1549,11 @@ install_registry(void)
HKEY_CLASSES_ROOT, vim_ext_clsid, vim_ext_name, HKEY_CLASSES_ROOT, vim_ext_clsid, vim_ext_name,
bufg, vim_ext_ThreadingModel); bufg, vim_ext_ThreadingModel);
if (ERROR_SUCCESS != lRet) if (ERROR_SUCCESS != lRet)
return lRet; return FAIL;
lRet = register_shellex( lRet = register_shellex(
HKEY_CLASSES_ROOT, vim_ext_clsid, vim_ext_name, vim_exe_path); HKEY_CLASSES_ROOT, vim_ext_clsid, vim_ext_name, vim_exe_path);
if (ERROR_SUCCESS != lRet) if (ERROR_SUCCESS != lRet)
return lRet; return FAIL;
} }
if (install_openwith) if (install_openwith)
@ -1579,7 +1562,7 @@ install_registry(void)
lRet = register_openwith(HKEY_CLASSES_ROOT, vim_exe_path); lRet = register_openwith(HKEY_CLASSES_ROOT, vim_exe_path);
if (ERROR_SUCCESS != lRet) if (ERROR_SUCCESS != lRet)
return lRet; return FAIL;
} }
printf("Creating an uninstall entry\n"); printf("Creating an uninstall entry\n");
@ -1601,9 +1584,11 @@ install_registry(void)
"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Vim " VIM_VERSION_SHORT, "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Vim " VIM_VERSION_SHORT,
display_name, display_name,
uninstall_string); uninstall_string);
if (ERROR_SUCCESS != lRet)
return FAIL;
#endif /* WIN3264 */
#endif /* if defined(DJGPP) || defined(WIN3264) || defined(UNIX_LINT) */ return OK;
return lRet;
} }
static void static void
@ -2569,7 +2554,7 @@ main(int argc, char **argv)
/* When nothing found exit quietly. If something found wait for /* When nothing found exit quietly. If something found wait for
* a little while, so that the user can read the messages. */ * a little while, so that the user can read the messages. */
if (i) if (i)
Sleep(3000); sleep(3);
exit(0); exit(0);
} }
#endif #endif
@ -2645,7 +2630,7 @@ main(int argc, char **argv)
/* Avoid that the user has to hit Enter, just wait a little bit to /* Avoid that the user has to hit Enter, just wait a little bit to
* allow reading the messages. */ * allow reading the messages. */
Sleep(2000); sleep(2);
} }
return 0; return 0;

View File

@ -62,6 +62,11 @@ char *searchpath(char *name);
# define vim_mkdir(x, y) mkdir((char *)(x)) # define vim_mkdir(x, y) mkdir((char *)(x))
# endif # endif
#endif #endif
#ifndef DJGPP
# define sleep(n) Sleep((n) * 1000)
#endif
/* ---------------------------------------- */ /* ---------------------------------------- */
@ -395,9 +400,10 @@ char *(icon_link_names[ICON_COUNT]) =
"gVim Easy " VIM_VERSION_SHORT ".lnk", "gVim Easy " VIM_VERSION_SHORT ".lnk",
"gVim Read only " VIM_VERSION_SHORT ".lnk"}; "gVim Read only " VIM_VERSION_SHORT ".lnk"};
/* This is only used for dosinst.c and for uninstal.c when not being able to /* This is only used for dosinst.c when WIN3264 is defined and for uninstal.c
* directly access registry entries. */ * when not being able to directly access registry entries. */
#if !defined(WIN3264) || defined(DOSINST) #if (defined(DOSINST) && defined(WIN3264)) \
|| (!defined(DOSINST) && !defined(WIN3264))
/* /*
* Run an external command and wait for it to finish. * Run an external command and wait for it to finish.
*/ */

View File

@ -438,7 +438,7 @@ main(int argc, char *argv[])
(void)getchar(); (void)getchar();
} }
else else
Sleep(3000); sleep(3);
return 0; return 0;
} }

View File

@ -36,5 +36,5 @@
#define VIM_VERSION_NODOT "vim73a" #define VIM_VERSION_NODOT "vim73a"
#define VIM_VERSION_SHORT "7.3a" #define VIM_VERSION_SHORT "7.3a"
#define VIM_VERSION_MEDIUM "7.3a BETA" #define VIM_VERSION_MEDIUM "7.3a BETA"
#define VIM_VERSION_LONG "VIM - Vi IMproved 7.3 BETA (2010 May 15)" #define VIM_VERSION_LONG "VIM - Vi IMproved 7.3 BETA (2010 Jul 7)"
#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.3 BETA (2010 May 15, compiled " #define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.3 BETA (2010 Jul 7, compiled "