ntdll: Add wrappers for the string functions.

This commit is contained in:
Alexandre Julliard 2006-04-18 20:30:43 +02:00
parent b18b9f3753
commit 473fbcb781
3 changed files with 491 additions and 55 deletions

View File

@ -1249,18 +1249,18 @@
@ cdecl -private _i64tow(double ptr long)
@ cdecl -private _itoa(long ptr long)
@ cdecl -private _itow(long ptr long)
@ cdecl -private _lfind(ptr ptr ptr long ptr) lfind
@ cdecl -private _lfind(ptr ptr ptr long ptr)
@ cdecl -private _ltoa(long ptr long)
@ cdecl -private _ltow(long ptr long)
@ cdecl -private _memccpy(ptr ptr long long) memccpy
@ cdecl -private _memicmp(str str long) NTDLL__memicmp
@ varargs -private _snprintf(ptr long ptr) snprintf
@ cdecl -private _memccpy(ptr ptr long long)
@ cdecl -private _memicmp(str str long)
@ varargs -private _snprintf(ptr long ptr)
@ varargs -private _snwprintf(wstr long wstr)
@ cdecl -private _splitpath(str ptr ptr ptr ptr)
@ cdecl -private _strcmpi(str str) strcasecmp
@ cdecl -private _stricmp(str str) strcasecmp
@ cdecl -private _strcmpi(str str) _stricmp
@ cdecl -private _stricmp(str str)
@ cdecl -private _strlwr(str)
@ cdecl -private _strnicmp(str str long) strncasecmp
@ cdecl -private _strnicmp(str str long)
@ cdecl -private _strupr(str)
# @ stub -private _tolower
# @ stub -private _toupper
@ -1268,8 +1268,8 @@
@ cdecl -private _ui64tow(double ptr long)
@ cdecl -private _ultoa(long ptr long)
@ cdecl -private _ultow(long ptr long)
@ cdecl -private _vsnprintf(ptr long str ptr) vsnprintf
@ cdecl -private _vsnwprintf(ptr long wstr ptr) vsnprintfW
@ cdecl -private _vsnprintf(ptr long str ptr)
@ cdecl -private _vsnwprintf(ptr long wstr ptr)
@ cdecl -private _wcsicmp(wstr wstr) NTDLL__wcsicmp
@ cdecl -private _wcslwr(wstr) NTDLL__wcslwr
@ cdecl -private _wcsnicmp(wstr wstr long) NTDLL__wcsnicmp
@ -1279,68 +1279,68 @@
@ cdecl -private _wtol(wstr)
@ cdecl -private abs(long)
@ cdecl -private atan(double)
@ cdecl -private atoi(str)
@ cdecl -private atol(str)
@ cdecl -private bsearch(ptr ptr long long ptr)
@ cdecl -private atoi(str) NTDLL_atoi
@ cdecl -private atol(str) NTDLL_atol
@ cdecl -private bsearch(ptr ptr long long ptr) NTDLL_bsearch
@ cdecl -private ceil(double)
@ cdecl -private cos(double)
@ cdecl -private fabs(double)
@ cdecl -private floor(double)
@ cdecl -private isalnum(long)
@ cdecl -private isalpha(long)
@ cdecl -private iscntrl(long)
@ cdecl -private isdigit(long)
@ cdecl -private isgraph(long)
@ cdecl -private islower(long)
@ cdecl -private isprint(long)
@ cdecl -private ispunct(long)
@ cdecl -private isspace(long)
@ cdecl -private isupper(long)
@ cdecl -private isalnum(long) NTDLL_isalnum
@ cdecl -private isalpha(long) NTDLL_isalpha
@ cdecl -private iscntrl(long) NTDLL_iscntrl
@ cdecl -private isdigit(long) NTDLL_isdigit
@ cdecl -private isgraph(long) NTDLL_isgraph
@ cdecl -private islower(long) NTDLL_islower
@ cdecl -private isprint(long) NTDLL_isprint
@ cdecl -private ispunct(long) NTDLL_ispunct
@ cdecl -private isspace(long) NTDLL_isspace
@ cdecl -private isupper(long) NTDLL_isupper
@ cdecl -private iswalpha(long) NTDLL_iswalpha
@ cdecl -private iswctype(long long) NTDLL_iswctype
@ cdecl -private iswdigit(long) NTDLL_iswdigit
@ cdecl -private iswlower(long) NTDLL_iswlower
@ cdecl -private iswspace(long) NTDLL_iswspace
@ cdecl -private iswxdigit(long) NTDLL_iswxdigit
@ cdecl -private isxdigit(long)
@ cdecl -private isxdigit(long) NTDLL_isxdigit
@ cdecl -private labs(long)
@ cdecl -private log(double)
@ cdecl -private mbstowcs(ptr str long) NTDLL_mbstowcs
@ cdecl -private memchr(ptr long long)
@ cdecl -private memcmp(ptr ptr long)
@ cdecl -private memchr(ptr long long) NTDLL_memchr
@ cdecl -private memcmp(ptr ptr long) NTDLL_memcmp
@ cdecl -private memcpy(ptr ptr long) NTDLL_memcpy
@ cdecl -private memmove(ptr ptr long)
@ cdecl -private memset(ptr long long)
@ cdecl -private memmove(ptr ptr long) NTDLL_memmove
@ cdecl -private memset(ptr long long) NTDLL_memset
@ cdecl -private pow(double double)
@ cdecl -private qsort(ptr long long ptr)
@ cdecl -private qsort(ptr long long ptr) NTDLL_qsort
@ cdecl -private sin(double)
@ varargs -private sprintf(str str)
@ varargs -private sprintf(str str) NTDLL_sprintf
@ cdecl -private sqrt(double)
@ varargs -private sscanf(str str)
@ cdecl -private strcat(str str)
@ cdecl -private strchr(str long)
@ cdecl -private strcmp(str str)
@ cdecl -private strcpy(ptr str)
@ cdecl -private strcspn(str str)
@ cdecl -private strlen(str)
@ cdecl -private strncat(str str long)
@ cdecl -private strncmp(str str long)
@ cdecl -private strncpy(ptr str long)
@ cdecl -private strpbrk(str str)
@ cdecl -private strrchr(str long)
@ cdecl -private strspn(str str)
@ cdecl -private strstr(str str)
@ cdecl -private strtol(str ptr long)
@ cdecl -private strtoul(str ptr long)
@ varargs -private sscanf(str str) NTDLL_sscanf
@ cdecl -private strcat(str str) NTDLL_strcat
@ cdecl -private strchr(str long) NTDLL_strchr
@ cdecl -private strcmp(str str) NTDLL_strcmp
@ cdecl -private strcpy(ptr str) NTDLL_strcpy
@ cdecl -private strcspn(str str) NTDLL_strcspn
@ cdecl -private strlen(str) NTDLL_strlen
@ cdecl -private strncat(str str long) NTDLL_strncat
@ cdecl -private strncmp(str str long) NTDLL_strncmp
@ cdecl -private strncpy(ptr str long) NTDLL_strncpy
@ cdecl -private strpbrk(str str) NTDLL_strpbrk
@ cdecl -private strrchr(str long) NTDLL_strrchr
@ cdecl -private strspn(str str) NTDLL_strspn
@ cdecl -private strstr(str str) NTDLL_strstr
@ cdecl -private strtol(str ptr long) NTDLL_strtol
@ cdecl -private strtoul(str ptr long) NTDLL_strtoul
@ varargs -private swprintf(wstr wstr) NTDLL_swprintf
@ cdecl -private tan(double)
@ cdecl -private tolower(long)
@ cdecl -private toupper(long)
@ cdecl -private tolower(long) NTDLL_tolower
@ cdecl -private toupper(long) NTDLL_toupper
@ cdecl -private towlower(long) NTDLL_towlower
@ cdecl -private towupper(long) NTDLL_towupper
@ stdcall vDbgPrintEx(long long str ptr)
@ stdcall vDbgPrintExWithPrefix(str long long str ptr)
@ cdecl -private vsprintf(ptr str ptr)
@ cdecl -private vsprintf(ptr str ptr) NTDLL_vsprintf
@ cdecl -private wcscat(wstr wstr) NTDLL_wcscat
@ cdecl -private wcschr(wstr long) NTDLL_wcschr
@ cdecl -private wcscmp(wstr wstr) NTDLL_wcscmp

View File

@ -25,12 +25,219 @@
#include <ctype.h>
#include <stdarg.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <search.h>
#include "windef.h"
#include "winternl.h"
/*********************************************************************
* memchr (NTDLL.@)
*/
void * __cdecl NTDLL_memchr( const void *ptr, int c, size_t n )
{
return memchr( ptr, c, n );
}
/*********************************************************************
* memcmp (NTDLL.@)
*/
int __cdecl NTDLL_memcmp( const void *ptr1, const void *ptr2, size_t n )
{
return memcmp( ptr1, ptr2, n );
}
/*********************************************************************
* memcpy (NTDLL.@)
*
* NOTES
* Behaves like memmove.
*/
void * __cdecl NTDLL_memcpy( void *dst, const void *src, size_t n )
{
return memmove( dst, src, n );
}
/*********************************************************************
* memmove (NTDLL.@)
*/
void * __cdecl NTDLL_memmove( void *dst, const void *src, size_t n )
{
return memmove( dst, src, n );
}
/*********************************************************************
* memset (NTDLL.@)
*/
void * __cdecl NTDLL_memset( void *dst, int c, size_t n )
{
return memset( dst, c, n );
}
/*********************************************************************
* bsearch (NTDLL.@)
*/
void * __cdecl NTDLL_bsearch( const void *key, const void *base, size_t nmemb,
size_t size, int (*compar)(const void *, const void *) )
{
return bsearch( key, base, nmemb, size, compar );
}
/*********************************************************************
* qsort (NTDLL.@)
*/
void __cdecl NTDLL_qsort( void *base, size_t nmemb, size_t size,
int(*compar)(const void *, const void *) )
{
return qsort( base, nmemb, size, compar );
}
/*********************************************************************
* _lfind (NTDLL.@)
*/
void * __cdecl _lfind( const void *key, const void *base, size_t *nmemb,
size_t size, int(*compar)(const void *, const void *) )
{
return lfind( key, base, nmemb, size, compar );
}
/*********************************************************************
* strcat (NTDLL.@)
*/
char * __cdecl NTDLL_strcat( char *dst, const char *src )
{
return strcat( dst, src );
}
/*********************************************************************
* strchr (NTDLL.@)
*/
char * __cdecl NTDLL_strchr( const char *str, int c )
{
return strchr( str, c );
}
/*********************************************************************
* strcmp (NTDLL.@)
*/
int __cdecl NTDLL_strcmp( const char *str1, const char *str2 )
{
return strcmp( str1, str2 );
}
/*********************************************************************
* strcpy (NTDLL.@)
*/
char * __cdecl NTDLL_strcpy( char *dst, const char *src )
{
return strcpy( dst, src );
}
/*********************************************************************
* strcspn (NTDLL.@)
*/
size_t __cdecl NTDLL_strcspn( const char *str, const char *reject )
{
return strcspn( str, reject );
}
/*********************************************************************
* strlen (NTDLL.@)
*/
size_t __cdecl NTDLL_strlen( const char *str )
{
return strlen( str );
}
/*********************************************************************
* strncat (NTDLL.@)
*/
char * __cdecl NTDLL_strncat( char *dst, const char *src, size_t len )
{
return strncat( dst, src, len );
}
/*********************************************************************
* strncmp (NTDLL.@)
*/
int __cdecl NTDLL_strncmp( const char *str1, const char *str2, size_t len )
{
return strncmp( str1, str2, len );
}
/*********************************************************************
* strncpy (NTDLL.@)
*/
char * __cdecl NTDLL_strncpy( char *dst, const char *src, size_t len )
{
return strncpy( dst, src, len );
}
/*********************************************************************
* strpbrk (NTDLL.@)
*/
char * __cdecl NTDLL_strpbrk( const char *str, const char *accept )
{
return strpbrk( str, accept );
}
/*********************************************************************
* strrchr (NTDLL.@)
*/
char * __cdecl NTDLL_strrchr( const char *str, int c )
{
return strrchr( str, c );
}
/*********************************************************************
* strspn (NTDLL.@)
*/
size_t __cdecl NTDLL_strspn( const char *str, const char *accept )
{
return strspn( str, accept );
}
/*********************************************************************
* strstr (NTDLL.@)
*/
char * __cdecl NTDLL_strstr( const char *haystack, const char *needle )
{
return strstr( haystack, needle );
}
/*********************************************************************
* _memccpy (NTDLL.@)
*/
void * __cdecl _memccpy( void *dst, const void *src, int c, size_t n )
{
return memccpy( dst, src, c, n );
}
/*********************************************************************
* _memicmp (NTDLL.@)
*
@ -49,7 +256,7 @@
* Any Nul characters in s1 or s2 are ignored. This function always
* compares up to len bytes or the first place where s1 and s2 differ.
*/
INT __cdecl NTDLL__memicmp( LPCSTR s1, LPCSTR s2, DWORD len )
INT __cdecl _memicmp( LPCSTR s1, LPCSTR s2, DWORD len )
{
int ret = 0;
while (len--)
@ -63,14 +270,21 @@ INT __cdecl NTDLL__memicmp( LPCSTR s1, LPCSTR s2, DWORD len )
/*********************************************************************
* memcpy (NTDLL.@)
*
* NOTES
* Behaves like memmove.
* _stricmp (NTDLL.@)
* _strcmpi (NTDLL.@)
*/
void * __cdecl NTDLL_memcpy( void *dst, const void *src, size_t n )
int __cdecl _stricmp( LPCSTR str1, LPCSTR str2 )
{
return memmove( dst, src, n );
return strcasecmp( str1, str2 );
}
/*********************************************************************
* _strnicmp (NTDLL.@)
*/
int __cdecl _strnicmp( LPCSTR str1, LPCSTR str2, size_t n )
{
return strncasecmp( str1, str2, n );
}
@ -114,6 +328,159 @@ LPSTR __cdecl _strlwr( LPSTR str )
}
/*********************************************************************
* tolower (NTDLL.@)
*/
int __cdecl NTDLL_tolower( int c )
{
return tolower( c );
}
/*********************************************************************
* toupper (NTDLL.@)
*/
int __cdecl NTDLL_toupper( int c )
{
return toupper( c );
}
/*********************************************************************
* isalnum (NTDLL.@)
*/
int __cdecl NTDLL_isalnum( int c )
{
return isalnum( c );
}
/*********************************************************************
* isalpha (NTDLL.@)
*/
int __cdecl NTDLL_isalpha( int c )
{
return isalpha( c );
}
/*********************************************************************
* iscntrl (NTDLL.@)
*/
int __cdecl NTDLL_iscntrl( int c )
{
return iscntrl( c );
}
/*********************************************************************
* isdigit (NTDLL.@)
*/
int __cdecl NTDLL_isdigit( int c )
{
return isdigit( c );
}
/*********************************************************************
* isgraph (NTDLL.@)
*/
int __cdecl NTDLL_isgraph( int c )
{
return isgraph( c );
}
/*********************************************************************
* islower (NTDLL.@)
*/
int __cdecl NTDLL_islower( int c )
{
return islower( c );
}
/*********************************************************************
* isprint (NTDLL.@)
*/
int __cdecl NTDLL_isprint( int c )
{
return isprint( c );
}
/*********************************************************************
* ispunct (NTDLL.@)
*/
int __cdecl NTDLL_ispunct( int c )
{
return ispunct( c );
}
/*********************************************************************
* isspace (NTDLL.@)
*/
int __cdecl NTDLL_isspace( int c )
{
return isspace( c );
}
/*********************************************************************
* isupper (NTDLL.@)
*/
int __cdecl NTDLL_isupper( int c )
{
return isupper( c );
}
/*********************************************************************
* isxdigit (NTDLL.@)
*/
int __cdecl NTDLL_isxdigit( int c )
{
return isxdigit( c );
}
/*********************************************************************
* strtol (NTDLL.@)
*/
long __cdecl NTDLL_strtol( const char *nptr, char **endptr, int base )
{
return strtol( nptr, endptr, base );
}
/*********************************************************************
* strtoul (NTDLL.@)
*/
unsigned long __cdecl NTDLL_strtoul( const char *nptr, char **endptr, int base )
{
return strtoul( nptr, endptr, base );
}
/*********************************************************************
* atoi (NTDLL.@)
*/
int __cdecl NTDLL_atoi( const char *nptr )
{
return atoi( nptr );
}
/*********************************************************************
* atol (NTDLL.@)
*/
long __cdecl NTDLL_atol( const char *nptr )
{
return atol( nptr );
}
/*********************************************************************
* _ultoa (NTDLL.@)
*
@ -384,6 +751,66 @@ LONGLONG __cdecl _atoi64( char *str )
}
/*********************************************************************
* sprintf (NTDLL.@)
*/
int __cdecl NTDLL_sprintf( char *str, const char *format, ... )
{
int ret;
va_list valist;
va_start( valist, format );
ret = vsprintf( str, format, valist );
va_end( valist );
return ret;
}
/*********************************************************************
* vsprintf (NTDLL.@)
*/
int __cdecl NTDLL_vsprintf( char *str, const char *format, va_list args )
{
return vsprintf( str, format, args );
}
/*********************************************************************
* _snprintf (NTDLL.@)
*/
int __cdecl _snprintf( char *str, size_t len, const char *format, ... )
{
int ret;
va_list valist;
va_start( valist, format );
ret = vsnprintf( str, len, format, valist );
va_end( valist );
return ret;
}
/*********************************************************************
* _vsnprintf (NTDLL.@)
*/
int __cdecl _vsnprintf( char *str, size_t len, const char *format, va_list args )
{
return vsnprintf( str, len, format, args );
}
/*********************************************************************
* sscanf (NTDLL.@)
*/
int __cdecl NTDLL_sscanf( const char *str, const char *format, ... )
{
int ret;
va_list valist;
va_start( valist, format );
ret = vsscanf( str, format, valist );
va_end( valist );
return ret;
}
/*********************************************************************
* _splitpath (NTDLL.@)
*

View File

@ -755,3 +755,12 @@ int __cdecl NTDLL_swprintf(WCHAR *str, const WCHAR *format, ...)
va_end(valist);
return retval;
}
/***********************************************************************
* _vsnwprintf (NTDLL.@)
*/
int __cdecl _vsnwprintf( WCHAR *str, unsigned int len, const WCHAR *format, va_list args )
{
return vsnprintfW( str, len, format, args );
}