Annotation of OpenXM/src/hgm/gsl-t-1/src/t-error.c, Revision 1.2
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"
26:
27: gsl_error_handler_t * gsl_error_handler = NULL;
28:
29: static void no_error_handler (const char *reason, const char *file, int line, int gsl_errno);
30:
31: void
32: gsl_error (const char * reason, const char * file, int line, int gsl_errno)
33: {
34: if (gsl_error_handler)
35: {
36: (*gsl_error_handler) (reason, file, line, gsl_errno);
37: return ;
38: }
39:
40: fprintf (stderr,"ERROR file %s, line %d, code %d", file, (int) line, (int) reason);
41:
42: fflush (stdout);
43: fprintf (stderr, "Default GSL error handler invoked.\n");
44: fflush (stderr);
45:
1.2 ! takayama 46: /* abort (); */
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>