changeset 1696:0c4a465bd741 v7.2b.029

updated for version 7.2b-029
author vimboss
date Wed, 06 Aug 2008 13:03:07 +0000
parents 0dbc46d14443
children 2f9308b31181
files src/ex_cmds.c src/ex_getln.c src/version.c
diffstat 3 files changed, 12 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -5897,12 +5897,17 @@ find_help_tags(arg, num_matches, matches
     flags = TAG_HELP | TAG_REGEXP | TAG_NAMES | TAG_VERBOSE;
     if (keep_lang)
 	flags |= TAG_KEEP_LANG;
-    if (find_tags(IObuff, num_matches, matches, flags, TAG_MANY, NULL) == OK
+    if (find_tags(IObuff, num_matches, matches, flags, (int)MAXCOL, NULL) == OK
 	    && *num_matches > 0)
+    {
 	/* Sort the matches found on the heuristic number that is after the
 	 * tag name. */
 	qsort((void *)*matches, (size_t)*num_matches,
 					      sizeof(char_u *), help_compare);
+	/* Delete more than TAG_MANY to reduce the size of the listing. */
+	while (*num_matches > TAG_MANY)
+	    vim_free((*matches)[--*num_matches]);
+    }
     return OK;
 }
 
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -4387,7 +4387,10 @@ ExpandFromContext(xp, pat, num_file, fil
     *num_file = 0;
     if (xp->xp_context == EXPAND_HELP)
     {
-	if (find_help_tags(pat, num_file, file, FALSE) == OK)
+	/* With an empty argument we would get all the help tags, which is
+	 * very slow.  Get matches for "help" instead. */
+	if (find_help_tags(*pat == NUL ? (char_u *)"help" : pat,
+						 num_file, file, FALSE) == OK)
 	{
 #ifdef FEAT_MULTI_LANG
 	    cleanup_help_tags(*num_file, *file);
--- a/src/version.c
+++ b/src/version.c
@@ -677,6 +677,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    29,
+/**/
     28,
 /**/
     27,