diff options
Diffstat (limited to 'fuzzylite/src/main.cpp')
-rw-r--r-- | fuzzylite/src/main.cpp | 73 |
1 files changed, 26 insertions, 47 deletions
diff --git a/fuzzylite/src/main.cpp b/fuzzylite/src/main.cpp index 6d8d701..06ca139 100644 --- a/fuzzylite/src/main.cpp +++ b/fuzzylite/src/main.cpp @@ -1,70 +1,49 @@ /* - Author: Juan Rada-Vilela, Ph.D. - Copyright (C) 2010-2014 FuzzyLite Limited - All rights reserved + fuzzylite (R), a fuzzy logic control library in C++. + Copyright (C) 2010-2017 FuzzyLite Limited. All rights reserved. + Author: Juan Rada-Vilela, Ph.D. <jcrada@fuzzylite.com> This file is part of fuzzylite. fuzzylite is free software: you can redistribute it and/or modify it under - the terms of the GNU Lesser General Public License as published by the Free - Software Foundation, either version 3 of the License, or (at your option) - any later version. + the terms of the FuzzyLite License included with the software. - fuzzylite is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public License - along with fuzzylite. If not, see <http://www.gnu.org/licenses/>. - - fuzzyliteâ„¢ is a trademark of FuzzyLite Limited. + You should have received a copy of the FuzzyLite License along with + fuzzylite. If not, see <http://www.fuzzylite.com/license/>. + fuzzylite is a registered trademark of FuzzyLite Limited. */ #include "fl/Headers.h" -#include <cstdlib> #include <fstream> -#include <iomanip> -#include <signal.h> -#include <typeinfo> - -using namespace fl; - -/* -#ifdef FL_WINDOWS -#include <windows.h> -BOOL WINAPI flSignalHandler(DWORD dwCtrlType) -{ - FL_LOG("Signal: " << dwCtrlType); - if (CTRL_C_EVENT == dwCtrlType){ - } - //return FALSE; - return TRUE; -} -#endif - */ +#include <csignal> -int main(int argc, char** argv) { - (void) argc; - (void) argv; +int main(int argc, const char* argv[]) { std::set_terminate(fl::Exception::terminate); std::set_unexpected(fl::Exception::terminate); - signal(SIGSEGV, fl::Exception::signalHandler); - signal(SIGABRT, fl::Exception::signalHandler); - signal(SIGILL, fl::Exception::signalHandler); - signal(SIGSEGV, fl::Exception::signalHandler); - signal(SIGFPE, fl::Exception::signalHandler); + ::signal(SIGSEGV, fl::Exception::signalHandler); + ::signal(SIGABRT, fl::Exception::signalHandler); + ::signal(SIGILL, fl::Exception::signalHandler); + ::signal(SIGSEGV, fl::Exception::signalHandler); + ::signal(SIGFPE, fl::Exception::signalHandler); #ifdef FL_UNIX - signal(SIGBUS, fl::Exception::signalHandler); - signal(SIGPIPE, fl::Exception::signalHandler); + ::signal(SIGBUS, fl::Exception::signalHandler); + ::signal(SIGPIPE, fl::Exception::signalHandler); #endif #ifdef FL_WINDOWS //SetConsoleCtrlHandler(flSignalHandler, TRUE); #endif - fuzzylite::setDebug(false); - return Console::main(argc, argv); + fl::fuzzylite::setDebugging(false); + + try { + fl::Console::main(argc, argv); + } catch (std::exception& ex) { + std::cout << ex.what() << "\nBACKTRACE:\n" << + fl::Exception::btCallStack() << std::endl; + return EXIT_FAILURE; + } + return EXIT_SUCCESS; } |