summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Bursa <james@netsurf-browser.org>2006-12-31 21:04:14 +0000
committerJames Bursa <james@netsurf-browser.org>2006-12-31 21:04:14 +0000
commit3d09fed0af65ba1dc295573ecd7bf9385aec5186 (patch)
tree68beed3ef40a6df7530f848dde639f91a5e586c7
parentf4b8d3a0091a4a3a3d0d0bab5a683cb7600b66e5 (diff)
downloadnetsurf-3d09fed0af65ba1dc295573ecd7bf9385aec5186.tar.gz
netsurf-3d09fed0af65ba1dc295573ecd7bf9385aec5186.tar.bz2
Display an error box when exiting due to a SIGFPE or SIGABRT.
svn path=/trunk/netsurf/; revision=3127
-rw-r--r--riscos/gui.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/riscos/gui.c b/riscos/gui.c
index 534c02088..96dc39e14 100644
--- a/riscos/gui.c
+++ b/riscos/gui.c
@@ -771,10 +771,20 @@ void ro_gui_signal(int sig)
{
struct content *c;
void (*prev_handler)(int);
+ static const os_error error = { 1, "NetSurf has detected a serious "
+ "error and must exit. Please submit a bug report, "
+ "attaching the browser log file." };
if (sig == SIGFPE || sig == SIGABRT) {
os_colour old_sand, old_glass;
+ xwimp_report_error_by_category(&error,
+ wimp_ERROR_BOX_GIVEN_CATEGORY |
+ wimp_ERROR_BOX_CATEGORY_ERROR <<
+ wimp_ERROR_BOX_CATEGORY_SHIFT,
+ "NetSurf", "!netsurf",
+ (osspriteop_area *) 1, "Quit", 0);
+ xos_cli("Filer_Run <Wimp$ScrapDir>.WWW.NetSurf.Log");
xhourglass_on();
xhourglass_colours(0x0000ffff, 0x000000ff,
&old_sand, &old_glass);
@@ -784,7 +794,7 @@ void ro_gui_signal(int sig)
box_dump(c->data.html.layout, 0);
}
options_dump();
- rufl_dump_state();
+ /*rufl_dump_state();*/
xhourglass_colours(old_sand, old_glass, 0, 0);
xhourglass_off();
}
@@ -2234,6 +2244,8 @@ void die(const char * const error)
{
os_error warn_error;
+ LOG(("%s", error));
+
warn_error.errnum = 1; /* \todo: reasonable ? */
strncpy(warn_error.errmess, messages_get(error),
sizeof(warn_error.errmess)-1);