fix(termdebug): send SIGINT when interrupting prompt mode

Unlike Vim's job_stop(), Nvim's jobstop() does not take a signal argument, and
always sends SIGTERM/KILL.

:Stop and Ctrl-C in prompt mode is supposed to interrupt the program like in
terminal mode, not kill GDB.

Also, maybe libuv's kill() works on Windows? If so, the logic above could be
removed, but I don't have a Windows machine available to test that.

Also "set nomodified" when ending prompt mode, like Vim (avoids E37).
This commit is contained in:
Sean Dewar 2023-08-22 22:39:29 +01:00
parent 21477bdb27
commit 8aad4b8425
No known key found for this signature in database
GPG Key ID: 08CC2C83AD41B581

View File

@ -624,7 +624,7 @@ func s:PromptInterrupt()
call debugbreak(s:pid)
endif
else
call jobstop(s:gdbjob)
call v:lua.vim.uv.kill(jobpid(s:gdbjob), 'sigint')
endif
endfunc
@ -821,6 +821,7 @@ func s:EndPromptDebug(job_id, exit_code, event)
let curwinid = win_getid()
call win_gotoid(s:gdbwin)
set nomodified
close
if curwinid != s:gdbwin
call win_gotoid(curwinid)