X-Git-Url: https://pd.if.org/git/?p=pdclib;a=blobdiff_plain;f=includes%2Fstdlib.h;h=2724dcfdb685c4d755e31e66a1a74cfc508f643c;hp=c0efa68273dff2c5228ec7c517dfb06494ceacb4;hb=1d9d92ba957a0b8307c9a65c35867fde68e6533b;hpb=c6c6780c8ee488461ffd0adbfdda60d1adce8c4e diff --git a/includes/stdlib.h b/includes/stdlib.h index c0efa68..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,27 +48,19 @@ typedef struct long long remainder; } lldiv_t; -typedef size_t; // TODO +#ifndef _SIZE_T +#define _SIZE_T _SIZE_T +typedef __size_t size_t +#endif /* _SIZE_T */ -#ifndef __cplusplus -typedef wchar_t; // TODO -#endif // __cplusplus +#ifndef _WCHAR_T +#define _WCHAR_T _WCHAR_T +typedef __wchar_t wchar_t +#endif /* _WCHAR_T */ -// ---------------------------------------------------------------------------- -// FUNCTIONS - C++ - -#ifdef __cplusplus - -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 ); - -#endif // __cplusplus - -// ---------------------------------------------------------------------------- -// FUNCTIONS - Standard C +/* ---------------------------------------------------------------------------- + * FUNCTIONS + * --------------------------------------------------------------------------*/ int abs( int i ); long long llabs( long long i ); @@ -104,15 +105,8 @@ void abort( void ); char * getenv( const char * name ); int system( const char * s ); -#ifdef __cplusplus -#define __cppwrapper( x ) extern "C++" x \ -extern "C" x -#else -#define __cppwrapper( x ) x -#endif // __cplusplus - -__cppwrapper( int atexit( void (*func) ( void ) ) { /* TODO */ }; ) -__cppwrapper( void * bsearch( const void * key, const void * base, size_t nelem, size_t size, int (*cmp) ( const void * ck, const void * ce) ) { /* TODO */ }; ) -__cppwrapper( void qsort( void * base, size_t nelem, size_t size, int (*cmp) ( const void * e1, const void * e2) ) { /* TODO */ }; ) +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 // __STDLIB_H +#endif /* _STDLIB_H */