/* 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.h * @brief Interface for the common utility functions. * @author Markus Teich */ #ifndef _BRANDT_UTIL_H #define _BRANDT_UTIL_H void setlog (FILE *stream); void eprintf (const char *fmt, ...); void weprintf (const char *fmt, ...); #undef brandt_assert #undef brandt_assert_perror #undef brandt_assert_gpgerr #ifdef NDEBUG #define brandt_assert(expr) do { \ (expr) ? (void)(0) : eprintf ( \ "Assertion failed in file %s line %d function %s: %s", \ __FILE__, \ __LINE__, \ __PRETTY_FUNCTION__, \ (# expr)); \ } while (0) #define brandt_assert_perror(errnum) do { \ !(errnum) ? (void)(0) : eprintf ( \ "Assertion failed in file %s line %d function %s:", \ __FILE__, \ __LINE__, \ __PRETTY_FUNCTION__); \ } while (0) #define brandt_assert_gpgerr(errnum) do { \ !(errnum) ? (void)(0) : eprintf ( \ "Assertion failed in file %s line %d function %s: %s", \ __FILE__, \ __LINE__, \ __PRETTY_FUNCTION__, \ gcry_strerror ((errnum))); \ } while (0) #define DP(point) ((void)(gcry_log_debugpnt (# point, point, ec_ctx))) #define DM(mpi) ((void)(gcry_log_debugmpi (# mpi, mpi))) #define DS(sexp) ((void)(gcry_log_debugsxp (# sexp, sexp))) #else /* ifdef NDEBUG */ #define brandt_assert(expr) ((void)(expr)) #define brandt_assert_perror(errnum) ((void)(errnum)) #define brandt_assert_gpgerr(errnum) ((void)(errnum)) #endif /* ifdef NDEBUG */ #endif /* ifndef _BRANDT_UTIL_H */