- /*
- * $Id: bits.h,v 1.4 2005/06/14 22:41:51 mclark Exp $
- *
- * Copyright Metaparadigm Pte. Ltd. 2004.
- * Michael Clark <michael@metaparadigm.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public (LGPL)
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library 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: http://www.gnu.org/
- *
- */
-
- #ifndef _bits_h_
- #define _bits_h_
-
- #include "config.h"
-
- #if STDC_HEADERS
- # include <stddef.h>
- #endif /* STDC_HEADERS */
-
- /* CAW: wrapped in ifndef's to make win32 compliant
- ** this fails to take over GCC specifics, but this
- ** seems to be unimportant.
- */
-
- #ifndef min
- #define min(x,y) ({ \
- typeof(x) _x = (x); \
- typeof(y) _y = (y); \
- (void) (&_x == &_y); \
- _x < _y ? _x : _y; })
- #endif
-
- #ifndef max
- #define max(x,y) ({ \
- typeof(x) _x = (x); \
- typeof(y) _y = (y); \
- (void) (&_x == &_y); \
- _x > _y ? _x : _y; })
- #endif
-
- #define hexdigit(x) (((x) <= '9') ? (x) - '0' : ((x) & 7) + 9)
- #define error_ptr(error) ((void*)error)
- #define is_error(ptr) ((ptrdiff_t)ptr < (ptrdiff_t)-4000L)
-
- #endif
|