diff options
Diffstat (limited to 'src/ex_getln.c')
-rw-r--r-- | src/ex_getln.c | 9 |
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 |