ntdll: Avoid using toupperW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
34f3e7793b
commit
1cde869627
|
@ -1394,7 +1394,7 @@ static BOOLEAN match_filename( const UNICODE_STRING *name_str, const UNICODE_STR
|
||||||
if (is_case_sensitive)
|
if (is_case_sensitive)
|
||||||
while (name < name_end && (*name != *mask)) name++;
|
while (name < name_end && (*name != *mask)) name++;
|
||||||
else
|
else
|
||||||
while (name < name_end && (toupperW(*name) != toupperW(*mask))) name++;
|
while (name < name_end && (towupper(*name) != towupper(*mask))) name++;
|
||||||
next_to_retry = name;
|
next_to_retry = name;
|
||||||
break;
|
break;
|
||||||
case '?':
|
case '?':
|
||||||
|
@ -1403,7 +1403,7 @@ static BOOLEAN match_filename( const UNICODE_STRING *name_str, const UNICODE_STR
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (is_case_sensitive) mismatch = (*mask != *name);
|
if (is_case_sensitive) mismatch = (*mask != *name);
|
||||||
else mismatch = (toupperW(*mask) != toupperW(*name));
|
else mismatch = (towupper(*mask) != towupper(*name));
|
||||||
|
|
||||||
if (!mismatch)
|
if (!mismatch)
|
||||||
{
|
{
|
||||||
|
|
|
@ -89,13 +89,12 @@ static const WCHAR *get_basename( const WCHAR *name )
|
||||||
*
|
*
|
||||||
* Remove extension if it is ".dll".
|
* Remove extension if it is ".dll".
|
||||||
*/
|
*/
|
||||||
static inline void remove_dll_ext( WCHAR *ext )
|
static inline void remove_dll_ext( WCHAR *name )
|
||||||
{
|
{
|
||||||
if (ext[0] == '.' &&
|
static const WCHAR dllW[] = {'.','d','l','l',0};
|
||||||
toupperW(ext[1]) == 'D' &&
|
WCHAR *p = strrchrW( name, '.' );
|
||||||
toupperW(ext[2]) == 'L' &&
|
|
||||||
toupperW(ext[3]) == 'L' &&
|
if (p && !wcsicmp( p, dllW )) *p = 0;
|
||||||
!ext[4]) ext[0] = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -213,8 +212,7 @@ static void add_load_order_set( WCHAR *entry )
|
||||||
if (*end) *end++ = 0;
|
if (*end) *end++ = 0;
|
||||||
if (*entry)
|
if (*entry)
|
||||||
{
|
{
|
||||||
WCHAR *ext = strrchrW(entry, '.');
|
remove_dll_ext( entry );
|
||||||
if (ext) remove_dll_ext( ext );
|
|
||||||
ldo.modulename = entry;
|
ldo.modulename = entry;
|
||||||
add_load_order( &ldo );
|
add_load_order( &ldo );
|
||||||
entry = end;
|
entry = end;
|
||||||
|
@ -457,10 +455,9 @@ enum loadorder get_load_order( const WCHAR *app_name, const UNICODE_STRING *nt_n
|
||||||
if (!(len = strlenW(path))) return ret;
|
if (!(len = strlenW(path))) return ret;
|
||||||
if (!(module = RtlAllocateHeap( GetProcessHeap(), 0, (len + 2) * sizeof(WCHAR) ))) return ret;
|
if (!(module = RtlAllocateHeap( GetProcessHeap(), 0, (len + 2) * sizeof(WCHAR) ))) return ret;
|
||||||
strcpyW( module+1, path ); /* reserve module[0] for the wildcard char */
|
strcpyW( module+1, path ); /* reserve module[0] for the wildcard char */
|
||||||
|
remove_dll_ext( module + 1 );
|
||||||
basename = (WCHAR *)get_basename( module+1 );
|
basename = (WCHAR *)get_basename( module+1 );
|
||||||
|
|
||||||
if (len >= 4) remove_dll_ext( module + 1 + len - 4 );
|
|
||||||
|
|
||||||
/* first explicit module name */
|
/* first explicit module name */
|
||||||
if ((ret = get_load_order_value( std_key, app_key, module+1 )) != LO_INVALID)
|
if ((ret = get_load_order_value( std_key, app_key, module+1 )) != LO_INVALID)
|
||||||
goto done;
|
goto done;
|
||||||
|
|
|
@ -1638,7 +1638,8 @@ WCHAR __cdecl NTDLL_towlower( WCHAR ch )
|
||||||
*/
|
*/
|
||||||
WCHAR __cdecl NTDLL_towupper( WCHAR ch )
|
WCHAR __cdecl NTDLL_towupper( WCHAR ch )
|
||||||
{
|
{
|
||||||
return casemap( nls_info.UpperCaseTable, ch );
|
if (nls_info.UpperCaseTable) return casemap( nls_info.UpperCaseTable, ch );
|
||||||
|
return casemap_ascii( ch );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -298,6 +298,7 @@ ULONG __cdecl NTDLL_wcstoul( LPCWSTR s, LPWSTR *end, INT base );
|
||||||
|
|
||||||
#define wcsicmp(s1,s2) NTDLL__wcsicmp(s1,s2)
|
#define wcsicmp(s1,s2) NTDLL__wcsicmp(s1,s2)
|
||||||
#define wcsnicmp(s1,s2,n) NTDLL__wcsnicmp(s1,s2,n)
|
#define wcsnicmp(s1,s2,n) NTDLL__wcsnicmp(s1,s2,n)
|
||||||
|
#define towupper(c) NTDLL_towupper(c)
|
||||||
#define wcslwr(s) NTDLL__wcslwr(s)
|
#define wcslwr(s) NTDLL__wcslwr(s)
|
||||||
#define wcsupr(s) NTDLL__wcsupr(s)
|
#define wcsupr(s) NTDLL__wcsupr(s)
|
||||||
|
|
||||||
|
|
|
@ -670,7 +670,7 @@ static ULONG get_full_path_helper(LPCWSTR name, LPWSTR buffer, ULONG size)
|
||||||
|
|
||||||
case RELATIVE_DRIVE_PATH: /* c:foo */
|
case RELATIVE_DRIVE_PATH: /* c:foo */
|
||||||
dep = 2;
|
dep = 2;
|
||||||
if (toupperW(name[0]) != toupperW(cd->Buffer[0]) || cd->Buffer[1] != ':')
|
if (wcsnicmp( name, cd->Buffer, 2 ))
|
||||||
{
|
{
|
||||||
UNICODE_STRING var, val;
|
UNICODE_STRING var, val;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue