diff --git a/src/system/FatalError.cxx b/src/system/FatalError.cxx deleted file mode 100644 index 75ab636b3..000000000 --- a/src/system/FatalError.cxx +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright 2003-2021 The Music Player Daemon Project - * http://www.musicpd.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#include "FatalError.hxx" -#include "util/Domain.hxx" -#include "LogV.hxx" - -#include -#include -#include -#include - -#ifdef _WIN32 -#include // for GetLastError() -#include // for HWND (needed by winbase.h) -#include // for FormatMessageA() -#else -#include -#endif - -static constexpr Domain fatal_error_domain("fatal_error"); - -[[noreturn]] -static void -Abort() -{ - std::_Exit(EXIT_FAILURE); -} - -void -FatalError(const char *msg) -{ - LogError(fatal_error_domain, msg); - Abort(); -} - -void -FormatFatalError(const char *fmt, ...) -{ - std::va_list ap; - va_start(ap, fmt); - LogFormatV(LogLevel::ERROR, fatal_error_domain, fmt, ap); - va_end(ap); - - Abort(); -} - -#ifdef _WIN32 - -void -FatalSystemError(const char *msg, DWORD code) -{ - char buffer[256]; - FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - nullptr, code, 0, - buffer, sizeof(buffer), nullptr); - FormatFatalError("%s: %s", msg, buffer); -} - -#endif - -void -FatalSystemError(const char *msg) -{ -#ifdef _WIN32 - FatalSystemError(msg, GetLastError()); -#else - auto system_error = std::strerror(errno); - FmtError(fatal_error_domain, "{}: {}", msg, system_error); - Abort(); -#endif -} - -void -FormatFatalSystemError(const char *fmt, ...) -{ - char buffer[1024]; - std::va_list ap; - va_start(ap, fmt); - std::vsnprintf(buffer, sizeof(buffer), fmt, ap); - va_end(ap); - - FatalSystemError(buffer); -} diff --git a/src/system/FatalError.hxx b/src/system/FatalError.hxx deleted file mode 100644 index d90bde88e..000000000 --- a/src/system/FatalError.hxx +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 2003-2021 The Music Player Daemon Project - * http://www.musicpd.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#ifndef MPD_FATAL_ERROR_HXX -#define MPD_FATAL_ERROR_HXX - -#include "util/Compiler.h" - -#ifdef _WIN32 -#include -#endif - -/** - * Log the specified message and abort the process. - */ -[[noreturn]] -void -FatalError(const char *msg); - -[[noreturn]] -void -FormatFatalError(const char *fmt, ...); - -/** - * Call this after a system call has failed that is not supposed to - * fail. Prints the given message, the system error message (from - * errno or GetLastError()) and abort the process. - */ -[[noreturn]] -void -FatalSystemError(const char *msg); - -#ifdef _WIN32 - -[[noreturn]] -void -FatalSystemError(const char *msg, DWORD code); - -#endif - -[[noreturn]] -void -FormatFatalSystemError(const char *fmt, ...); - -#endif diff --git a/src/system/meson.build b/src/system/meson.build index eae95655b..6252248cb 100644 --- a/src/system/meson.build +++ b/src/system/meson.build @@ -1,5 +1,4 @@ system_sources = [ - 'FatalError.cxx', 'EventPipe.cxx', 'Clock.cxx', ]