| Index: xz/src/xz/message.h
|
| ===================================================================
|
| --- xz/src/xz/message.h (revision 0)
|
| +++ xz/src/xz/message.h (revision 0)
|
| @@ -0,0 +1,163 @@
|
| +///////////////////////////////////////////////////////////////////////////////
|
| +//
|
| +/// \file message.h
|
| +/// \brief Printing messages to stderr
|
| +//
|
| +// Author: Lasse Collin
|
| +//
|
| +// This file has been put into the public domain.
|
| +// You can do whatever you want with this file.
|
| +//
|
| +///////////////////////////////////////////////////////////////////////////////
|
| +
|
| +/// Verbosity levels
|
| +enum message_verbosity {
|
| + V_SILENT, ///< No messages
|
| + V_ERROR, ///< Only error messages
|
| + V_WARNING, ///< Errors and warnings
|
| + V_VERBOSE, ///< Errors, warnings, and verbose statistics
|
| + V_DEBUG, ///< Debugging, FIXME remove?
|
| +};
|
| +
|
| +
|
| +/// \brief Initializes the message functions
|
| +///
|
| +/// If an error occurs, this function doesn't return.
|
| +///
|
| +extern void message_init(void);
|
| +
|
| +
|
| +/// Increase verbosity level by one step unless it was at maximum.
|
| +extern void message_verbosity_increase(void);
|
| +
|
| +/// Decrease verbosity level by one step unless it was at minimum.
|
| +extern void message_verbosity_decrease(void);
|
| +
|
| +/// Get the current verbosity level.
|
| +extern enum message_verbosity message_verbosity_get(void);
|
| +
|
| +
|
| +/// \brief Print a message if verbosity level is at least "verbosity"
|
| +///
|
| +/// This doesn't touch the exit status.
|
| +extern void message(enum message_verbosity verbosity, const char *fmt, ...)
|
| + lzma_attribute((format(printf, 2, 3)));
|
| +
|
| +
|
| +/// \brief Prints a warning and possibly sets exit status
|
| +///
|
| +/// The message is printed only if verbosity level is at least V_WARNING.
|
| +/// The exit status is set to WARNING unless it was already at ERROR.
|
| +extern void message_warning(const char *fmt, ...)
|
| + lzma_attribute((format(printf, 1, 2)));
|
| +
|
| +
|
| +/// \brief Prints an error message and sets exit status
|
| +///
|
| +/// The message is printed only if verbosity level is at least V_ERROR.
|
| +/// The exit status is set to ERROR.
|
| +extern void message_error(const char *fmt, ...)
|
| + lzma_attribute((format(printf, 1, 2)));
|
| +
|
| +
|
| +/// \brief Prints an error message and exits with EXIT_ERROR
|
| +///
|
| +/// The message is printed only if verbosity level is at least V_ERROR.
|
| +extern void message_fatal(const char *fmt, ...)
|
| + lzma_attribute((format(printf, 1, 2)))
|
| + lzma_attribute((noreturn));
|
| +
|
| +
|
| +/// Print an error message that an internal error occurred and exit with
|
| +/// EXIT_ERROR.
|
| +extern void message_bug(void) lzma_attribute((noreturn));
|
| +
|
| +
|
| +/// Print a message that establishing signal handlers failed, and exit with
|
| +/// exit status ERROR.
|
| +extern void message_signal_handler(void) lzma_attribute((noreturn));
|
| +
|
| +
|
| +/// Convert lzma_ret to a string.
|
| +extern const char *message_strm(lzma_ret code);
|
| +
|
| +
|
| +/// Display how much memory was needed and how much the limit was.
|
| +extern void message_mem_needed(enum message_verbosity v, uint64_t memusage);
|
| +
|
| +
|
| +/// \brief Get the filter chain as a string
|
| +///
|
| +/// \param filters Pointer to the filter chain
|
| +/// \param all_known If true, all filter options are printed.
|
| +/// If false, only the options that get stored
|
| +/// into .xz headers are printed.
|
| +///
|
| +/// \return Pointer to a statically allocated buffer.
|
| +extern const char *message_filters_to_str(
|
| + const lzma_filter *filters, bool all_known);
|
| +
|
| +
|
| +/// Print the filter chain.
|
| +extern void message_filters_show(
|
| + enum message_verbosity v, const lzma_filter *filters);
|
| +
|
| +
|
| +/// Print a message that user should try --help.
|
| +extern void message_try_help(void);
|
| +
|
| +
|
| +/// Print the memory usage limit and exit.
|
| +extern void message_memlimit(void) lzma_attribute((noreturn));
|
| +
|
| +
|
| +/// Prints the version number to stdout and exits with exit status SUCCESS.
|
| +extern void message_version(void) lzma_attribute((noreturn));
|
| +
|
| +
|
| +/// Print the help message.
|
| +extern void message_help(bool long_help) lzma_attribute((noreturn));
|
| +
|
| +
|
| +/// \brief Set the total number of files to be processed
|
| +///
|
| +/// Standard input is counted as a file here. This is used when printing
|
| +/// the filename via message_filename().
|
| +extern void message_set_files(unsigned int files);
|
| +
|
| +
|
| +/// \brief Set the name of the current file and possibly print it too
|
| +///
|
| +/// The name is printed immediately if --list was used or if --verbose
|
| +/// was used and stderr is a terminal. Even when the filename isn't printed,
|
| +/// it is stored so that it can be printed later if needed for progress
|
| +/// messages.
|
| +extern void message_filename(const char *src_name);
|
| +
|
| +
|
| +/// \brief Start progress info handling
|
| +///
|
| +/// message_filename() must be called before this function to set
|
| +/// the filename.
|
| +///
|
| +/// This must be paired with a call to message_progress_end() before the
|
| +/// given *strm becomes invalid.
|
| +///
|
| +/// \param strm Pointer to lzma_stream used for the coding.
|
| +/// \param in_size Size of the input file, or zero if unknown.
|
| +///
|
| +extern void message_progress_start(lzma_stream *strm, uint64_t in_size);
|
| +
|
| +
|
| +/// Update the progress info if in verbose mode and enough time has passed
|
| +/// since the previous update. This can be called only when
|
| +/// message_progress_start() has already been used.
|
| +extern void message_progress_update(void);
|
| +
|
| +
|
| +/// \brief Finishes the progress message if we were in verbose mode
|
| +///
|
| +/// \param finished True if the whole stream was successfully coded
|
| +/// and output written to the output stream.
|
| +///
|
| +extern void message_progress_end(bool finished);
|
|
|
| Property changes on: xz/src/xz/message.h
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|