//////////////////////////////////////////////////////////////////////////////
//
// Asura_PlatformBasics.cpp
//
// Copyright (c) 2006 Rebellion. All rights reserved.
//
//////////////////////////////////////////////////////////////////////////////

// I N C L U D E S ///////////////////////////////////////////////////////////

#include "Core/Asura.h"

// This file's header.
#include "Asura_PlatformBasics.h"

// Stdlib independent.
#include <wctype.h>

// F U N C T I O N   I M P L E M E N T A T I O N S ///////////////////////////

extern "C"
{

int wcsicmp( const Asura_UnicodeChar* wszA, const Asura_UnicodeChar* wszB )
{
    Asura_UnicodeChar wA, wB;

    do
    {
        wA = towlower( *wszA++ );
        wB = towlower( *wszB++ );
    }
    while( wA && wA == wB );

    return( wA - wB );
}

int wcsnicmp( const Asura_UnicodeChar* wszA, const Asura_UnicodeChar* wszB, size_t uMax )
{
    if( !uMax ) { return 0; }

    Asura_UnicodeChar wA, wB;

    do
    {
        wA = towlower( *wszA++ );
        wB = towlower( *wszB++ );
    }
    while( --uMax && wA && wA == wB );

    return( wA - wB );
}

}; // extern "C"
