Sat, 27 Apr 2019 21:36:01 +0000
Merged in default (pull request #53)
Fix Windows compile
Approved-by: Gary Kramlich
--- a/gntfilesel.c Fri Apr 26 23:20:32 2019 -0400 +++ b/gntfilesel.c Sat Apr 27 21:36:01 2019 +0000 @@ -193,7 +193,7 @@ while ((str = g_dir_read_name(dir)) != NULL) { char *fp = g_build_filename(path, str, NULL); - struct stat st; + GStatBuf st; if (g_stat(fp, &st)) { gnt_warning("Error stating location %s", fp);
--- a/gntmain.c Fri Apr 26 23:20:32 2019 -0400 +++ b/gntmain.c Sat Apr 27 21:36:01 2019 +0000 @@ -533,6 +533,21 @@ static void (*org_winch_handler_sa)(int, siginfo_t *, void *); #endif +#ifdef _WIN32 +static BOOL WINAPI +CtrlHandler(DWORD fdwCtrlType) +{ + switch (fdwCtrlType) { + case CTRL_C_EVENT: + case CTRL_CLOSE_EVENT: + ask_before_exit(); + return TRUE; + + default: + return FALSE; + } +} +#else static void sighandler(int sig, siginfo_t *info, void *data) { @@ -557,6 +572,7 @@ break; } } +#endif static void init_wm(void) @@ -581,10 +597,12 @@ { char *filename; const char *locale; +#ifndef _WIN32 struct sigaction act; #ifdef SIGWINCH struct sigaction oact; #endif +#endif if (channel) return; @@ -636,6 +654,9 @@ werase(stdscr); wrefresh(stdscr); +#ifdef _WIN32 + SetConsoleCtrlHandler(CtrlHandler, TRUE); +#else act.sa_sigaction = sighandler; sigemptyset(&act.sa_mask); act.sa_flags = SA_SIGINFO; @@ -656,6 +677,7 @@ sigaction(SIGCHLD, &act, NULL); sigaction(SIGINT, &act, NULL); signal(SIGPIPE, SIG_IGN); +#endif init_wm(); refresh_screen();