int PL_w32_wrap_ansi_console(void) { HANDLE hIn = GetStdHandle(STD_INPUT_HANDLE); HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); HANDLE hError = GetStdHandle(STD_ERROR_HANDLE); CONSOLE_SCREEN_BUFFER_INFO info; if ( hIn == INVALID_HANDLE_VALUE || hOut == INVALID_HANDLE_VALUE || hError == INVALID_HANDLE_VALUE || !GetConsoleScreenBufferInfo(hOut, &info) ) return FALSE; saved_functions = Sinput->functions; con_functions = *Sinput->functions; con_functions.read = Sread_win32_console; con_functions.write = write_ansi; con_functions.close = close_ansi; con_functions.control = control_ansi; con_functions.seek = NULL; wrap_console(hIn, Sinput, &con_functions); wrap_console(hOut, Soutput, &con_functions); wrap_console(hError, Serror, &con_functions); init_output(Soutput->handle, &info); init_output(Serror->handle, &info); PL_set_prolog_flag("tty_control", PL_BOOL, TRUE); return TRUE; }
int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) { char * argv[100]; int argc; program = program_name(hInstance); argc = breakargs(program, lpszCmdLine, argv); bind_terminal(); PL_set_prolog_flag("verbose", PL_ATOM, "silent"); /* operate silently */ DEBUG(ok("About to start Prolog with %d arguments", argc)); if ( !PL_initialise(argc, argv) ) { ok("Initialisation failed"); PL_halt(1); } if ( PL_toplevel() ) { PL_halt(0); } else { ok("Toplevel failed"); PL_halt(1); } return 0; }
void setGITVersion(void) { #ifdef GIT_VERSION PL_set_prolog_flag("version_git", PL_ATOM|FF_READONLY, GIT_VERSION); #endif }
static void setupGNUEmacsInferiorMode() { char envbuf[4]; char *s; int val; if ( ((s = Getenv("EMACS", envbuf, sizeof(envbuf))) && s[0]) || ((s = Getenv("INFERIOR", envbuf, sizeof(envbuf))) && streq(s, "yes")) ) { GET_LD clearPrologFlagMask(PLFLAG_TTY_CONTROL); val = TRUE; } else { val = FALSE; } PL_set_prolog_flag("emacs_inferior_process", PL_BOOL|FF_READONLY, val); }
void setOSPrologFlags(void) { PL_set_prolog_flag("cpu_count", PL_INTEGER, CpuCount()); }