pcsc-lite  1.8.3
lassert.h
00001 /*
00002  * Copyright (C) 2007
00003  *  Jacob Berkman
00004  * Copyright (C) 2008
00005  *  Ludovic Rousseau <ludovic.rousseau@free.fr>
00006  */
00007 
00008 #ifndef LASSERT_H
00009 #define LASSERT_H
00010 
00011 #include <stdio.h>
00012 #include <stdlib.h>
00013 
00014 #if 0
00015 #define FAIL exit (1)
00016 #else
00017 #define FAIL return 1
00018 #endif
00019 
00020 #define LASSERT(cond)                                                   \
00021     ({                                                                  \
00022         if (! (cond))                                                     \
00023         {                                                               \
00024             fprintf (stderr, "%s:%d: assertion FAILED: " #cond "\n",    \
00025                      __FILE__, __LINE__);                               \
00026             FAIL;                                                       \
00027         }                                                               \
00028     })
00029 
00030 #define LASSERTF(cond, fmt, a...)                                       \
00031     ({                                                                  \
00032         if (! (cond))                                                     \
00033         {                                                               \
00034             fprintf (stderr, "%s:%d: assertion FAILED: " #cond ": " fmt, \
00035                      __FILE__, __LINE__, ## a);                         \
00036             FAIL;                                                       \
00037         }                                                               \
00038     })
00039 
00040 #endif /* LASSERT_H */