mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
parent
a1b0f594ea
commit
933c873cae
@ -481,10 +481,9 @@ describe('jobs', function()
|
||||
eq('rows: 40, cols: 10', next_chunk())
|
||||
end)
|
||||
|
||||
it('calling jobclose()', function()
|
||||
-- this should send SIGHUP to the process
|
||||
it('jobclose() sends SIGHUP', function()
|
||||
nvim('command', 'call jobclose(j)')
|
||||
eq({'notification', 'exit', {0, 1}}, next_msg())
|
||||
eq({'notification', 'exit', {0, 42}}, next_msg())
|
||||
end)
|
||||
end)
|
||||
end)
|
||||
|
@ -32,11 +32,21 @@ static void walk_cb(uv_handle_t *handle, void *arg) {
|
||||
}
|
||||
|
||||
#ifndef WIN32
|
||||
static void sigwinch_handler(int signum)
|
||||
static void sig_handler(int signum)
|
||||
{
|
||||
int width, height;
|
||||
uv_tty_get_winsize(&tty, &width, &height);
|
||||
fprintf(stderr, "rows: %d, cols: %d\n", height, width);
|
||||
switch(signum) {
|
||||
case SIGWINCH: {
|
||||
int width, height;
|
||||
uv_tty_get_winsize(&tty, &width, &height);
|
||||
fprintf(stderr, "rows: %d, cols: %d\n", height, width);
|
||||
return;
|
||||
}
|
||||
case SIGHUP:
|
||||
exit(42); // arbitrary exit code to test against
|
||||
return;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -141,7 +151,8 @@ int main(int argc, char **argv)
|
||||
struct sigaction sa;
|
||||
sigemptyset(&sa.sa_mask);
|
||||
sa.sa_flags = 0;
|
||||
sa.sa_handler = sigwinch_handler;
|
||||
sa.sa_handler = sig_handler;
|
||||
sigaction(SIGHUP, &sa, NULL);
|
||||
sigaction(SIGWINCH, &sa, NULL);
|
||||
// uv_signal_t sigwinch_watcher;
|
||||
// uv_signal_init(uv_default_loop(), &sigwinch_watcher);
|
||||
@ -150,5 +161,8 @@ int main(int argc, char **argv)
|
||||
#endif
|
||||
uv_run(uv_default_loop(), UV_RUN_DEFAULT);
|
||||
|
||||
// XXX: Without this the SIGHUP handler is skipped on some systems.
|
||||
sleep(100);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user