diff options
-rw-r--r-- | src/local.mk | 2 | ||||
-rw-r--r-- | src/logging.c | 61 | ||||
-rw-r--r-- | src/logging.h | 26 |
3 files changed, 89 insertions, 0 deletions
diff --git a/src/local.mk b/src/local.mk index ba1cd3e..7576fee 100644 --- a/src/local.mk +++ b/src/local.mk @@ -1,2 +1,4 @@ dodge_balls_SOURCES += \ + %reldir%/logging.c \ + %reldir%/logging.h \ %reldir%/main.c diff --git a/src/logging.c b/src/logging.c new file mode 100644 index 0000000..69a5cc3 --- /dev/null +++ b/src/logging.c @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2013 Patrick "P. J." McDermott + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. + */ + +#include <stdarg.h> +#include <stdio.h> +#include <stdlib.h> +#include "init.h" +#include "logging.h" + +void +debug(const char *fmt, ...) +{ + va_list ap; + + printf("Debug: "); + va_start(ap, fmt); + vprintf(fmt, ap); + va_end(ap); + putchar('\n'); +} + +void +warn(const char *fmt, ...) +{ + va_list ap; + + printf("Warning: "); + va_start(ap, fmt); + vprintf(fmt, ap); + va_end(ap); + putchar('\n'); +} + +void +err(int status, const char *fmt, ...) +{ + va_list ap; + + printf("Error: "); + va_start(ap, fmt); + vprintf(fmt, ap); + va_end(ap); + putchar('\n'); + + quit(status); +} diff --git a/src/logging.h b/src/logging.h new file mode 100644 index 0000000..12c9b00 --- /dev/null +++ b/src/logging.h @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2013 Patrick "P. J." McDermott + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. + */ + +#ifndef LOGGING_H +#define LOGGING_H + +void debug(const char *fmt, ...); +void warn(const char *fmt, ...); +void err(int status, const char *fmt, ...); + +#endif |