diff options
author | Bram Moolenaar <Bram@vim.org> | 2009-11-03 11:11:11 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2009-11-03 11:11:11 +0000 |
commit | 3f269675d47dead291679bde9268aef174f8a9b7 (patch) | |
tree | 4125dd9a82beb898e6776ba30c256851e473a0c4 /src/main.c | |
parent | badfde1bfe756d529389bee7084341e4adbdf495 (diff) | |
download | vim-git-3f269675d47dead291679bde9268aef174f8a9b7.tar.gz |
updated for version 7.2-269v7.2.269
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 62 |
1 files changed, 42 insertions, 20 deletions
diff --git a/src/main.c b/src/main.c index 84aa146e7..5bb81a600 100644 --- a/src/main.c +++ b/src/main.c @@ -130,10 +130,6 @@ static char_u *serverMakeName __ARGS((char_u *arg, char *cmd)); #endif -#ifdef STARTUPTIME -static FILE *time_fd = NULL; -#endif - /* * Different types of error messages. */ @@ -173,6 +169,9 @@ main char_u *fname = NULL; /* file name from command line */ mparm_T params; /* various parameters passed between * main() and other functions. */ +#ifdef STARTUPTIME + int i; +#endif /* * Do any system-specific initialisations. These can NOT use IObuff or @@ -203,8 +202,15 @@ main #endif #ifdef STARTUPTIME - time_fd = mch_fopen(STARTUPTIME, "a"); - TIME_MSG("--- VIM STARTING ---"); + for (i = 1; i < argc; ++i) + { + if (STRNICMP(argv[i], "--startuptime=", 14) == 0) + { + time_fd = mch_fopen(argv[i] + 14, "a"); + TIME_MSG("--- VIM STARTING ---"); + break; + } + } #endif starttime = time(NULL); @@ -1150,6 +1156,18 @@ main_loop(cmdwin, noexmode) cursor_on(); do_redraw = FALSE; + +#ifdef STARTUPTIME + /* Now that we have drawn the first screen all the startup stuff + * has been done, close any file for startup messages. */ + if (time_fd != NULL) + { + TIME_MSG("first screen update"); + TIME_MSG("--- VIM STARTED ---"); + fclose(time_fd); + time_fd = NULL; + } +#endif } #ifdef FEAT_GUI if (need_mouse_correct) @@ -1743,6 +1761,10 @@ command_line_scan(parmp) /* already processed, skip */ } #endif + else if (STRNICMP(argv[0] + argv_idx, "startuptime", 11) == 0) + { + /* already processed, skip */ + } else { if (argv[0][argv_idx]) @@ -3211,6 +3233,20 @@ static void time_diff __ARGS((struct timeval *then, struct timeval *now)); static struct timeval prev_timeval; +# ifdef WIN3264 +/* + * Windows doesn't have gettimeofday(), although it does have struct timeval. + */ + static int +gettimeofday(struct timeval *tv, char *dummy) +{ + long t = clock(); + tv->tv_sec = t / CLOCKS_PER_SEC; + tv->tv_usec = (t - tv->tv_sec * CLOCKS_PER_SEC) * 1000000 / CLOCKS_PER_SEC; + return 0; +} +# endif + /* * Save the previous time before doing something that could nest. * set "*tv_rel" to the time elapsed so far. @@ -3299,20 +3335,6 @@ time_msg(msg, tv_start) } } -# ifdef WIN3264 -/* - * Windows doesn't have gettimeofday(), although it does have struct timeval. - */ - int -gettimeofday(struct timeval *tv, char *dummy) -{ - long t = clock(); - tv->tv_sec = t / CLOCKS_PER_SEC; - tv->tv_usec = (t - tv->tv_sec * CLOCKS_PER_SEC) * 1000000 / CLOCKS_PER_SEC; - return 0; -} -# endif - #endif #if defined(FEAT_CLIENTSERVER) || defined(PROTO) |