/*									tab:8
 *
 * local_assert.h - assertion definitions and generic macro protection
 *
 * "Copyright (c) 1997 by Steve Lumetta and The Regents of the University 
 * of California.  All rights reserved."
 *
 * Permission to use, copy, modify, and distribute this software and its
 * documentation for any purpose, without fee, and without written agreement is
 * hereby granted, provided that the above copyright notice and the following
 * two paragraphs appear in all copies of this software.
 * 
 * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
 * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
 * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
 * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
 * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS."
 *
 * Author:	    Steve Lumetta
 * Version:	    2
 * Creation Date:   Thu Mar  6 15:31:08 1997
 * Filename:	    local_assert.h
 * History:
 *	SL	2	Wed Feb 17 18:54:40 1999
 *		Modified for HTTP push server.
 *	SL	1	Thu Mar  6 15:31:08 1997
 *		Extracted from another system of mine.
 */


#ident "$Id$"


#ifndef _LOCAL_ASSERT_H
#define _LOCAL_ASSERT_H


#include "print_error.h"


#ifndef NDEBUG
#define ASSERT_STRING static const char* static_local_filename = __FILE__
#define ASSERT(expr)                                         \
    if (expr) {                                              \
    } else {                                                 \
	print_log ("Assert failed: file \"%s,\" line %d.\n", \
		   static_local_filename, __LINE__);         \
	abort ();                                            \
    }
#else /* NDEBUG */
#define ASSERT_STRING
#define ASSERT(expr)
#endif /* NDEBUG */


#endif /* _LOCAL_ASSERT_H */