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 <gsl/gsl_errno.h> |
26 | #include <gsl/gsl_message.h> |
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) |
| 8Enter function.    gsl_error("invalid length", "/home/xingming/workplace/experiment/fp/gsl-2.1/blas/blas.c", 107, GSL_EBADLEN) |
34 | { |
35 | if (gsl_error_handler) |
| 9Take the true branch.    gsl_error_handler |
36 | { |
37 | (*gsl_error_handler) (reason, file, line, gsl_errno); |
38 | return ; |
39 | } |
40 | |
41 | gsl_stream_printf ("ERROR", file, line, reason); |
42 | |
43 | fflush (stdout); |
44 | fprintf (stderr, "Default GSL error handler invoked.\n"); |
45 | fflush (stderr); |
46 | |
47 | abort (); |
48 | } |
| 10Exit function.    gsl_error("invalid length", "/home/xingming/workplace/experiment/fp/gsl-2.1/blas/blas.c", 107, GSL_EBADLEN) |
49 | |
50 | gsl_error_handler_t * |
51 | gsl_set_error_handler (gsl_error_handler_t * new_handler) |
52 | { |
53 | gsl_error_handler_t * previous_handler = gsl_error_handler; |
54 | gsl_error_handler = new_handler; |
55 | return previous_handler; |
56 | } |
57 | |
58 | |
59 | gsl_error_handler_t * |
60 | gsl_set_error_handler_off (void) |
61 | { |
62 | gsl_error_handler_t * previous_handler = gsl_error_handler; |
63 | gsl_error_handler = no_error_handler; |
64 | return previous_handler; |
65 | } |
66 | |
67 | static void |
68 | no_error_handler (const char *reason, const char *file, int line, int gsl_errno) |
69 | { |
70 | /* do nothing */ |
71 | reason = 0; |
72 | file = 0; |
73 | line = 0; |
74 | gsl_errno = 0; |
75 | return; |
76 | } |
77 | |
78 | |
79 | |