diff options
author | wizputer <wizputer@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2004-11-27 19:32:30 +0000 |
---|---|---|
committer | wizputer <wizputer@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2004-11-27 19:32:30 +0000 |
commit | 486b4f2a12b41507b67a1a93ae5871b3be447914 (patch) | |
tree | 8196d22d0fce973ac6e53b24735776ba9dcaf77f /src/common/nullpo.c | |
parent | ecb15e6101bc1912bb2520151c45ed69af80feb8 (diff) | |
parent | f0da8da932031212f34aa97eff882f72cb69cc2a (diff) | |
download | hercules-486b4f2a12b41507b67a1a93ae5871b3be447914.tar.gz hercules-486b4f2a12b41507b67a1a93ae5871b3be447914.tar.bz2 hercules-486b4f2a12b41507b67a1a93ae5871b3be447914.tar.xz hercules-486b4f2a12b41507b67a1a93ae5871b3be447914.zip |
correct directory structure
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@387 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/common/nullpo.c')
-rw-r--r-- | src/common/nullpo.c | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/src/common/nullpo.c b/src/common/nullpo.c new file mode 100644 index 000000000..5fbf5fc1d --- /dev/null +++ b/src/common/nullpo.c @@ -0,0 +1,90 @@ +#include <stdio.h> +#include <stdarg.h> +#include <string.h> +#include "nullpo.h" +// #include "logs.h" // 布石してみる + +static void nullpo_info_core(const char *file, int line, const char *func, + const char *fmt, va_list ap); + +/*====================================== + * Nullチェック 及び 情報出力 + *-------------------------------------- + */ +int nullpo_chk_f(const char *file, int line, const char *func, const void *target, + const char *fmt, ...) +{ + va_list ap; + + if (target != NULL) + return 0; + + va_start(ap, fmt); + nullpo_info_core(file, line, func, fmt, ap); + va_end(ap); + return 1; +} + +int nullpo_chk(const char *file, int line, const char *func, const void *target) +{ + if (target != NULL) + return 0; + + nullpo_info_core(file, line, func, NULL, NULL); + return 1; +} + + +/*====================================== + * nullpo情報出力(外部呼出し向けラッパ) + *-------------------------------------- + */ +void nullpo_info_f(const char *file, int line, const char *func, + const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + nullpo_info_core(file, line, func, fmt, ap); + va_end(ap); +} + +void nullpo_info(const char *file, int line, const char *func) +{ + nullpo_info_core(file, line, func, NULL, NULL); +} + + +/*====================================== + * nullpo情報出力(Main) + *-------------------------------------- + */ +static void nullpo_info_core(const char *file, int line, const char *func, + const char *fmt, va_list ap) +{ + if (file == NULL) + file = "??"; + + func = + func == NULL ? "unknown": + func[0] == '\0' ? "unknown": + func; + + printf("--- nullpo info --------------------------------------------\n"); + printf("%s:%d: in func `%s'\n", file, line, func); + if (fmt != NULL) + { + if (fmt[0] != '\0') + { + vprintf(fmt, ap); + + // 最後に改行したか確認 + if (fmt[strlen(fmt)-1] != '\n') + printf("\n"); + } + } + printf("--- end nullpo info ----------------------------------------\n"); + + // ここらでnullpoログをファイルに書き出せたら + // まとめて提出できるなと思っていたり。 +} |