diff options
author | James Bursa <james@netsurf-browser.org> | 2005-12-11 21:55:25 +0000 |
---|---|---|
committer | James Bursa <james@netsurf-browser.org> | 2005-12-11 21:55:25 +0000 |
commit | 8552f3481625ebc278cf693d33c9dba561c5d9ef (patch) | |
tree | 68aeee2859008c5976899ce9768a8b06f79396a4 /riscos | |
parent | 666cdaf8dd6f92c552bf63ead14ab16aa0193a0b (diff) | |
download | netsurf-8552f3481625ebc278cf693d33c9dba561c5d9ef.tar.gz netsurf-8552f3481625ebc278cf693d33c9dba561c5d9ef.tar.bz2 |
[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
Diffstat (limited to 'riscos')
-rw-r--r-- | riscos/assert.c | 46 |
1 files changed, 46 insertions, 0 deletions
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 <bursa@users.sourceforge.net> + */ + +/** \file + * Assert reporting (RISC OS implementation). + */ + +#include <assert.h> +#include <stdio.h> +#include <stdlib.h> +#include <oslib/wimp.h> + + +/** + * 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 <Wimp$ScrapDir>.WWW.NetSurf.Log"); + + abort(); +} |