diff src/ex_getln.c @ 13:24d5189d3956

updated for version 7.0005
author vimboss
date Sat, 03 Jul 2004 16:05:59 +0000
parents 4e2284e71352
children 631143ac4a01
line wrap: on
line diff
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -3974,6 +3974,7 @@ ExpandUserDefined(xp, regmatch, num_file
     char_u      num[50];
     garray_T	ga;
     int		save_current_SID = current_SID;
+    struct cmdline_info	    save_ccline;
 
     if (xp->xp_arg == NULL || xp->xp_arg[0] == '\0')
 	return FAIL;
@@ -3987,9 +3988,17 @@ ExpandUserDefined(xp, regmatch, num_file
     args[1] = ccline.cmdbuff;
     args[2] = num;
 
+    /* Save the cmdline, we don't know what the function may do. */
+    save_ccline = ccline;
+    ccline.cmdbuff = NULL;
+    ccline.cmdprompt = NULL;
     current_SID = xp->xp_scriptID;
+
     all = call_vim_function(xp->xp_arg, 3, args, FALSE);
+
+    ccline = save_ccline;
     current_SID = save_current_SID;
+
     ccline.cmdbuff[ccline.cmdlen] = keep;
     if (all == NULL)
 	return FAIL;