changeset 1989:1fbbe04a950f v7.2.286

updated for version 7.2-286
author vimboss
date Wed, 11 Nov 2009 13:22:11 +0000
parents e5145ff9c9b0
children bce687811199
files runtime/doc/eval.txt runtime/doc/starting.txt runtime/doc/various.txt src/eval.c src/main.c src/version.c
diffstat 6 files changed, 36 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -5869,6 +5869,7 @@ showcmd			Compiled with 'showcmd' suppor
 signs			Compiled with |:sign| support.
 smartindent		Compiled with 'smartindent' support.
 sniff			Compiled with SNiFF interface support.
+startuptime		Compiled with |--startuptime| support.
 statusline		Compiled with support for 'statusline', 'rulerformat'
 			and special formats of 'titlestring' and 'iconstring'.
 sun_workshop		Compiled with support for Sun |workshop|.
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -144,12 +144,13 @@ a slash.  Thus "-R" means recovery and "
 			-u NORC			no		    yes
 			--noplugin		yes		    no
 
---startuptime={fname}					*--startuptime*
+--startuptime {fname}					*--startuptime*
 		During startup write timing messages to the file {fname}.
 		This can be used to find out where time is spent while loading
-		your .vimrc and plugins.
+		your .vimrc, plugins and opening the first file.
 		When {fname} already exists new messages are appended.
-		{only when compiled with this feature}
+		(Only available when compiled with the |+startuptime|
+		feature).
 
 							*--literal*
 --literal	Take file names literally, don't expand wildcards.  Not needed
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -374,6 +374,7 @@ N  *+scrollbind*	|'scrollbind'|
 B  *+signs*		|:sign|
 N  *+smartindent*	|'smartindent'|
 m  *+sniff*		SniFF interface |sniff|
+N  *+startuptime*	|--startuptime| argument
 N  *+statusline*	Options 'statusline', 'rulerformat' and special
 			formats of 'titlestring' and 'iconstring'
 m  *+sun_workshop*	|workshop|
--- a/src/eval.c
+++ b/src/eval.c
@@ -11736,6 +11736,9 @@ f_has(argvars, rettv)
 #ifdef FEAT_SNIFF
 	"sniff",
 #endif
+#ifdef STARTUPTIME
+	"startuptime",
+#endif
 #ifdef FEAT_STL_OPT
 	"statusline",
 #endif
--- a/src/main.c
+++ b/src/main.c
@@ -204,9 +204,9 @@ main
 #ifdef STARTUPTIME
     for (i = 1; i < argc; ++i)
     {
-	if (STRNICMP(argv[i], "--startuptime=", 14) == 0)
+	if (STRICMP(argv[i], "--startuptime") == 0 && i + 1 < argc)
 	{
-	    time_fd = mch_fopen(argv[i] + 14, "a");
+	    time_fd = mch_fopen(argv[i + 1], "a");
 	    TIME_MSG("--- VIM STARTING ---");
 	    break;
 	}
@@ -1726,6 +1726,11 @@ command_line_scan(parmp)
 		    want_argument = TRUE;
 		    argv_idx += 3;
 		}
+		else if (STRNICMP(argv[0] + argv_idx, "startuptime", 11) == 0)
+		{
+		    want_argument = TRUE;
+		    argv_idx += 11;
+		}
 #ifdef FEAT_CLIENTSERVER
 		else if (STRNICMP(argv[0] + argv_idx, "serverlist", 10) == 0)
 		    ; /* already processed -- no arg */
@@ -1761,10 +1766,6 @@ 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])
@@ -2061,7 +2062,7 @@ command_line_scan(parmp)
 		    mainerr(ME_GARBAGE, (char_u *)argv[0]);
 
 		--argc;
-		if (argc < 1 && c != 'S')
+		if (argc < 1 && c != 'S')  /* -S has an optional argument */
 		    mainerr_arg_missing((char_u *)argv[0]);
 		++argv;
 		argv_idx = -1;
@@ -2102,11 +2103,16 @@ command_line_scan(parmp)
 							    (char_u *)argv[0];
 		    break;
 
-		case '-':	/* "--cmd {command}" execute command */
-		    if (parmp->n_pre_commands >= MAX_ARG_CMDS)
-			mainerr(ME_EXTRA_CMD, NULL);
-		    parmp->pre_commands[parmp->n_pre_commands++] =
+		case '-':
+		    if (argv[-1][2] == 'c')
+		    {
+			/* "--cmd {command}" execute command */
+			if (parmp->n_pre_commands >= MAX_ARG_CMDS)
+			    mainerr(ME_EXTRA_CMD, NULL);
+			parmp->pre_commands[parmp->n_pre_commands++] =
 							    (char_u *)argv[0];
+		    }
+		    /* "--startuptime <file>" already handled */
 		    break;
 
 	    /*	case 'd':   -d {device} is handled in mch_check_win() for the
@@ -3144,6 +3150,9 @@ usage()
     main_msg(_("--serverlist\t\tList available Vim server names and exit"));
     main_msg(_("--servername <name>\tSend to/become the Vim server <name>"));
 #endif
+#ifdef STARTUPTIME
+    main_msg(_("--startuptime=<file>\tWrite startup timing messages to <file>"));
+#endif
 #ifdef FEAT_VIMINFO
     main_msg(_("-i <viminfo>\t\tUse <viminfo> instead of .viminfo"));
 #endif
--- a/src/version.c
+++ b/src/version.c
@@ -494,6 +494,11 @@ static char *(features[]) =
 #else
 	"-sniff",
 #endif
+#ifdef STARTUPTIME
+	"+startuptime",
+#else
+	"-startuptime",
+#endif
 #ifdef FEAT_STL_OPT
 	"+statusline",
 #else
@@ -677,6 +682,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    286,
+/**/
     285,
 /**/
     284,