diff options
Diffstat (limited to 'src/common/showmsg.h')
-rw-r--r-- | src/common/showmsg.h | 79 |
1 files changed, 44 insertions, 35 deletions
diff --git a/src/common/showmsg.h b/src/common/showmsg.h index 63e42ab57..728691ba3 100644 --- a/src/common/showmsg.h +++ b/src/common/showmsg.h @@ -5,13 +5,9 @@ #ifndef COMMON_SHOWMSG_H #define COMMON_SHOWMSG_H -#include "common/cbasetypes.h" +#include "common/hercules.h" -#ifdef HERCULES_CORE -# include <libconfig/libconfig.h> -#else -# include "common/HPMi.h" -#endif +#include <libconfig/libconfig.h> #include <stdarg.h> @@ -85,35 +81,48 @@ enum msg_type { MSG_FATALERROR }; +struct showmsg_interface { + bool stdout_with_ansisequence; //If the color ANSI sequences are to be used. [flaviojs] + int silent; //Specifies how silent the console is. [Skotlex] + int console_log; //Specifies what error messages to log. [Ind] + char timestamp_format[20]; //For displaying Timestamps [Skotlex] + + void (*init) (void); + void (*final) (void); + + void (*clearScreen) (void); + int (*showMessageV) (const char *string, va_list ap); + + void (*showMessage) (const char *, ...) __attribute__((format(printf, 1, 2))); + void (*showStatus) (const char *, ...) __attribute__((format(printf, 1, 2))); + void (*showSQL) (const char *, ...) __attribute__((format(printf, 1, 2))); + void (*showInfo) (const char *, ...) __attribute__((format(printf, 1, 2))); + void (*showNotice) (const char *, ...) __attribute__((format(printf, 1, 2))); + void (*showWarning) (const char *, ...) __attribute__((format(printf, 1, 2))); + void (*showDebug) (const char *, ...) __attribute__((format(printf, 1, 2))); + void (*showError) (const char *, ...) __attribute__((format(printf, 1, 2))); + void (*showFatalError) (const char *, ...) __attribute__((format(printf, 1, 2))); + void (*showConfigWarning) (config_setting_t *config, const char *string, ...) __attribute__((format(printf, 2, 3))); +}; + +/* the purpose of these macros is simply to not make calling them be an annoyance */ +#define ClearScreen() (showmsg->clearScreen()) +#define vShowMessage(fmt, list) (showmsg->showMessageV((fmt), (list))) +#define ShowMessage(fmt, ...) (showmsg->showMessage((fmt), ##__VA_ARGS__)) +#define ShowStatus(fmt, ...) (showmsg->showStatus((fmt), ##__VA_ARGS__)) +#define ShowSQL(fmt, ...) (showmsg->showSQL((fmt), ##__VA_ARGS__)) +#define ShowInfo(fmt, ...) (showmsg->showInfo((fmt), ##__VA_ARGS__)) +#define ShowNotice(fmt, ...) (showmsg->showNotice((fmt), ##__VA_ARGS__)) +#define ShowWarning(fmt, ...) (showmsg->showWarning((fmt), ##__VA_ARGS__)) +#define ShowDebug(fmt, ...) (showmsg->showDebug((fmt), ##__VA_ARGS__)) +#define ShowError(fmt, ...) (showmsg->showError((fmt), ##__VA_ARGS__)) +#define ShowFatalError(fmt, ...) (showmsg->showFatalError((fmt), ##__VA_ARGS__)) +#define ShowConfigWarning(config, fmt, ...) (showmsg->showConfigWarning((config), (fmt), ##__VA_ARGS__)) + #ifdef HERCULES_CORE -extern int stdout_with_ansisequence; //If the color ANSI sequences are to be used. [flaviojs] -extern int msg_silent; //Specifies how silent the console is. [Skotlex] -extern int console_msg_log; //Specifies what error messages to log. [Ind] -extern char timestamp_format[20]; //For displaying Timestamps [Skotlex] - -extern void ClearScreen(void); -extern int vShowMessage_(enum msg_type flag, const char *string, va_list ap); - - extern void ShowMessage(const char *, ...) __attribute__((format(printf, 1, 2))); - extern void ShowStatus(const char *, ...) __attribute__((format(printf, 1, 2))); - extern void ShowSQL(const char *, ...) __attribute__((format(printf, 1, 2))); - extern void ShowInfo(const char *, ...) __attribute__((format(printf, 1, 2))); - extern void ShowNotice(const char *, ...) __attribute__((format(printf, 1, 2))); - extern void ShowWarning(const char *, ...) __attribute__((format(printf, 1, 2))); - extern void ShowDebug(const char *, ...) __attribute__((format(printf, 1, 2))); - extern void ShowError(const char *, ...) __attribute__((format(printf, 1, 2))); - extern void ShowFatalError(const char *, ...) __attribute__((format(printf, 1, 2))); - extern void ShowConfigWarning(config_setting_t *config, const char *string, ...) __attribute__((format(printf, 2, 3))); -#else - HPExport void (*ShowMessage) (const char *, ...) __attribute__((format(printf, 1, 2))); - HPExport void (*ShowStatus) (const char *, ...) __attribute__((format(printf, 1, 2))); - HPExport void (*ShowSQL) (const char *, ...) __attribute__((format(printf, 1, 2))); - HPExport void (*ShowInfo) (const char *, ...) __attribute__((format(printf, 1, 2))); - HPExport void (*ShowNotice) (const char *, ...) __attribute__((format(printf, 1, 2))); - HPExport void (*ShowWarning) (const char *, ...) __attribute__((format(printf, 1, 2))); - HPExport void (*ShowDebug) (const char *, ...) __attribute__((format(printf, 1, 2))); - HPExport void (*ShowError) (const char *, ...) __attribute__((format(printf, 1, 2))); - HPExport void (*ShowFatalError) (const char *, ...) __attribute__((format(printf, 1, 2))); -#endif +void showmsg_defaults(void); +#endif // HERCULES_CORE + +HPShared struct showmsg_interface *showmsg; #endif /* COMMON_SHOWMSG_H */ |