/*++

Copyright (c) 1991	Microsoft Corporation

Module Name:

	wstring.h

Abstract:

	This module contains the prototypes for the wide character
	C-runtime support. Since there is no C-runtime support for
	wide characters, the functions here are wrappers to the
	single-byte counterparts

Author:

	Ramon San Andres (Ramonsa)	07-Jun-1991

Revision History:

--*/

typedef char	wchar;
typedef WCHAR	wchar_t;
typedef size_t	wsize_t;

long	watol( const wchar *);
wchar * wcschr(const wchar *, int);
wchar * wcslwr(wchar *);
wchar * wcsrchr(const wchar *, int);
wchar * wcsupr(wchar *);
wsize_t wcscspn(const wchar *, const wchar *);
wsize_t wcsspn(const wchar *, const wchar *);
wchar * wcsstr(const wchar *, const wchar *);
int 	wctomb( char *s, wchar_t wchar );
int 	mbtowc(wchar_t *pwc, const char *s, size_t n);
wchar_t towupper( wchar_t wc);

INLINE
long
watol(
	const wchar * p
	)
{
	return atol( (char *)p );
}


INLINE
wchar *
wcschr (
	const wchar * p,
	int 		  c
	)
{
	return (wchar *)strchr( (char *)p, c);
}


INLINE
wchar *
wcslwr (
	wchar * p
	)
{
	return (wchar *)strlwr( (char *)p );
}

INLINE
wchar *
wcsrchr (
	const wchar * p,
	int 		  c
	)
{
	return (char *)strrchr( (char *)p, c);
}

INLINE
wchar *
wcsupr (
	wchar * p
	)
{
	return (char *)strupr( (char *)p );
}


INLINE
wsize_t
wcscspn (
	const wchar *p1,
	const wchar *p2
	)
{

	return (wsize_t)strcspn( (char *)p1, (char *)p2);

}

INLINE
wsize_t
wcsspn (
	const wchar *p1,
	const wchar *p2
	)
{

	return (wsize_t)strspn( (char *)p1, (char *)p2);

}


INLINE
wchar *
wcsstr (
	const wchar *p1,
	const wchar *p2
	)
{

	return (wchar *)strstr( (char *)p1, (char *)p2);

}


INLINE
int
wctomb (
	char *s,
	wchar_t wchar
	)
{

	if (s) {
		*s = (char)wchar;
		return 1;
	} else {
		return 0;
	}
}


INLINE
int
mbtowc (
	wchar_t *pwc,
	const char *s,
	size_t n
	)
{
	UNREFERENCED_PARAMETER( n );

	if ( s && *s && (n > 0) ) {
		*pwc = (wchar_t)(*s);
		return 1;
	} else {
		return 0;
	}

}


INLINE
wchar_t
towupper(
	wchar_t wc
	)
{

	return (wchar_t)toupper( (char)wc );

}