From 612a264f1dfa99ff5ee6484139c115200f4bc179 Mon Sep 17 00:00:00 2001 From: celest Date: Fri, 1 Apr 2005 08:36:28 +0000 Subject: * Updated ShowMessage functions to use vprintf git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/branches/stable@1372 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/common/showmsg.c | 10 ++++- src/common/showmsg.h | 114 ++++++++++++++++++++++++++++++++++++++------------- 2 files changed, 93 insertions(+), 31 deletions(-) (limited to 'src') diff --git a/src/common/showmsg.c b/src/common/showmsg.c index ddaae3a52..5587e8658 100644 --- a/src/common/showmsg.c +++ b/src/common/showmsg.c @@ -1,12 +1,13 @@ #include #include #include +#include #include "showmsg.h" #include "malloc.h" char tmp_output[1024] = {"\0"}; -int _ShowMessage(const char *string, enum msg_type flag){ // by MC Cameri +int _ShowMessage(enum msg_type flag, const char *string, ...){ // by MC Cameri /* _ShowMessage MUST be used instead of printf as of 10/24/2004. Return: 0 = Successful, 1 = Failed. @@ -14,6 +15,9 @@ int _ShowMessage(const char *string, enum msg_type flag){ // by MC Cameri // int ret = 0; char prefix[40]; char *output; + va_list ap; + + va_start(ap, string); if (strlen(string) <= 0) { ShowError("Empty string passed to _ShowMessage().\n"); return 1; @@ -57,10 +61,12 @@ int _ShowMessage(const char *string, enum msg_type flag){ // by MC Cameri strcpy(output,prefix); strcat(output," "); strcat(output,string); - printf(output); + vprintf(output, ap); fflush(stdout); aFree(output); } + + va_end(ap); /* if ((core_config.debug_output_level > -1) && (flag >= core_config.debug_output_level)) { FILE *fp; diff --git a/src/common/showmsg.h b/src/common/showmsg.h index 0949d08e4..2574c3adf 100644 --- a/src/common/showmsg.h +++ b/src/common/showmsg.h @@ -20,52 +20,108 @@ extern char tmp_output[1024]; enum msg_type {MSG_STATUS, MSG_SQL, MSG_INFORMATION,MSG_NOTICE,MSG_WARNING,MSG_DEBUG,MSG_ERROR,MSG_FATALERROR}; -extern int _ShowMessage(const char *string, enum msg_type flag); +extern int _ShowMessage(enum msg_type flag, const char *string, ...); +#if __GNUC__ >= 2 +/* GCC用 */ /* MSG_XX */ - #define ShowMsg(string,flag) _ShowMessage(string,flag) -// #define DisplayMsg(string,flag) _ShowMessage(string,flag) -// #define ShowMessage(string,flag) _ShowMessage(string,flag) + #define ShowMsg(flag,string...) _ShowMessage(flag, ## string) +// #define DisplayMsg(flag,string,...) _ShowMessage(flag, ## string) +// #define ShowMessage(flag,string,...) _ShowMessage(flag, ## string) /* MSG_STATUS */ - #define ShowStatus(string) _ShowMessage(string,MSG_STATUS) -// #define DisplayStatus(string) _ShowMessage(string,MSG_STATUS) + #define ShowStatus(string...) _ShowMessage(MSG_STATUS, ## string) +// #define DisplayStatus(string...) _ShowMessage(MSG_STATUS, ## string) /* MSG_SQL*/ - #define ShowSQL(string) _ShowMessage(string,MSG_SQL) -// #define DisplaySQL(string) _ShowMessage(string,MSG_SQL) + #define ShowSQL(string...) _ShowMessage(MSG_SQL, ## string) +// #define DisplaySQL(string...) _ShowMessage(MSG_SQL, ## string) /* MSG_INFORMATION */ - #define ShowInfo(string) _ShowMessage(string,MSG_INFORMATION) -// #define DisplayInfo(string) _ShowMessage(string,MSG_INFORMATION) -// #define ShowInformation(string) _ShowMessage(string,MSG_INFORMATION) -// #define DisplayInformation(string) _ShowMessage(string,MSG_INFORMATION) + #define ShowInfo(string...) _ShowMessage(MSG_INFORMATION, ## string) +// #define DisplayInfo(string...) _ShowMessage(MSG_INFORMATION, ## string) +// #define ShowInformation(string...) _ShowMessage(MSG_INFORMATION, ## string) +// #define DisplayInformation(string...) _ShowMessage(MSG_INFORMATION, ## string) /* MSG_NOTICE */ - #define ShowNotice(string) _ShowMessage(string,MSG_NOTICE) -// #define DisplayNotice(string) _ShowMessage(string,MSG_NOTICE) + #define ShowNotice(string...) _ShowMessage(MSG_NOTICE, ## string) +// #define DisplayNotice(string...) _ShowMessage(MSG_NOTICE, ## string) /* MSG_WARNING */ - #define ShowWarning(string) _ShowMessage(string,MSG_WARNING) -// #define DisplayWarning(string) _ShowMessage(string,MSG_WARNING) -// #define Warn(string) _ShowMessage(string,MSG_WARNING) + #define ShowWarning(string...) _ShowMessage(MSG_WARNING, ## string) +// #define DisplayWarning(string...) _ShowMessage(MSG_WARNING, ## string) +// #define Warn(string...) _ShowMessage(MSG_WARNING, ## string) /* MSG_DEBUG */ - #define ShowDebug(string) _ShowMessage(string,MSG_DEBUG) - #define DisplayDebug(string) _ShowMessage(string,MSG_DEBUG) - #define Debug(string) _ShowMessage(string,MSG_DEBUG) - #define printDebug() _ShowMessage(striing,MSG_DEBUG) + #define ShowDebug(string...) _ShowMessage(MSG_DEBUG, ## string) +// #define DisplayDebug(string,...) _ShowMessage(MSG_DEBUG, ## string) +// #define Debug(string,...) _ShowMessage(MSG_DEBUG, ## string) +// #define printDebug() _ShowMessage(MSG_DEBUG, ## string) /* MSG_ERROR */ - #define ShowError(string) _ShowMessage(string,MSG_ERROR) -// #define DisplayError(string) _ShowMessage(string,MSG_ERROR) -// #define OutputError(string) _ShowMessage(string,MSG_ERROR) + #define ShowError(string...) _ShowMessage(MSG_ERROR, ## string) +// #define DisplayError(string...) _ShowMessage(MSG_ERROR, ## string) +// #define OutputError(string...) _ShowMessage(MSG_ERROR, ## string) /* MSG_FATALERROR */ - #define ShowFatalError(string) _ShowMessage(string,MSG_FATALERROR) -// #define DisplayFatalError(string) _ShowMessage(string,MSG_ERROR) -// #define Terminate(string) _ShowMessage(string,MSG_FATALERROR) -// #define Kill(string) _ShowMessage(string,MSG_FATALERROR) -// #define AbortEx(string) _ShowMessage(string,MSG_FATALERROR) + #define ShowFatalError(string...) _ShowMessage(MSG_FATALERROR, ## string) +// #define DisplayFatalError(string...) _ShowMessage(MSG_ERROR, ## string) +// #define Terminate(string...) _ShowMessage(MSG_FATALERROR, ## string) +// #define Kill(string...) _ShowMessage(MSG_FATALERROR, ## string) +// #define AbortEx(string...) _ShowMessage(MSG_FATALERROR, ## string) + +// 可変引数マクロに関する条件コンパイル +#elif __STDC_VERSION__ >= 199901L +/* C99に対応 */ + +/* MSG_XX */ + #define ShowMsg(flag,string...) _ShowMessage(flag, string, __VA_ARGS__) +// #define DisplayMsg(flag,string,...) _ShowMessage(flag, string, __VA_ARGS__) +// #define ShowMessage(flag,string,...) _ShowMessage(flag, string, __VA_ARGS__) + +/* MSG_STATUS */ + #define ShowStatus(string...) _ShowMessage(MSG_STATUS, string, __VA_ARGS__) +// #define DisplayStatus(string...) _ShowMessage(MSG_STATUS, string, __VA_ARGS__) + +/* MSG_SQL*/ + #define ShowSQL(string...) _ShowMessage(MSG_SQL, string, __VA_ARGS__) +// #define DisplaySQL(string...) _ShowMessage(MSG_SQL, string, __VA_ARGS__) + +/* MSG_INFORMATION */ + #define ShowInfo(string...) _ShowMessage(MSG_INFORMATION, string, __VA_ARGS__) +// #define DisplayInfo(string...) _ShowMessage(MSG_INFORMATION, string, __VA_ARGS__) +// #define ShowInformation(string...) _ShowMessage(MSG_INFORMATION, string, __VA_ARGS__) +// #define DisplayInformation(string...) _ShowMessage(MSG_INFORMATION, string, __VA_ARGS__) + +/* MSG_NOTICE */ + #define ShowNotice(string...) _ShowMessage(MSG_NOTICE, string, __VA_ARGS__) +// #define DisplayNotice(string...) _ShowMessage(MSG_NOTICE, string, __VA_ARGS__) + +/* MSG_WARNING */ + #define ShowWarning(string...) _ShowMessage(MSG_WARNING, string, __VA_ARGS__) +// #define DisplayWarning(string...) _ShowMessage(MSG_WARNING, string, __VA_ARGS__) +// #define Warn(string...) _ShowMessage(MSG_WARNING, string, __VA_ARGS__) + +/* MSG_DEBUG */ + #define ShowDebug(string...) _ShowMessage(MSG_DEBUG, MSGSTRING) +// #define DisplayDebug(string,...) _ShowMessage(MSG_DEBUG, string, __VA_ARGS__) +// #define Debug(string,...) _ShowMessage(MSG_DEBUG, string, __VA_ARGS__) +// #define printDebug() _ShowMessage(MSG_DEBUG, string, __VA_ARGS__) + +/* MSG_ERROR */ + #define ShowError(string...) _ShowMessage(MSG_ERROR, string, __VA_ARGS__) +// #define DisplayError(string...) _ShowMessage(MSG_ERROR, string, __VA_ARGS__) +// #define OutputError(string...) _ShowMessage(MSG_ERROR, string, __VA_ARGS__) + +/* MSG_FATALERROR */ + #define ShowFatalError(string...) _ShowMessage(MSG_FATALERROR, string, __VA_ARGS__) +// #define DisplayFatalError(string...) _ShowMessage(MSG_ERROR, string, __VA_ARGS__) +// #define Terminate(string...) _ShowMessage(MSG_FATALERROR, string, __VA_ARGS__) +// #define Kill(string...) _ShowMessage(MSG_FATALERROR, string, __VA_ARGS__) +// #define AbortEx(string...) _ShowMessage(MSG_FATALERROR, string, __VA_ARGS__) + +#else + +#endif #endif -- cgit v1.2.3-70-g09d2