From 8552f3481625ebc278cf693d33c9dba561c5d9ef Mon Sep 17 00:00:00 2001 From: James Bursa Date: Sun, 11 Dec 2005 21:55:25 +0000 Subject: [project @ 2005-12-11 21:55:25 by bursa] Show an error box when assert() fails instead of exiting suddenly. svn path=/import/netsurf/; revision=1897 --- riscos/assert.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 riscos/assert.c (limited to 'riscos/assert.c') diff --git a/riscos/assert.c b/riscos/assert.c new file mode 100644 index 000000000..96309bcef --- /dev/null +++ b/riscos/assert.c @@ -0,0 +1,46 @@ +/* + * This file is part of NetSurf, http://netsurf.sourceforge.net/ + * Licensed under the GNU General Public License, + * http://www.opensource.org/licenses/gpl-license + * Copyright 2005 James Bursa + */ + +/** \file + * Assert reporting (RISC OS implementation). + */ + +#include +#include +#include +#include + + +/** + * Report an assert() failure and exit. + */ + +void __assert2(const char *expr, const char *function, const char *file, + int line) +{ + 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." }; + + fprintf(stderr, "\n\"%s\", line %d: %s%sAssertion failed: %s\n", + file, line, + function ? function : "", + function ? ": " : "", + expr); + fflush(stderr); + + 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 .WWW.NetSurf.Log"); + + abort(); +} -- cgit v1.2.3