Author | Jakob Wakeling <[email protected]> |
Date | 2022-05-03 06:55:26 |
Commit | 5325b94abafd5aa1a7d6295103ac9359195e11d4 |
Parent | 644f1986fa45910cf3ff590145bbbb40fd8f193c |
Implement note logging procedure
Diffstat
A | src/log.c | | | 17 | +++++++++++++++++ |
A | src/log.h | | | 13 | +++++++++++++ |
2 files changed, 30 insertions, 0 deletions
diff --git a/src/log.c b/src/log.c new file mode 100644 index 0000000..4b16278 --- /dev/null +++ b/src/log.c @@ -0,0 +1,17 @@ +// log.c +// Log source file for G +// Copyright (C) 2021, Jakob Wakeling +// All rights reserved. + +#include "log.h" +#include "util/util.h" + +#include <stdarg.h> +#include <stdio.h> + +/* Log a compiler note (0), warning (1), or error (2). */ +void note(const char *file, UINT ln, UINT cl, u32 level, const char *format, ...) { + fprintf(stderr, "%s:%zu:%zu: ", file, ln + 1, cl + 1); + fprintf(stderr, "%s", level == 0 ? "note: " : level == 1 ? "warning: " : "error: "); + va_list va; va_start(va, format); vfprintf(stderr, format, va); va_end(va); +} diff --git a/src/log.h b/src/log.h new file mode 100644 index 0000000..38e82cd --- /dev/null +++ b/src/log.h @@ -0,0 +1,13 @@ +// log.h +// Log header file for G +// Copyright (C) 2022, Jakob Wakeling +// All rights reserved. + +#ifndef G_LOG_H_1RPM5P9E +#define G_LOG_H_1RPM5P9E + +#include "util/util.h" + +extern void note(const char *file, UINT ln, UINT cl, u32 level, const char *format, ...); + +#endif // G_LOG_H_1RPM5P9E