]> granicus.if.org Git - vim/commitdiff
updated for version 7.2-269 v7.2.269
authorBram Moolenaar <Bram@vim.org>
Tue, 3 Nov 2009 11:11:11 +0000 (11:11 +0000)
committerBram Moolenaar <Bram@vim.org>
Tue, 3 Nov 2009 11:11:11 +0000 (11:11 +0000)
runtime/doc/starting.txt
src/feature.h
src/globals.h
src/macros.h
src/main.c
src/version.c

index 2326985b4289442356d3365b71ba3bce1d6ded4c..c1ed1b80c650cc426f9bc438b0ba58ef8162c37f 100644 (file)
@@ -144,6 +144,13 @@ a slash.  Thus "-R" means recovery and "-/R" readonly.
                        -u NORC                 no                  yes
                        --noplugin              yes                 no
 
+--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.
+               When {fname} already exists new messages are appended.
+               {only when compiled with this feature}
+
                                                        *--literal*
 --literal      Take file names literally, don't expand wildcards.  Not needed
                for Unix, because Vim always takes file names literally (the
@@ -471,6 +478,7 @@ a slash.  Thus "-R" means recovery and "-/R" readonly.
                window title and copy/paste using the X clipboard.  This
                avoids a long startup time when running Vim in a terminal
                emulator and the connection to the X server is slow.
+               See |--startuptime| to find out if affects you.
                Only makes a difference on Unix or VMS, when compiled with the
                |+X11| feature.  Otherwise it's ignored.
                To disable the connection only for specific terminals, see the
index ae167503539405f082782504fc6722dd3eb10a6f..ea2e5887d24cd294204507801dc3c34bf7a913aa 100644 (file)
 /* #define DEBUG */
 
 /*
- * STARTUPTIME         Time the startup process.  Writes a "vimstartup" file
- *                     with timestamps.
+ * STARTUPTIME         Time the startup process.  Writes a file with
+ *                     timestamps.
  */
-/* #define STARTUPTIME "vimstartup" */
+#if defined(FEAT_NORMAL) \
+       && ((defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H)) \
+               || defined(WIN3264))
+# define STARTUPTIME 1
+#endif
 
 /*
  * MEM_PROFILE         Debugging of memory allocation and freeing.
index 2ff31740e198cf3242cba7cacc8a50a28f99192c..bfe48caf0918f2393a928440622f994408e7216b 100644 (file)
@@ -1567,6 +1567,10 @@ EXTERN int xsmp_icefd INIT(= -1);   /* The actual connection */
 /* For undo we need to know the lowest time possible. */
 EXTERN time_t starttime;
 
+#ifdef STARTUPTIME
+EXTERN FILE *time_fd INIT(= NULL);  /* where to write startup timing */
+#endif
+
 /*
  * Some compilers warn for not using a return value, but in some situations we
  * can't do anything useful with the value.  Assign to this variable to avoid
index 68ea6bcf1cd2b81230f91731ebc7a6261c88d841..51e4dd423e9dcd889ddd70dfa0112de3df4b4b06 100644 (file)
 #endif
 
 #ifdef STARTUPTIME
-# define TIME_MSG(s) time_msg(s, NULL)
+# define TIME_MSG(s) { if (time_fd != NULL) time_msg(s, NULL); }
 #else
 # define TIME_MSG(s)
 #endif
index 84aa146e76d2510f51c21faf43a2261120cc214c..5bb81a6003333a9656a7faed611d28e53eb82048 100644 (file)
@@ -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)
index 92305710823358091f407f8c8c195d8b890ee58d..73d2300d13ad9ed83d20ca1fcedb4b29ecc3ffe4 100644 (file)
@@ -676,6 +676,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    269,
 /**/
     268,
 /**/