/* This file is part of libbrandt. * Copyright (C) 2016 GNUnet e.V. * * libbrandt is free software: you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. * * libbrandt 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 General Public License for more details. * * You should have received a copy of the GNU General Public License along with * libbrandt. If not, see . */ /** * @file util.c * @brief TODO */ #include #include #include #include #include "util.h" static void xvprintf (const char *, va_list); /** * eprintf * * @param fmt TODO * @param */ void eprintf (const char *fmt, ...) { va_list ap; va_start (ap, fmt); xvprintf (fmt, ap); va_end (ap); abort (); } /** * weprintf * * @param fmt TODO * @param */ void weprintf (const char *fmt, ...) { va_list ap; va_start (ap, fmt); xvprintf (fmt, ap); va_end (ap); } /** * xvprintf * * @param fmt TODO * @param ap TODO */ void xvprintf (const char *fmt, va_list ap) { /**TODO: provide other logging target than stderr */ fputs ("libbrandt: ", stderr); vfprintf (stderr, fmt, ap); if (fmt[0] && fmt[strlen (fmt) - 1] == ':') { fputc (' ', stderr); perror (NULL); } else { fputc ('\n', stderr); } }