File: coqide_WIN32.c.in

package info (click to toggle)
coq 8.16.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 40,596 kB
  • sloc: ml: 219,376; sh: 3,545; python: 3,231; ansic: 2,529; makefile: 767; lisp: 279; javascript: 63; xml: 24; sed: 2
file content (21 lines) | stat: -rw-r--r-- 772 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#define _WIN32_WINNT 0x0501  /* Cf below, we restrict to  */

#include <caml/mlvalues.h>
#include <caml/memory.h>
#include <windows.h>

/* Win32 emulation of a kill -2 (SIGINT) */

/* It appears that the documentation for SetConsoleCtrlHandler used in the
   prior code (f5276a11) is incorrect.  When it's present, it causes some of
   the strange behavior described in #13550.
   
   This code signals all processes in the process group (multiple coqidetops) and coqide.
   because the console is shared.  Coqide.win_interrupt is used to ignore the signal sent
   to CoqIDE. */

CAMLprim value win32_interrupt(value pseudopid) {
  CAMLparam1(pseudopid);
  GenerateConsoleCtrlEvent(CTRL_C_EVENT,0); /* signal each process in the process group */
  CAMLreturn(Val_unit);
}