summaryrefslogtreecommitdiff
path: root/src/ex_getln.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ex_getln.c')
-rw-r--r--src/ex_getln.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/ex_getln.c b/src/ex_getln.c
index e17e671ef..a7dfd9a75 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -996,8 +996,13 @@ getcmdline(firstc, count, indent)
case ESC: /* get here if p_wc != ESC or when ESC typed twice */
case Ctrl_C:
- /* In exmode it doesn't make sense to return. */
- if (exmode_active)
+ /* In exmode it doesn't make sense to return. Except when
+ * ":normal" runs out of characters. */
+ if (exmode_active
+#ifdef FEAT_EX_EXTRA
+ && (ex_normal_busy == 0 || typebuf.tb_len > 0)
+#endif
+ )
goto cmdline_not_changed;
gotesc = TRUE; /* will free ccline.cmdbuff after