| OLD | NEW |
| 1 /////////////////////////////////////////////////////////////////////////////// | 1 /////////////////////////////////////////////////////////////////////////////// |
| 2 // | 2 // |
| 3 /// \file message.h | 3 /// \file message.h |
| 4 /// \brief Printing messages to stderr | 4 /// \brief Printing messages to stderr |
| 5 // | 5 // |
| 6 // Author: Lasse Collin | 6 // Author: Lasse Collin |
| 7 // | 7 // |
| 8 // This file has been put into the public domain. | 8 // This file has been put into the public domain. |
| 9 // You can do whatever you want with this file. | 9 // You can do whatever you want with this file. |
| 10 // | 10 // |
| 11 /////////////////////////////////////////////////////////////////////////////// | 11 /////////////////////////////////////////////////////////////////////////////// |
| 12 | 12 |
| 13 /// Verbosity levels | 13 /// Verbosity levels |
| 14 enum message_verbosity { | 14 enum message_verbosity { |
| 15 V_SILENT, ///< No messages | 15 V_SILENT, ///< No messages |
| 16 V_ERROR, ///< Only error messages | 16 V_ERROR, ///< Only error messages |
| 17 V_WARNING, ///< Errors and warnings | 17 V_WARNING, ///< Errors and warnings |
| 18 V_VERBOSE, ///< Errors, warnings, and verbose statistics | 18 V_VERBOSE, ///< Errors, warnings, and verbose statistics |
| 19 » V_DEBUG, ///< Debugging, FIXME remove? | 19 » V_DEBUG, ///< Very verbose |
| 20 }; | 20 }; |
| 21 | 21 |
| 22 | 22 |
| 23 /// \brief Signals used for progress message handling |
| 24 extern const int message_progress_sigs[]; |
| 25 |
| 26 |
| 23 /// \brief Initializes the message functions | 27 /// \brief Initializes the message functions |
| 24 /// | 28 /// |
| 25 /// If an error occurs, this function doesn't return. | 29 /// If an error occurs, this function doesn't return. |
| 26 /// | 30 /// |
| 27 extern void message_init(void); | 31 extern void message_init(void); |
| 28 | 32 |
| 29 | 33 |
| 30 /// Increase verbosity level by one step unless it was at maximum. | 34 /// Increase verbosity level by one step unless it was at maximum. |
| 31 extern void message_verbosity_increase(void); | 35 extern void message_verbosity_increase(void); |
| 32 | 36 |
| 33 /// Decrease verbosity level by one step unless it was at minimum. | 37 /// Decrease verbosity level by one step unless it was at minimum. |
| 34 extern void message_verbosity_decrease(void); | 38 extern void message_verbosity_decrease(void); |
| 35 | 39 |
| 36 /// Get the current verbosity level. | 40 /// Get the current verbosity level. |
| 37 extern enum message_verbosity message_verbosity_get(void); | 41 extern enum message_verbosity message_verbosity_get(void); |
| 38 | 42 |
| 39 | 43 |
| 40 /// \brief Print a message if verbosity level is at least "verbosity" | 44 /// \brief Print a message if verbosity level is at least "verbosity" |
| 41 /// | 45 /// |
| 42 /// This doesn't touch the exit status. | 46 /// This doesn't touch the exit status. |
| 43 extern void message(enum message_verbosity verbosity, const char *fmt, ...) | 47 extern void message(enum message_verbosity verbosity, const char *fmt, ...) |
| 44 » » lzma_attribute((format(printf, 2, 3))); | 48 » » lzma_attribute((__format__(__printf__, 2, 3))); |
| 45 | 49 |
| 46 | 50 |
| 47 /// \brief Prints a warning and possibly sets exit status | 51 /// \brief Prints a warning and possibly sets exit status |
| 48 /// | 52 /// |
| 49 /// The message is printed only if verbosity level is at least V_WARNING. | 53 /// The message is printed only if verbosity level is at least V_WARNING. |
| 50 /// The exit status is set to WARNING unless it was already at ERROR. | 54 /// The exit status is set to WARNING unless it was already at ERROR. |
| 51 extern void message_warning(const char *fmt, ...) | 55 extern void message_warning(const char *fmt, ...) |
| 52 » » lzma_attribute((format(printf, 1, 2))); | 56 » » lzma_attribute((__format__(__printf__, 1, 2))); |
| 53 | 57 |
| 54 | 58 |
| 55 /// \brief Prints an error message and sets exit status | 59 /// \brief Prints an error message and sets exit status |
| 56 /// | 60 /// |
| 57 /// The message is printed only if verbosity level is at least V_ERROR. | 61 /// The message is printed only if verbosity level is at least V_ERROR. |
| 58 /// The exit status is set to ERROR. | 62 /// The exit status is set to ERROR. |
| 59 extern void message_error(const char *fmt, ...) | 63 extern void message_error(const char *fmt, ...) |
| 60 » » lzma_attribute((format(printf, 1, 2))); | 64 » » lzma_attribute((__format__(__printf__, 1, 2))); |
| 61 | 65 |
| 62 | 66 |
| 63 /// \brief Prints an error message and exits with EXIT_ERROR | 67 /// \brief Prints an error message and exits with EXIT_ERROR |
| 64 /// | 68 /// |
| 65 /// The message is printed only if verbosity level is at least V_ERROR. | 69 /// The message is printed only if verbosity level is at least V_ERROR. |
| 66 extern void message_fatal(const char *fmt, ...) | 70 extern void message_fatal(const char *fmt, ...) |
| 67 » » lzma_attribute((format(printf, 1, 2))) | 71 » » lzma_attribute((__format__(__printf__, 1, 2))) |
| 68 » » lzma_attribute((noreturn)); | 72 » » lzma_attribute((__noreturn__)); |
| 69 | 73 |
| 70 | 74 |
| 71 /// Print an error message that an internal error occurred and exit with | 75 /// Print an error message that an internal error occurred and exit with |
| 72 /// EXIT_ERROR. | 76 /// EXIT_ERROR. |
| 73 extern void message_bug(void) lzma_attribute((noreturn)); | 77 extern void message_bug(void) lzma_attribute((__noreturn__)); |
| 74 | 78 |
| 75 | 79 |
| 76 /// Print a message that establishing signal handlers failed, and exit with | 80 /// Print a message that establishing signal handlers failed, and exit with |
| 77 /// exit status ERROR. | 81 /// exit status ERROR. |
| 78 extern void message_signal_handler(void) lzma_attribute((noreturn)); | 82 extern void message_signal_handler(void) lzma_attribute((__noreturn__)); |
| 79 | 83 |
| 80 | 84 |
| 81 /// Convert lzma_ret to a string. | 85 /// Convert lzma_ret to a string. |
| 82 extern const char *message_strm(lzma_ret code); | 86 extern const char *message_strm(lzma_ret code); |
| 83 | 87 |
| 84 | 88 |
| 85 /// Display how much memory was needed and how much the limit was. | 89 /// Display how much memory was needed and how much the limit was. |
| 86 extern void message_mem_needed(enum message_verbosity v, uint64_t memusage); | 90 extern void message_mem_needed(enum message_verbosity v, uint64_t memusage); |
| 87 | 91 |
| 88 | 92 |
| 93 /// Buffer size for message_filters_to_str() |
| 94 #define FILTERS_STR_SIZE 512 |
| 95 |
| 96 |
| 89 /// \brief Get the filter chain as a string | 97 /// \brief Get the filter chain as a string |
| 90 /// | 98 /// |
| 99 /// \param buf Pointer to caller allocated buffer to hold |
| 100 /// the filter chain string |
| 91 /// \param filters Pointer to the filter chain | 101 /// \param filters Pointer to the filter chain |
| 92 /// \param all_known If true, all filter options are printed. | 102 /// \param all_known If true, all filter options are printed. |
| 93 /// If false, only the options that get stored | 103 /// If false, only the options that get stored |
| 94 /// into .xz headers are printed. | 104 /// into .xz headers are printed. |
| 95 /// | 105 extern void message_filters_to_str(char buf[FILTERS_STR_SIZE], |
| 96 /// \return Pointer to a statically allocated buffer. | |
| 97 extern const char *message_filters_to_str( | |
| 98 const lzma_filter *filters, bool all_known); | 106 const lzma_filter *filters, bool all_known); |
| 99 | 107 |
| 100 | 108 |
| 101 /// Print the filter chain. | 109 /// Print the filter chain. |
| 102 extern void message_filters_show( | 110 extern void message_filters_show( |
| 103 enum message_verbosity v, const lzma_filter *filters); | 111 enum message_verbosity v, const lzma_filter *filters); |
| 104 | 112 |
| 105 | 113 |
| 106 /// Print a message that user should try --help. | 114 /// Print a message that user should try --help. |
| 107 extern void message_try_help(void); | 115 extern void message_try_help(void); |
| 108 | 116 |
| 109 | 117 |
| 110 /// Print the memory usage limit and exit. | |
| 111 extern void message_memlimit(void) lzma_attribute((noreturn)); | |
| 112 | |
| 113 | |
| 114 /// Prints the version number to stdout and exits with exit status SUCCESS. | 118 /// Prints the version number to stdout and exits with exit status SUCCESS. |
| 115 extern void message_version(void) lzma_attribute((noreturn)); | 119 extern void message_version(void) lzma_attribute((__noreturn__)); |
| 116 | 120 |
| 117 | 121 |
| 118 /// Print the help message. | 122 /// Print the help message. |
| 119 extern void message_help(bool long_help) lzma_attribute((noreturn)); | 123 extern void message_help(bool long_help) lzma_attribute((__noreturn__)); |
| 120 | 124 |
| 121 | 125 |
| 122 /// \brief Set the total number of files to be processed | 126 /// \brief Set the total number of files to be processed |
| 123 /// | 127 /// |
| 124 /// Standard input is counted as a file here. This is used when printing | 128 /// Standard input is counted as a file here. This is used when printing |
| 125 /// the filename via message_filename(). | 129 /// the filename via message_filename(). |
| 126 extern void message_set_files(unsigned int files); | 130 extern void message_set_files(unsigned int files); |
| 127 | 131 |
| 128 | 132 |
| 129 /// \brief Set the name of the current file and possibly print it too | 133 /// \brief Set the name of the current file and possibly print it too |
| (...skipping 24 matching lines...) Expand all Loading... |
| 154 /// message_progress_start() has already been used. | 158 /// message_progress_start() has already been used. |
| 155 extern void message_progress_update(void); | 159 extern void message_progress_update(void); |
| 156 | 160 |
| 157 | 161 |
| 158 /// \brief Finishes the progress message if we were in verbose mode | 162 /// \brief Finishes the progress message if we were in verbose mode |
| 159 /// | 163 /// |
| 160 /// \param finished True if the whole stream was successfully coded | 164 /// \param finished True if the whole stream was successfully coded |
| 161 /// and output written to the output stream. | 165 /// and output written to the output stream. |
| 162 /// | 166 /// |
| 163 extern void message_progress_end(bool finished); | 167 extern void message_progress_end(bool finished); |
| OLD | NEW |