From 4fd9ee4a6b908d86815f08c8880db73d9dda13dc Mon Sep 17 00:00:00 2001 From: Thiago de Arruda Date: Wed, 29 Oct 2014 17:30:45 -0300 Subject: input/job: process ctrl+c and do conversion in the read callback - Extract `process_interrupts` out of `convert_input` - Instead of waiting for os_breakcheck/os_inchar calls, call `convert_input` and `process_interrupts` directly from the read callback in input.c. - Remove the `settmode` calls from `job_wait`. Now that interrupts are processed in the event loop, there's no need to set the terminal to cooked which introduces other problems(ref 7.4.427) --- src/nvim/os/job.c | 7 ------- 1 file changed, 7 deletions(-) (limited to 'src/nvim/os/job.c') diff --git a/src/nvim/os/job.c b/src/nvim/os/job.c index 9a11ecd1fd..f8ad6874c9 100644 --- a/src/nvim/os/job.c +++ b/src/nvim/os/job.c @@ -15,7 +15,6 @@ #include "nvim/os/shell.h" #include "nvim/vim.h" #include "nvim/memory.h" -#include "nvim/term.h" #define EXIT_TIMEOUT 25 #define MAX_RUNNING_JOBS 100 @@ -277,10 +276,6 @@ void job_stop(Job *job) /// is possible on some OS. int job_wait(Job *job, int ms) FUNC_ATTR_NONNULL_ALL { - // switch to cooked so `got_int` will be set if the user interrupts - int old_mode = cur_tmode; - settmode(TMODE_COOK); - // Increase refcount to stop the job from being freed before we have a // chance to get the status. job->refcount++; @@ -296,8 +291,6 @@ int job_wait(Job *job, int ms) FUNC_ATTR_NONNULL_ALL event_poll(0); } - settmode(old_mode); - if (!--job->refcount) { int status = (int) job->status; // Manually invoke close_cb to free the job resources -- cgit