patch 8.1.1639: changing an autoload name into a file name is inefficient

Problem:    Changing an autoload name into a script file name is inefficient.
Solution:   Remember the last replaced #. (Ozaki Kiichi, closes #4618)
diff --git a/src/eval.c b/src/eval.c
index f622b6f..26fad0c 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -9219,23 +9219,24 @@
 /*
  * 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;
 }
 
diff --git a/src/version.c b/src/version.c
index c835eee..25c6076 100644
--- a/src/version.c
+++ b/src/version.c
@@ -778,6 +778,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1639,
+/**/
     1638,
 /**/
     1637,