Merged in default (pull request #53)

Sat, 27 Apr 2019 21:36:01 +0000

author
Gary Kramlich <grim@reaperworld.com>
date
Sat, 27 Apr 2019 21:36:01 +0000
changeset 1249
1eaceab078ca
parent 1246
ed6fc082cc5a (current diff)
parent 1248
19c1a4a2e5cc (diff)
child 1252
4e0a440980ba

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();

mercurial