/////////////////////////////////////////////////////////////////////////////// // /// \file error.c /// \brief Error message printing // // Copyright (C) 2007 Lasse Collin // // This program 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 2.1 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 // Lesser General Public License for more details. // /////////////////////////////////////////////////////////////////////////////// #ifndef ERROR_H #define ERROR_H #include "private.h" typedef enum { SUCCESS = 0, ERROR = 1, WARNING = 2, } exit_status_type; typedef enum { V_SILENT, V_ERROR, V_WARNING, V_VERBOSE, V_DEBUG, } verbosity_type; extern exit_status_type exit_status; extern verbosity_type verbosity; /// Like GNU's program_invocation_name but portable extern char *argv0; /// Once this is non-zero, all threads must shutdown and clean up incomplete /// output files from the disk. extern volatile sig_atomic_t user_abort; extern const char * str_strm_error(lzma_ret code); extern void errmsg(verbosity_type v, const char *fmt, ...) lzma_attribute((format(printf, 2, 3))); extern void set_exit_status(exit_status_type new_status); extern void my_exit(int status) lzma_attribute((noreturn)); extern void out_of_memory(void); extern void internal_error(void); #endif