Exemplo n.º 1
0
char * strerror(int errnum)
{
    if (errnum == 0 || errnum >= _PDCLIB_ERRNO_MAX) {
        return (char *)"Unknown error";
    } else {
        return _PDCLIB_threadlocale()->_ErrnoStr[errnum];
    }
}
Exemplo n.º 2
0
locale_t uselocale( locale_t newloc )
{
    locale_t oldloc = _PDCLIB_threadlocale();

    if(newloc == LC_GLOBAL_LOCALE) {
        _PDCLIB_setthreadlocale(NULL);
    } else if(newloc != NULL) {
        _PDCLIB_setthreadlocale(newloc);
    }

    return oldloc;
}
Exemplo n.º 3
0
/* TODO: Doing this via a static array is not the way to do it. */
void perror( const char * s )
{
    if ( ( s != NULL ) && ( s[0] != '\n' ) )
    {
        fprintf( stderr, "%s: ", s );
    }
    if ( errno >= _PDCLIB_ERRNO_MAX )
    {
        fprintf( stderr, "Unknown error\n" );
    }
    else
    {
        fprintf( stderr, "%s\n", _PDCLIB_threadlocale()->_ErrnoStr[errno] );
    }
    return;
}
Exemplo n.º 4
0
int isupper( int c )
{
    return ( _PDCLIB_threadlocale()->_CType[c].flags & _PDCLIB_CTYPE_UPPER );
}
Exemplo n.º 5
0
wint_t towctrans( wint_t wc, wctrans_t trans )
{
    return _PDCLIB_towctrans_l( wc, trans, _PDCLIB_threadlocale() );
}
Exemplo n.º 6
0
int isxdigit( int c )
{
    return ( _PDCLIB_threadlocale()->_CType[c].flags & _PDCLIB_CTYPE_XDIGT );
}
Exemplo n.º 7
0
int isblank( int c )
{
    return ( _PDCLIB_threadlocale()->_CType[c].flags & _PDCLIB_CTYPE_BLANK );
}
Exemplo n.º 8
0
wint_t towupper( wint_t wc )
{
    return _PDCLIB_towupper_l( wc, _PDCLIB_threadlocale() );
}
Exemplo n.º 9
0
/* strxfrm( char *, const char *, size_t )

   This file is part of the Public Domain C Library (PDCLib).
   Permission is granted to use, modify, and / or redistribute at will.
*/

#include <string.h>

#ifndef REGTEST

#include <_PDCLIB_locale.h>

size_t strxfrm( char * _PDCLIB_restrict s1, const char * _PDCLIB_restrict s2, size_t n )
{
    const _PDCLIB_ctype_t *ctype = _PDCLIB_threadlocale()->_CType;
    size_t len = strlen( s2 );
    if ( len < n )
    {
        /* Cannot use strncpy() here as the filling of s1 with '\0' is not part
           of the spec.
        */
        while ( n-- && ( *s1++ = ctype[(unsigned char)*s2++].collation ) );
    }
    return len;
}

#endif

#ifdef TEST
#include <_PDCLIB_test.h>
Exemplo n.º 10
0
int islower(int c)
{
    return (_PDCLIB_threadlocale()->_CType[c].flags & _PDCLIB_CTYPE_LOWER);
}
Exemplo n.º 11
0
int isalnum( int c )
{
    return ( _PDCLIB_threadlocale()->_CType[c].flags & ( _PDCLIB_CTYPE_ALPHA | _PDCLIB_CTYPE_DIGIT ) );
}
Exemplo n.º 12
0
int ispunct( int c )
{
    return ( _PDCLIB_threadlocale()->_CType[c].flags & _PDCLIB_CTYPE_PUNCT );
}
Exemplo n.º 13
0
int iswctype( wint_t wc, wctype_t desc )
{
    return _PDCLIB_iswctype_l( wc, desc, _PDCLIB_threadlocale() );
}
Exemplo n.º 14
0
struct lconv * localeconv( void )
{
    return &_PDCLIB_threadlocale()->_Conv;
}
Exemplo n.º 15
0
int mbsinit( const mbstate_t * ps )
{
    return _PDCLIB_mbsinit_l(ps, _PDCLIB_threadlocale());
}