patch 8.2.2206: :exe command line completion only works for first argument
Problem: :exe command line completion only works for first argument.
Solution: Skip over text if more is following. (closes #7546)
diff --git a/src/eval.c b/src/eval.c
index e4149ab..e612070 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1904,6 +1904,24 @@
while ((c = *++arg) != NUL && (c == ' ' || c == '\t'))
/* skip */ ;
}
+
+ // ":exe one two" completes "two"
+ if ((cmdidx == CMD_execute
+ || cmdidx == CMD_echo
+ || cmdidx == CMD_echon
+ || cmdidx == CMD_echomsg)
+ && xp->xp_context == EXPAND_EXPRESSION)
+ {
+ for (;;)
+ {
+ char_u *n = skiptowhite(arg);
+
+ if (n == arg || IS_WHITE_OR_NUL(*skipwhite(n)))
+ break;
+ arg = skipwhite(n);
+ }
+ }
+
xp->xp_pattern = arg;
}