/* limits.h
 *
 * For lcc 4.0,
 * and other compilers which allow chars to be signed or unsigned by default.
 *
 * Stu Smith Sat 14th March 1998
 *
 */

#ifndef __LCC_LIMITS_H
#define __LCC_LIMITS_H



/* __LCC_LT holds library number, as we need to include original <limits.h>
   (since some (eg UnixLib) hold stuff like POSIX limits in <limits.h>).
	values are:-
		1	UnixLibQ
		notdef	Use standard values
 */

#if (__LCC_LT == 1)

/* UnixLibQ */
#include "/UnixQ:limits.h"

#elif (__LCC_LT == 2)

/* CStubs */

#error CStubs library not supported yet

#else

/* Unknown - use standard values */
#define CHAR_BIT	8
#define SCHAR_MIN	(-0x80)
#define SCHAR_MAX	0x7f
#define UCHAR_MAX	0xff
#define CHAR_MIN	0x00
#define CHAR_MAX	0xff
#define MB_LEN_MAX	1
#define SHRT_MIN	(short)(0x8000U)
#define SHRT_MAX	0x7fff
#define USHRT_MAX	0xffffU
#define INT_MIN 	(int)(0x80000000U)
#define INT_MAX 	0x7fffffff
#define UINT_MAX	0xffffffffU
#define LONGBITS 32
#define LONG_MIN	(long)(0x80000000UL)
#define LONG_MAX	0x7fffffffL
#define ULONG_MAX	0xffffffffUL

#endif



/* we assume chars are unsigned by default (like EasyC, GCC and LCC)
   but if __CHAR_SIGNED__ is defined, we change limits to signed values */

#ifdef __CHAR_SIGNED__
#undef CHAR_MIN
#undef CHAR_MAX
#define CHAR_MIN	SCHAR_MIN
#define CHAR_MAX	SCHAR_MAX
#else
#undef CHAR_MIN
#undef CHAR_MAX
#define CHAR_MIN	0x00
#define CHAR_MAX	UCHAR_MAX
#endif

#endif
