updated for version 7.0005
diff --git a/src/ex_getln.c b/src/ex_getln.c
index f2e7f8c..140535e 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -3974,6 +3974,7 @@
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 @@
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;