Annotation of OpenXM/src/hgm/gsl-t-1/src/t-error.c, Revision 1.3
1.1 takayama 1: /* err/error.c
2: *
3: * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2007 Gerard Jungman, Brian Gough
4: *
5: * This program is free software; you can redistribute it and/or modify
6: * it under the terms of the GNU General Public License as published by
7: * the Free Software Foundation; either version 3 of the License, or (at
8: * your option) any later version.
9: *
10: * This program is distributed in the hope that it will be useful, but
11: * WITHOUT ANY WARRANTY; without even the implied warranty of
12: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13: * General Public License for more details.
14: *
15: * You should have received a copy of the GNU General Public License
16: * along with this program; if not, write to the Free Software
17: * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18: */
19:
20: #include "config.h"
21: #include <stddef.h>
22: #include <stdlib.h>
23: #include <stdio.h>
24:
25: #include "t-gsl_errno.h"
1.3 ! takayama 26: #include "oxprint.h"
1.1 takayama 27:
28: gsl_error_handler_t * gsl_error_handler = NULL;
29:
30: static void no_error_handler (const char *reason, const char *file, int line, int gsl_errno);
31:
32: void
33: gsl_error (const char * reason, const char * file, int line, int gsl_errno)
34: {
35: if (gsl_error_handler)
36: {
37: (*gsl_error_handler) (reason, file, line, gsl_errno);
38: return ;
39: }
40:
1.3 ! takayama 41: oxprintfe("ERROR file %s, line %d, code %d", file, (int) line, (int) reason);
1.1 takayama 42:
1.3 ! takayama 43: oxprintfe("Default GSL error handler invoked.\n");
! 44: oxflush();
1.1 takayama 45:
1.3 ! takayama 46: oxabort();
1.1 takayama 47: }
48:
49: gsl_error_handler_t *
50: gsl_set_error_handler (gsl_error_handler_t * new_handler)
51: {
52: gsl_error_handler_t * previous_handler = gsl_error_handler;
53: gsl_error_handler = new_handler;
54: return previous_handler;
55: }
56:
57:
58: gsl_error_handler_t *
59: gsl_set_error_handler_off (void)
60: {
61: gsl_error_handler_t * previous_handler = gsl_error_handler;
62: gsl_error_handler = no_error_handler;
63: return previous_handler;
64: }
65:
66: static void
67: no_error_handler (const char *reason, const char *file, int line, int gsl_errno)
68: {
69: /* do nothing */
70: reason = 0;
71: file = 0;
72: line = 0;
73: gsl_errno = 0;
74: return;
75: }
76:
77:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>