diff --git a/Numeric/Numeric.cpp b/Numeric/Numeric.cpp index 23db7ae99198b90a3c7b2b3bd42e408e5fddec6f..6c81749e02fe59e3bc8e4cc3831cd1cf1b283713 100644 --- a/Numeric/Numeric.cpp +++ b/Numeric/Numeric.cpp @@ -1,4 +1,4 @@ -// $Id: Numeric.cpp,v 1.5 2003-02-18 05:50:06 geuzaine Exp $ +// $Id: Numeric.cpp,v 1.6 2003-02-18 21:19:13 geuzaine Exp $ // // Copyright (C) 1997 - 2003 C. Geuzaine, J.-F. Remacle // @@ -33,7 +33,14 @@ #if defined(HAVE_GSL) #include <gsl/gsl_version.h> +#include <gsl/gsl_errno.h> + +void new_handler(const char * reason, const char * file, int line, int gsl_errno){ + Msg(GERROR, "GSL: %s (%s, line %d)", reason, file, line); +} + int check_gsl(){ + // check version int major, minor; sscanf(gsl_version, "%d.%d", &major, &minor); if(major < 1 || (major == 1 && minor < 2)){ @@ -41,12 +48,16 @@ int check_gsl(){ Msg(FATAL3, "decomposition code. Please upgrade to version 1.2 or above."); return 0; } + // set new error handler + gsl_set_error_handler(&new_handler); return 1; } #else + int check_gsl(){ return 1; } + #endif // How ? GSL_VERSION is a string "maj.min" or "maj.min.patch"