X-Git-Url: https://git.draconx.ca/gitweb/liblbx.git/blobdiff_plain/2ae75b73d0b5d48d5ae5ae418b930f9f122f4486..HEAD:/src/tools.h diff --git a/src/tools.h b/src/tools.h index 2332c2c..c2c10ff 100644 --- a/src/tools.h +++ b/src/tools.h @@ -1,19 +1,47 @@ +/* + * 2ooM: The Master of Orion II Reverse Engineering Project + * Helper functions for liblbx command-line applications. + * Copyright © 2013 Nick Bowler + * + * 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 3 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, see . + */ + #ifndef TOOLS_H_ #define TOOLS_H_ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif +#include -#ifndef PACKAGE_VERSION -# define PACKAGE_VERSION "(unknown)" -#endif +void tool_init(const char *name, int argc, char **argv); +void tool_version(void); + +const char *tool_invocation(void); + +/* + * Error messaging routines. Similar to printf, but writes to standard error + * and prefixes the output with the program invocation name, automatically + * appending a newline. If err is 0, the result of strerror(errno) is also + * printed in a similar manner as perror. If err is positive, then that + * value is used instead of errno. + */ +int tool_verr(int err, const char *fmt, va_list ap); +int tool_err(int err, const char *fmt, ...); -#define VERSION_BOILERPLATE(name)\ -name " (2ooM liblbx) " PACKAGE_VERSION "\n"\ -"Copyright (C) 2006-2008 Nick Bowler.\n"\ -"This is free software: you are free to change and redistribute it under\n"\ -"the terms of the GNU General Public License, version 2 or later.\n"\ -"There is ABSOLUTELY NO WARRANTY, to the extent permitted by law." +/* + * Messaging routines similar to the above, except that they write to standard + * output and there is no option to include strerror(errno). + */ +int tool_vmsg(const char *fmt, va_list ap); +int tool_msg(const char *fmt, ...); #endif