updated for version 7.2-270
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 8c74dd8..016a2b5 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -8358,6 +8358,7 @@
exarg_T *eap;
{
int c;
+ int prev_len = typebuf.tb_len;
curwin->w_cursor.lnum = eap->line2;
@@ -8383,11 +8384,10 @@
/*
* Execute from the typeahead buffer.
- * Originally this didn't check for the typeahead buffer to be empty,
- * thus could read more Ex commands from stdin. It's not clear why,
- * it is certainly unexpected.
+ * Continue until the stuff buffer is empty and all added characters
+ * have been consumed.
*/
- while ((!stuff_empty() || typebuf.tb_len > 0) && vpeekc() == ':')
+ while (!stuff_empty() || typebuf.tb_len > prev_len)
(void)do_cmdline(NULL, getexline, NULL, DOCMD_NOWAIT|DOCMD_VERBOSE);
exec_from_reg = save_efr;