X-Git-Url: https://pd.if.org/git/?p=pdclib;a=blobdiff_plain;f=includes%2Fstdlib.h;h=2724dcfdb685c4d755e31e66a1a74cfc508f643c;hp=4518f2273111f603df9b25fb88d1c8283133288d;hb=refs%2Ftags%2FOLD;hpb=ac3f809c3c10347c110fac3db93af0954eda98bb diff --git a/includes/stdlib.h b/includes/stdlib.h index 4518f22..2724dcf 100644 --- a/includes/stdlib.h +++ b/includes/stdlib.h @@ -1,26 +1,35 @@ -// ---------------------------------------------------------------------------- -// $Id$ -// ---------------------------------------------------------------------------- -// Public Domain C Library - http://pdclib.sourceforge.net -// This code is Public Domain. Use, modify, and redistribute at will. -// ---------------------------------------------------------------------------- -// General utilities -// ---------------------------------------------------------------------------- - -#ifndef __STDLIB_H -#define __STDLIB_H __STDLIB_H - -// ---------------------------------------------------------------------------- -// MACROS - -#define EXIT_FAILURE // TODO -#define EXIT_SUCCESS // TODO -#define MB_CUR_MAX // TODO -#define NULL 0 -#define RAND_MAX // TODO - -// ---------------------------------------------------------------------------- -// TYPEDEFS +/* ---------------------------------------------------------------------------- + * $Id$ + * ---------------------------------------------------------------------------- + * Public Domain C Library - http://pdclib.sourceforge.net + * This code is Public Domain. Use, modify, and redistribute at will. + * ---------------------------------------------------------------------------- + * General utilities + * --------------------------------------------------------------------------*/ + +#ifndef _STDLIB_H +#define _STDLIB_H _STDLIB_H + +#ifndef _NULL +#include "__intern.h" +#endif /* _NULL */ + +/* TODO: Documentation */ + +/* ---------------------------------------------------------------------------- + * MACROS + * --------------------------------------------------------------------------*/ + +#define NULL _NULL + +#define EXIT_FAILURE /* TODO */ +#define EXIT_SUCCESS /* TODO */ +#define MB_CUR_MAX /* TODO */ +#define RAND_MAX /* TODO */ + +/* ---------------------------------------------------------------------------- + * TYPEDEFS + * --------------------------------------------------------------------------*/ typedef struct { @@ -39,42 +48,19 @@ typedef struct long long remainder; } lldiv_t; -typedef size_t; // TODO - -#ifndef __cplusplus -typedef wchar_t; // TODO -#endif // __cplusplus - -// ---------------------------------------------------------------------------- -// FUNCTIONS - C++ +#ifndef _SIZE_T +#define _SIZE_T _SIZE_T +typedef __size_t size_t +#endif /* _SIZE_T */ -#ifdef __cplusplus +#ifndef _WCHAR_T +#define _WCHAR_T _WCHAR_T +typedef __wchar_t wchar_t +#endif /* _WCHAR_T */ -long abs( long i ); -long long abs( long long i ); - -ldiv_t div( long numer, long denom ); -lldiv_t div( long long numer, long long denom ); - -extern "C++" int atexit( void (*func) ( void ) ); -extern "C" int atexit( void (*func) ( void ) ); - -extern "C++" void * bsearch( const void * key, const void * base, - size_t nelem, size_t size, - int (*cmp) ( const void * ck, const void * ce ) ); -extern "C" void * bsearch( const void * key, const void * base, - size_t nelem, size_t size, - int (*cmp) ( const void * ck, const void * ce ) ); - -extern "C++" void qsort( void * base, size_t nelem, size_t size, - int (*cmp) ( const void * e1, const void * e2 ) ); -extern "C" void qsort( void * base, size_t nelem, size_t size, - int (*cmp) ( const void * e1, const void * e2 ) ); - -#endif // __cplusplus - -// ---------------------------------------------------------------------------- -// FUNCTIONS - Standard C +/* ---------------------------------------------------------------------------- + * FUNCTIONS + * --------------------------------------------------------------------------*/ int abs( int i ); long long llabs( long long i ); @@ -119,14 +105,8 @@ void abort( void ); char * getenv( const char * name ); int system( const char * s ); -#ifndef __cplusplus - int atexit( void (*func) ( void ) ); -void * bsearch( const void * key, const void * base, size_t nelem, size_t size, - int (*cmp) ( const void * ck, const void * ce) ); -void qsort( void * base, size_t nelem, size_t size, - int (*cmp) ( const void * e1, const void * e2) ); - -#endif // __cplusplus +void * bsearch( const void * key, const void * base, size_t nelem, size_t size, int (*cmp) ( const void * ck, const void * ce) ); +void qsort( void * base, size_t nelem, size_t size, int (*cmp) ( const void * e1, const void * e2) ); -#endif // __STDLIB_H +#endif /* _STDLIB_H */