Problem: MS-Windows: unnessarily loading libraries when registering OLE.
Solution: Skip loading libraries when invoked with "-register".
#ifdef MSWIN
EXTERN char_u toupper_tab[256]; // table for toupper()
EXTERN char_u tolower_tab[256]; // table for tolower()
+EXTERN int found_register_arg INIT(= FALSE);
#endif
#ifdef FEAT_LINEBREAK
break;
}
#endif
+#ifdef MSWIN
+ // Need to find "-register" before loading any libraries.
+ for (i = 1; i < argc; ++i)
+ if (STRICMP(argv[i] + 1, "register") == 0
+ && (argv[i][0] == '-' || argv[i][0] == '/'))
+ {
+ found_register_arg = TRUE;
+ break;
+ }
+#endif
+
+ /*
+ * Various initialisations shared with tests.
+ */
common_init(¶ms);
#ifdef VIMDLL
{
HINSTANCE dll = NULL;
+ // No need to load any library when registering OLE.
+ if (found_register_arg)
+ return dll;
+
// NOTE: Do not use mch_dirname() and mch_chdir() here, they may call
// vimLoadLib() recursively, which causes a stack overflow.
if (exe_path == NULL)
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 2821,
/**/
2820,
/**/