mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 09:03:25 +00:00
Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys.
This commit is contained in:
parent
b94e2d8ca0
commit
c2c66aff7d
24198 changed files with 0 additions and 37285 deletions
55
sdk/lib/crt/string/strxfrm.c
Normal file
55
sdk/lib/crt/string/strxfrm.c
Normal file
|
@ -0,0 +1,55 @@
|
|||
#include <precomp.h>
|
||||
|
||||
#include <locale.h>
|
||||
#include <internal/wine/msvcrt.h>
|
||||
|
||||
size_t CDECL _strxfrm_l( char *dest, const char *src,
|
||||
size_t len, _locale_t locale )
|
||||
{
|
||||
MSVCRT_pthreadlocinfo locinfo;
|
||||
int ret;
|
||||
|
||||
if(!MSVCRT_CHECK_PMT(src)) return INT_MAX;
|
||||
if(!MSVCRT_CHECK_PMT(dest || !len)) return INT_MAX;
|
||||
|
||||
if(len > INT_MAX) {
|
||||
FIXME("len > INT_MAX not supported\n");
|
||||
len = INT_MAX;
|
||||
}
|
||||
|
||||
if(!locale)
|
||||
locinfo = get_locinfo();
|
||||
else
|
||||
locinfo = ((MSVCRT__locale_t)locale)->locinfo;
|
||||
|
||||
if(!locinfo->lc_handle[MSVCRT_LC_COLLATE]) {
|
||||
strncpy(dest, src, len);
|
||||
return strlen(src);
|
||||
}
|
||||
|
||||
ret = LCMapStringA(locinfo->lc_handle[MSVCRT_LC_COLLATE],
|
||||
LCMAP_SORTKEY, src, -1, NULL, 0);
|
||||
if(!ret) {
|
||||
if(len) dest[0] = 0;
|
||||
*_errno() = EILSEQ;
|
||||
return INT_MAX;
|
||||
}
|
||||
if(!len) return ret-1;
|
||||
|
||||
if(ret > len) {
|
||||
dest[0] = 0;
|
||||
*_errno() = ERANGE;
|
||||
return ret-1;
|
||||
}
|
||||
|
||||
return LCMapStringA(locinfo->lc_handle[MSVCRT_LC_COLLATE],
|
||||
LCMAP_SORTKEY, src, -1, dest, len) - 1;
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
* strxfrm (MSVCRT.@)
|
||||
*/
|
||||
size_t CDECL strxfrm( char *dest, const char *src, size_t len )
|
||||
{
|
||||
return _strxfrm_l(dest, src, len, NULL);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue