1 ///////////////////////////////////////////////////////////////////////////////
4 /// \brief Miscellanous declarations
6 // Copyright (C) 2008 Lasse Collin
8 // This program is free software; you can redistribute it and/or
9 // modify it under the terms of the GNU Lesser General Public
10 // License as published by the Free Software Foundation; either
11 // version 2.1 of the License, or (at your option) any later version.
13 // This program is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 // Lesser General Public License for more details.
18 ///////////////////////////////////////////////////////////////////////////////
20 /// Possible exit status values. These are the same as used by gzip and bzip2.
21 enum exit_status_type {
28 /// Sets the exit status after a warning or error has occurred. If new_status
29 /// is EX_WARNING and the old exit status was already EX_ERROR, the exit
30 /// status is not changed.
31 extern void set_exit_status(enum exit_status_type new_status);
34 /// Exits the program using the given status. This takes care of closing
35 /// stdin, stdout, and stderr and catches possible errors. If we had got
36 /// a signal, this function will raise it so that to the parent process it
37 /// appears that we were killed by the signal sent by the user.
38 extern void my_exit(enum exit_status_type status) lzma_attribute((noreturn));