X-Git-Url: https://pd.if.org/git/?p=pdclib;a=blobdiff_plain;f=includes%2Fstdlib.h;h=2724dcfdb685c4d755e31e66a1a74cfc508f643c;hp=610f71c4ca40b6aabc7d7a1e44d824872ac3e236;hb=1d9d92ba957a0b8307c9a65c35867fde68e6533b;hpb=70f1c6f7c9d515ef426da68973511f46de57005a diff --git a/includes/stdlib.h b/includes/stdlib.h index 610f71c..2724dcf 100644 --- a/includes/stdlib.h +++ b/includes/stdlib.h @@ -1,28 +1,35 @@ -// ---------------------------------------------------------------------------- -// $Id$ -// ---------------------------------------------------------------------------- -// Public Domain C Library - http://pdclib.sourceforge.net -// This code is Public Domain. Use, modify, and redistribute at will. -// ---------------------------------------------------------------------------- -// General utilities -// ---------------------------------------------------------------------------- +/* ---------------------------------------------------------------------------- + * $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 _STDLIB_H +#define _STDLIB_H _STDLIB_H -// TODO: Documentation, C++ handling +#ifndef _NULL +#include "__intern.h" +#endif /* _NULL */ -// ---------------------------------------------------------------------------- -// MACROS +/* TODO: Documentation */ -#define EXIT_FAILURE // TODO -#define EXIT_SUCCESS // TODO -#define MB_CUR_MAX // TODO -#define NULL 0 -#define RAND_MAX // TODO +/* ---------------------------------------------------------------------------- + * MACROS + * --------------------------------------------------------------------------*/ -// ---------------------------------------------------------------------------- -// TYPEDEFS +#define NULL _NULL + +#define EXIT_FAILURE /* TODO */ +#define EXIT_SUCCESS /* TODO */ +#define MB_CUR_MAX /* TODO */ +#define RAND_MAX /* TODO */ + +/* ---------------------------------------------------------------------------- + * TYPEDEFS + * --------------------------------------------------------------------------*/ typedef struct { @@ -41,27 +48,19 @@ typedef struct long long remainder; } lldiv_t; -typedef size_t; // TODO - personality? - -#ifndef __cplusplus -typedef wchar_t; // TODO - personality? -#endif // __cplusplus - -// ---------------------------------------------------------------------------- -// FUNCTIONS - C++ - -#ifdef __cplusplus +#ifndef _SIZE_T +#define _SIZE_T _SIZE_T +typedef __size_t size_t +#endif /* _SIZE_T */ -long abs( long i ); -long long abs( long long i ); +#ifndef _WCHAR_T +#define _WCHAR_T _WCHAR_T +typedef __wchar_t wchar_t +#endif /* _WCHAR_T */ -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 ); @@ -106,17 +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 */ }; ) - -#undef __cppwrapper +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 */