author | Petr Sumbera <petr.sumbera@oracle.com> |
Thu, 05 May 2016 07:38:15 -0700 | |
changeset 5994 | af9925efa591 |
permissions | -rw-r--r-- |
5994
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
1 |
Following commit was applied on Gnuplot 4.6.0. It avoids core dump on exit with wxWidgets 3.0. |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
2 |
It can be removed with Gnuplot update to version 5.0 or later. |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
3 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
4 |
https://github.com/gnuplot/gnuplot/commit/40d8c736f742f4c19cc4b5b3b3dc6552c220ae12 |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
5 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
6 |
From 40d8c736f742f4c19cc4b5b3b3dc6552c220ae12 Mon Sep 17 00:00:00 2001 |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
7 |
From: sfeam <sfeam> |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
8 |
Date: Fri, 25 Oct 2013 04:45:22 +0000 |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
9 |
Subject: [PATCH] Add private handlers gp_exit() and gp_atexit() |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
10 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
11 |
diff --git a/src/command.c b/src/command.c |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
12 |
index 2c697ae..8662db1 100644 |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
13 |
--- a/src/command.c |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
14 |
+++ b/src/command.c |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
15 |
@@ -890,7 +890,7 @@ exit_command() |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
16 |
{ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
17 |
/* If the command is "exit gnuplot" then do so */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
18 |
if (equals(c_token+1,"gnuplot")) |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
19 |
- exit(0); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
20 |
+ gp_exit(EXIT_SUCCESS); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
21 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
22 |
/* else graphics will be tidied up in main */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
23 |
command_exit_status = 1; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
24 |
@@ -2269,7 +2269,7 @@ void |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
25 |
done(int status) |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
26 |
{ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
27 |
term_reset(); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
28 |
- exit(status); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
29 |
+ gp_exit(status); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
30 |
} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
31 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
32 |
/* please note that the vms version of read_line doesn't support variable line |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
33 |
diff --git a/src/plot.c b/src/plot.c |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
34 |
index 96266b5..de3e24a 100644 |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
35 |
--- a/src/plot.c |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
36 |
+++ b/src/plot.c |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
37 |
@@ -432,7 +432,7 @@ main(int argc, char **argv) |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
38 |
/* reset the terminal when exiting */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
39 |
/* this is done through gp_atexit so that other terminal functions |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
40 |
* can be registered to be executed before the terminal is reset. */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
41 |
- GP_ATEXIT(term_reset); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
42 |
+ gp_atexit(term_reset); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
43 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
44 |
# if defined(_Windows) && ! defined(WGP_CONSOLE) |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
45 |
interactive = TRUE; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
46 |
@@ -569,7 +569,7 @@ main(int argc, char **argv) |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
47 |
* In case you don't have one of these functions, or you don't |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
48 |
* want to use them, 'write_history()' is called directly. |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
49 |
*/ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
50 |
- GP_ATEXIT(wrapper_for_write_history); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
51 |
+ gp_atexit(wrapper_for_write_history); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
52 |
#endif /* GNUPLOT_HISTORY */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
53 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
54 |
fprintf(stderr, "\nTerminal type set to '%s'\n", term->name); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
55 |
@@ -611,7 +611,7 @@ main(int argc, char **argv) |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
56 |
#endif /* VMS */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
57 |
if (!interactive && !noinputfiles) { |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
58 |
term_reset(); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
59 |
- exit(EXIT_FAILURE); /* exit on non-interactive error */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
60 |
+ gp_exit(EXIT_FAILURE); /* exit on non-interactive error */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
61 |
} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
62 |
} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
63 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
64 |
@@ -642,12 +642,13 @@ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
65 |
--argc; ++argv; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
66 |
if (argc <= 0) { |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
67 |
fprintf(stderr, "syntax: gnuplot -e \"commands\"\n"); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
68 |
- return 0; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
69 |
+ gp_exit(EXIT_FAILURE); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
70 |
} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
71 |
do_string(*argv); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
72 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
73 |
} else { |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
74 |
load_file(loadpath_fopen(*argv, "r"), gp_strdup(*argv), FALSE); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
75 |
+ gp_exit(EXIT_SUCCESS); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
76 |
} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
77 |
} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
78 |
#ifdef _Windows |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
79 |
@@ -674,6 +674,10 @@ main(int argc, char **argv) |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
80 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
81 |
/* HBB 20040223: Not all compilers like exit() to end main() */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
82 |
/* exit(exit_status); */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
83 |
+#if ! defined(_Windows) |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
84 |
+ /* Windows does the cleanup later */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
85 |
+ gp_exit_cleanup(); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
86 |
+#endif |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
87 |
return exit_status; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
88 |
} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
89 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
90 |
diff --git a/src/stdfn.c b/src/stdfn.c |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
91 |
index 14526ca..914c7c1 100644 |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
92 |
--- a/src/stdfn.c |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
93 |
+++ b/src/stdfn.c |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
94 |
@@ -384,6 +384,80 @@ char * gp_basename(char *path) |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
95 |
return path; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
96 |
} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
97 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
98 |
+#ifdef HAVE_ATEXIT |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
99 |
+# define GP_ATEXIT(x) atexit((x)) |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
100 |
+#elif defined(HAVE_ON_EXIT) |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
101 |
+# define GP_ATEXIT(x) on_exit((x),0) |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
102 |
+#else |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
103 |
+# define GP_ATEXIT(x) /* you lose */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
104 |
+#endif |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
105 |
+ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
106 |
+struct EXIT_HANDLER { |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
107 |
+ void (*function)(void); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
108 |
+ struct EXIT_HANDLER* next; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
109 |
+}; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
110 |
+ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
111 |
+static struct EXIT_HANDLER* exit_handlers = NULL; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
112 |
+ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
113 |
+/* Calls the cleanup functions registered using gp_atexit(). |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
114 |
+ * Normally gnuplot should be exited using gp_exit(). In some cases, this is not |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
115 |
+ * possible (notably when returning from main(), where some compilers get |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
116 |
+ * confused because they expect a return statement at the very end. In that |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
117 |
+ * case, gp_exit_cleanup() should be called before the return statement. |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
118 |
+ */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
119 |
+void gp_exit_cleanup(void) |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
120 |
+{ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
121 |
+ /* Call exit handlers registered using gp_atexit(). This is used instead of |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
122 |
+ * normal atexit-handlers, because some libraries (notably Qt) seem to have |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
123 |
+ * problems with the destruction order when some objects are only destructed |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
124 |
+ * on atexit(3). Circumvent this problem by calling the gnuplot |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
125 |
+ * atexit-handlers, before any global destructors are run. |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
126 |
+ */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
127 |
+ while (exit_handlers) { |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
128 |
+ struct EXIT_HANDLER* handler = exit_handlers; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
129 |
+ (*handler->function)(); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
130 |
+ /* note: assumes that function above has not called gp_atexit() */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
131 |
+ exit_handlers = handler->next; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
132 |
+ free(handler); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
133 |
+ } |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
134 |
+} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
135 |
+ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
136 |
+/* Called from exit(3). Verifies that all exit handlers have already been |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
137 |
+ * called. |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
138 |
+ */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
139 |
+static void debug_exit_handler(void) |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
140 |
+{ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
141 |
+ if (exit_handlers) { |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
142 |
+ fprintf(stderr, "Gnuplot not exited using gp_exit(). Exit handlers may" |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
143 |
+ "not work correctly!\n"); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
144 |
+ gp_exit_cleanup(); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
145 |
+ } |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
146 |
+} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
147 |
+ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
148 |
+/* Gnuplot replacement for atexit(3) */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
149 |
+void gp_atexit(void (*function)(void)) |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
150 |
+{ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
151 |
+ /* Register new handler */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
152 |
+ static bool debug_exit_handler_registered = false; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
153 |
+ struct EXIT_HANDLER* new_handler = (struct EXIT_HANDLER*) malloc(sizeof(struct EXIT_HANDLER)); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
154 |
+ new_handler->function = function; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
155 |
+ new_handler->next = exit_handlers; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
156 |
+ exit_handlers = new_handler; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
157 |
+ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
158 |
+ if (!debug_exit_handler_registered) { |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
159 |
+ GP_ATEXIT(debug_exit_handler); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
160 |
+ debug_exit_handler_registered = true; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
161 |
+ } |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
162 |
+} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
163 |
+ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
164 |
+/* Gnuplot replacement for exit(3). Calls the functions registered using |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
165 |
+ * gp_atexit(). Always use this function instead of exit(3)! |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
166 |
+ */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
167 |
+void gp_exit(int status) |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
168 |
+{ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
169 |
+ gp_exit_cleanup(); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
170 |
+ exit(status); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
171 |
+} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
172 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
173 |
#if !defined(HAVE_DIRENT_H) && defined(WIN32) && (!defined(__WATCOMC__)) |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
174 |
/* BM: OpenWatcom has dirent functions in direct.h!*/ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
175 |
diff --git a/src/stdfn.h b/src/stdfn.h |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
176 |
index 9b2be3d..1224f57 100644 |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
177 |
--- a/src/stdfn.h |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
178 |
+++ b/src/stdfn.h |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
179 |
@@ -370,13 +370,21 @@ size_t strnlen __PROTO((const char *str, size_t n)); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
180 |
# define GP_SLEEP(delay) sleep ((unsigned int) (delay+0.5)) |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
181 |
#endif |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
182 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
183 |
-#ifdef HAVE_ATEXIT |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
184 |
-# define GP_ATEXIT(x) atexit((x)) |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
185 |
-#elif defined(HAVE_ON_EXIT) |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
186 |
-# define GP_ATEXIT(x) on_exit((x),0) |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
187 |
-#else |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
188 |
-# define GP_ATEXIT(x) /* you lose */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
189 |
-#endif |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
190 |
+/* Gnuplot replacement for atexit(3) */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
191 |
+void gp_atexit __PROTO((void (*function)(void))); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
192 |
+ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
193 |
+/* Gnuplot replacement for exit(3). Calls the functions registered using |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
194 |
+ * gp_atexit(). Always use this function instead of exit(3)! |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
195 |
+ */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
196 |
+void gp_exit __PROTO((int status)); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
197 |
+ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
198 |
+/* Calls the cleanup functions registered using gp_atexit(). |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
199 |
+ * Normally gnuplot should be exited using gp_exit(). In some cases, this is not |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
200 |
+ * possible (notably when returning from main(), where some compilers get |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
201 |
+ * confused because they expect a return statement at the very end. In that |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
202 |
+ * case, gp_exit_cleanup() should be called before the return statement. |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
203 |
+ */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
204 |
+void gp_exit_cleanup __PROTO((void)); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
205 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
206 |
char * gp_basename __PROTO((char *path)); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
207 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
208 |
diff --git a/src/wxterminal/gp_cairo.c b/src/wxterminal/gp_cairo.c |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
209 |
index cc5a54a..35227fd 100644 |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
210 |
--- a/src/wxterminal/gp_cairo.c |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
211 |
+++ b/src/wxterminal/gp_cairo.c |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
212 |
@@ -1724,7 +1724,7 @@ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
213 |
if (cairo_status (plot->cr)) { |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
214 |
printf("Cairo is unhappy: %s\n", |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
215 |
cairo_status_to_string (cairo_status (plot->cr))); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
216 |
- exit(0); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
217 |
+ gp_exit(EXIT_FAILURE); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
218 |
} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
219 |
cairo_set_source_rgb(plot->cr, plot->background.r, plot->background.g, plot->background.b); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
220 |
cairo_paint(plot->cr); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
221 |
@@ -1735,7 +1735,7 @@ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
222 |
if (cairo_status (plot->cr)) { |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
223 |
printf("Cairo is unhappy: %s\n", |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
224 |
cairo_status_to_string (cairo_status (plot->cr))); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
225 |
- exit(0); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
226 |
+ gp_exit(EXIT_FAILURE); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
227 |
} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
228 |
cairo_set_source_rgba(plot->cr, 0.0, 0.0, 0.0, 0.0); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
229 |
cairo_paint(plot->cr); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
230 |
diff --git a/src/wxterminal/gp_cairo_helpers.c b/src/wxterminal/gp_cairo_helpers.c |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
231 |
index 76f773c..eb38f65 100644 |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
232 |
--- a/src/wxterminal/gp_cairo_helpers.c |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
233 |
+++ b/src/wxterminal/gp_cairo_helpers.c |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
234 |
@@ -61,7 +61,7 @@ unsigned int * gp_cairo_helper_coordval_to_chars(coordval* image, int M, int N, |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
235 |
/* cairo image buffer, upper bits are alpha, then r, g and b |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
236 |
* Depends on endianess */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
237 |
image255 = (unsigned int*) malloc(M*N*sizeof(unsigned int)); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
238 |
- if (!image255) { fprintf(stderr,"cairo terminal: out of memory!\n"); exit(-1);} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
239 |
+ if (!image255) { fprintf(stderr,"cairo terminal: out of memory!\n"); gp_exit(EXIT_FAILURE);} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
240 |
image255copy = image255; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
241 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
242 |
/* TrueColor 24-bit plot->color mode */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
243 |
diff --git a/src/wxterminal/wxt_gui.cpp b/src/wxterminal/wxt_gui.cpp |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
244 |
index 3f6cb53..105340b 100644 |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
245 |
--- a/src/wxterminal/wxt_gui.cpp |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
246 |
+++ b/src/wxterminal/wxt_gui.cpp |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
247 |
@@ -1566,7 +1566,7 @@ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
248 |
if (!wxInitialize()) { |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
249 |
fprintf(stderr,"Failed to initialize wxWidgets.\n"); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
250 |
wxt_abort_init = true; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
251 |
- return; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
252 |
+ gp_exit(EXIT_FAILURE); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
253 |
} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
254 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
255 |
/* app initialization */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
256 |
@@ -1600,7 +1600,7 @@ void wxt_init() |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
257 |
term_interlock = (void *)wxt_init; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
258 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
259 |
/* register call for "persist" effect and cleanup */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
260 |
- GP_ATEXIT(wxt_atexit); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
261 |
+ gp_atexit(wxt_atexit); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
262 |
} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
263 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
264 |
wxt_sigint_check(); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
265 |
--- a/term/be.trm |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
266 |
+++ b/term/be.trm |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
267 |
@@ -165,7 +165,7 @@ BE_args(int argc, char *argv[]) |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
268 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
269 |
if (!xargv) { |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
270 |
fputs ("not enough memory to copy argv - quitting\n", stderr); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
271 |
- exit (EXIT_FAILURE); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
272 |
+ gp_exit (EXIT_FAILURE); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
273 |
} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
274 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
275 |
/* We make a copy of the argument vector because |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
276 |
@@ -231,7 +231,7 @@ BE_init() |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
277 |
execvp(BE_command, optvec); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
278 |
/* if we get here, something went wrong */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
279 |
perror("exec failed"); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
280 |
- exit(1); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
281 |
+ gp_exit(EXIT_FAILURE); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
282 |
} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
283 |
/* parent */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
284 |
close(fdes[0]); /* read end of pipe */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
285 |
@@ -239,7 +239,7 @@ BE_init() |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
286 |
} { |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
287 |
static int been_here = 0; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
288 |
if (!been_here) { |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
289 |
- atexit(BE_atexit); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
290 |
+ gp_atexit(BE_atexit); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
291 |
been_here = 1; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
292 |
} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
293 |
} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
294 |
diff --git a/term/x11.trm b/term/x11.trm |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
295 |
index b0c5d1c..1e68684 100644 |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
296 |
--- a/term/x11.trm |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
297 |
+++ b/term/x11.trm |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
298 |
@@ -1004,7 +1004,7 @@ X11_init() |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
299 |
fprintf(stderr,"Expected X11 driver: %s\n",X11_full_command_path); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
300 |
perror("Exec failed"); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
301 |
fprintf(stderr,"See 'help x11' for more details\n"); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
302 |
- exit(EXIT_FAILURE); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
303 |
+ gp_exit(EXIT_FAILURE); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
304 |
} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
305 |
/* parent */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
306 |
# ifdef PIPE_IPC |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
307 |
@@ -1037,7 +1037,7 @@ X11_init() |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
308 |
} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
309 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
310 |
if (!been_here) { |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
311 |
- GP_ATEXIT(X11_atexit); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
312 |
+ gp_atexit(X11_atexit); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
313 |
been_here++; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
314 |
} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
315 |
X11_send_endianess(); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
316 |
@@ -1101,7 +1101,7 @@ X11_reset() |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
317 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
318 |
#define BEFORE_GRAPHICS \ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
319 |
if (!(X11_ipc = fopen(X11_tmp0, "w"))) { \ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
320 |
- perror(X11_tmp0); system(X11_shutdown); exit(1); \ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
321 |
+ perror(X11_tmp0); system(X11_shutdown); gp_exit(EXIT_FAILURE); \ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
322 |
} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
323 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
324 |
#define AFTER_TEXT \ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
325 |
@@ -1229,7 +1229,7 @@ X11_init() |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
326 |
{ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
327 |
static int been_here = 0; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
328 |
if (!been_here) { |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
329 |
- GP_ATEXIT(X11_atexit); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
330 |
+ gp_atexit(X11_atexit); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
331 |
been_here = 1; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
332 |
} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
333 |
} |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
334 |
@@ -1252,7 +1252,7 @@ do { \ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
335 |
} \ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
336 |
status = sys$qiow(0, X11_channel, IO$_WRITEVBLK, &iosb, 0, 0, buffer, strlen(buffer), 0, 0, 0, 0); \ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
337 |
if ((status & SS$_NORMAL) == SS$_NORMAL) status = iosb.stat; \ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
338 |
- if((status & SS$_NORMAL) != SS$_NORMAL) exit(status); \ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
339 |
+ if((status & SS$_NORMAL) != SS$_NORMAL) gp_exit(status); \ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
340 |
} while (0) |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
341 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
342 |
#define PRINT0(fmt) GO((buffer, fmt)) |