Skip to content

Commit

Permalink
patch 8.1.1639: changing an autoload name into a file name is ineffic…
Browse files Browse the repository at this point in the history
…ient

Problem:    Changing an autoload name into a script file name is inefficient.
Solution:   Remember the last replaced #. (Ozaki Kiichi, closes #4618)
  • Loading branch information
brammool committed Jul 5, 2019
1 parent 3940ec6 commit 28fc247
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 5 deletions.
11 changes: 6 additions & 5 deletions src/eval.c
Expand Up @@ -9219,23 +9219,24 @@ find_option_end(char_u **arg, int *opt_flags)
/*
* Return the autoload script name for a function or variable name.
* Returns NULL when out of memory.
* Caller must make sure that "name" contains AUTOLOAD_CHAR.
*/
char_u *
autoload_name(char_u *name)
{
char_u *p;
char_u *p, *q = NULL;
char_u *scriptname;

/* Get the script file name: replace '#' with '/', append ".vim". */
// Get the script file name: replace '#' with '/', append ".vim".
scriptname = alloc(STRLEN(name) + 14);
if (scriptname == NULL)
return FALSE;
STRCPY(scriptname, "autoload/");
STRCAT(scriptname, name);
*vim_strrchr(scriptname, AUTOLOAD_CHAR) = NUL;
STRCAT(scriptname, ".vim");
while ((p = vim_strchr(scriptname, AUTOLOAD_CHAR)) != NULL)
for (p = scriptname + 9; (p = vim_strchr(p, AUTOLOAD_CHAR)) != NULL;
q = p, ++p)
*p = '/';
STRCPY(q, ".vim");
return scriptname;
}

Expand Down
2 changes: 2 additions & 0 deletions src/version.c
Expand Up @@ -777,6 +777,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1639,
/**/
1638,
/**/
Expand Down

0 comments on commit 28fc247

Please sign in to comment.