summaryrefslogtreecommitdiff
path: root/src/ex_docmd.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-09-29 15:18:57 +0200
committerBram Moolenaar <Bram@vim.org>2016-09-29 15:18:57 +0200
commitb9c31e71f5a4653a27e81c21226039bfa35b9131 (patch)
tree13ab81b2945c99ef6b8f256dac36c0ea4427e394 /src/ex_docmd.c
parent177778575148e265c0e32ec2abf2d2c615f5ead5 (diff)
downloadvim-git-b9c31e71f5a4653a27e81c21226039bfa35b9131.tar.gz
patch 8.0.0018v8.0.0018
Problem: When using ":sleep" channel input is not handled. Solution: When there is a channel check for input also when not in raw mode. Check every 100 msec.
Diffstat (limited to 'src/ex_docmd.c')
-rw-r--r--src/ex_docmd.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index eef559506..09b901996 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -9065,8 +9065,17 @@ do_sleep(long msec)
wait_now = due_time;
}
#endif
+#ifdef FEAT_JOB_CHANNEL
+ if (has_any_channel() && wait_now > 100L)
+ wait_now = 100L;
+#endif
ui_delay(wait_now, TRUE);
- ui_breakcheck();
+#ifdef FEAT_JOB_CHANNEL
+ if (has_any_channel())
+ ui_breakcheck_force(TRUE);
+ else
+#endif
+ ui_breakcheck();
#ifdef MESSAGE_QUEUE
/* Process the netbeans and clientserver messages that may have been
* received in the call to ui_breakcheck() when the GUI is in use. This