X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=includes%2Fstdlib.h;h=610f71c4ca40b6aabc7d7a1e44d824872ac3e236;hb=70f1c6f7c9d515ef426da68973511f46de57005a;hp=4518f2273111f603df9b25fb88d1c8283133288d;hpb=ac3f809c3c10347c110fac3db93af0954eda98bb;p=pdclib diff --git a/includes/stdlib.h b/includes/stdlib.h index 4518f22..610f71c 100644 --- a/includes/stdlib.h +++ b/includes/stdlib.h @@ -10,6 +10,8 @@ #ifndef __STDLIB_H #define __STDLIB_H __STDLIB_H +// TODO: Documentation, C++ handling + // ---------------------------------------------------------------------------- // MACROS @@ -39,10 +41,10 @@ typedef struct long long remainder; } lldiv_t; -typedef size_t; // TODO +typedef size_t; // TODO - personality? #ifndef __cplusplus -typedef wchar_t; // TODO +typedef wchar_t; // TODO - personality? #endif // __cplusplus // ---------------------------------------------------------------------------- @@ -56,21 +58,6 @@ 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 // ---------------------------------------------------------------------------- @@ -119,14 +106,17 @@ void abort( void ); char * getenv( const char * name ); int system( const char * s ); -#ifndef __cplusplus +#ifdef __cplusplus +#define __cppwrapper( x ) extern "C++" x \ +extern "C" x +#else +#define __cppwrapper( x ) x +#endif // __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) ); +__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 */ }; ) -#endif // __cplusplus +#undef __cppwrapper #endif // __STDLIB_H