mirror of
https://github.com/reactos/reactos.git
synced 2024-12-27 09:34:43 +00:00
Renamed wtolower() to towlower().
Renamed wtoupper() to towupper(). Added some runtime functions. svn path=/trunk/; revision=425
This commit is contained in:
parent
490e4d94fc
commit
d5f96518f2
9 changed files with 133 additions and 66 deletions
|
@ -7,6 +7,9 @@
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
CbInitDccb
|
||||||
|
CbAcquireForRead
|
||||||
|
CbReleaseFromRead
|
||||||
DbgPrint
|
DbgPrint
|
||||||
ExAcquireFastMutex
|
ExAcquireFastMutex
|
||||||
ExAcquireFastMutexUnsafe
|
ExAcquireFastMutexUnsafe
|
||||||
|
@ -373,15 +376,24 @@ ZwSetInformationThread
|
||||||
ZwSetValueKey
|
ZwSetValueKey
|
||||||
ZwUnmapViewOfSection
|
ZwUnmapViewOfSection
|
||||||
ZwWriteFile
|
ZwWriteFile
|
||||||
|
isdigit
|
||||||
|
islower
|
||||||
|
isprint
|
||||||
|
isspace
|
||||||
|
isupper
|
||||||
|
isxdigit
|
||||||
|
memchr
|
||||||
|
memcpy
|
||||||
|
memmove
|
||||||
|
memset
|
||||||
sprintf
|
sprintf
|
||||||
|
tolower
|
||||||
|
toupper
|
||||||
|
towlower
|
||||||
|
towupper
|
||||||
|
vsprintf
|
||||||
wcslen
|
wcslen
|
||||||
wcschr
|
wcschr
|
||||||
wcscpy
|
wcscpy
|
||||||
wcsncat
|
wcsncat
|
||||||
wcsncpy
|
wcsncpy
|
||||||
CbInitDccb
|
|
||||||
CbAcquireForRead
|
|
||||||
CbReleaseFromRead
|
|
||||||
wtolower
|
|
||||||
tolower
|
|
||||||
toupper
|
|
||||||
|
|
|
@ -12,7 +12,8 @@ NT_OBJECTS = nt/port.o nt/channel.o nt/ntevent.o nt/nttimer.o nt/atom.o \
|
||||||
RTL_OBJECTS = rtl/vsprintf.o rtl/lookas.o rtl/unicode.o rtl/strtok.o \
|
RTL_OBJECTS = rtl/vsprintf.o rtl/lookas.o rtl/unicode.o rtl/strtok.o \
|
||||||
rtl/time.o rtl/unalign.o rtl/mem.o rtl/largeint.o rtl/ctype.o \
|
rtl/time.o rtl/unalign.o rtl/mem.o rtl/largeint.o rtl/ctype.o \
|
||||||
rtl/list.o rtl/slist.o rtl/interlck.o rtl/return.o \
|
rtl/list.o rtl/slist.o rtl/interlck.o rtl/return.o \
|
||||||
rtl/wstring.o rtl/memcpy.o
|
rtl/wstring.o rtl/memcpy.o rtl/memmove.o rtl/memset.o \
|
||||||
|
rtl/memchr.o
|
||||||
|
|
||||||
KE_OBJECTS = ke/main.o ke/timer.o ke/error.o ke/catch.o ke/exports.o \
|
KE_OBJECTS = ke/main.o ke/timer.o ke/error.o ke/catch.o ke/exports.o \
|
||||||
ke/dpc.o ke/wait.o ke/kqueue.o ke/dispatch.o \
|
ke/dpc.o ke/wait.o ke/kqueue.o ke/dispatch.o \
|
||||||
|
|
|
@ -1,13 +1,7 @@
|
||||||
EXPORTS
|
EXPORTS
|
||||||
memcpy
|
CbInitDccb
|
||||||
strtok
|
CbAcquireForRead
|
||||||
toupper
|
CbReleaseFromRead
|
||||||
wcschr
|
|
||||||
wcscpy
|
|
||||||
wcslen
|
|
||||||
wcsncpy
|
|
||||||
wcsncat
|
|
||||||
wtolower
|
|
||||||
DbgPrint
|
DbgPrint
|
||||||
ExAllocatePool
|
ExAllocatePool
|
||||||
ExFreePool
|
ExFreePool
|
||||||
|
@ -62,6 +56,24 @@ RtlLargeIntegerGreaterThan
|
||||||
RtlLargeIntegerShiftRight
|
RtlLargeIntegerShiftRight
|
||||||
RtlZeroMemory
|
RtlZeroMemory
|
||||||
ZwCreateDirectoryObject@12
|
ZwCreateDirectoryObject@12
|
||||||
CbInitDccb
|
isdigit
|
||||||
CbAcquireForRead
|
islower
|
||||||
CbReleaseFromRead
|
isprint
|
||||||
|
isspace
|
||||||
|
isupper
|
||||||
|
isxdigit
|
||||||
|
memchr
|
||||||
|
memcpy
|
||||||
|
memmove
|
||||||
|
memset
|
||||||
|
strtok
|
||||||
|
tolower
|
||||||
|
toupper
|
||||||
|
towlower
|
||||||
|
towupper
|
||||||
|
vsprintf
|
||||||
|
wcschr
|
||||||
|
wcscpy
|
||||||
|
wcslen
|
||||||
|
wcsncpy
|
||||||
|
wcsncat
|
||||||
|
|
|
@ -35,32 +35,30 @@ _L,_L,_L,_L,_L,_L,_L,_L,_L,_L,_L,_L,_L,_L,_L,_L, /* 224-239 */
|
||||||
_L,_L,_L,_L,_L,_L,_L,_P,_L,_L,_L,_L,_L,_L,_L,_L}; /* 240-255 */
|
_L,_L,_L,_L,_L,_L,_L,_P,_L,_L,_L,_L,_L,_L,_L,_L}; /* 240-255 */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int toupper(int c)
|
|
||||||
{
|
|
||||||
if ('a' <= c && 'z' >= c)
|
|
||||||
{
|
|
||||||
return(c + 'A' - 'a');
|
|
||||||
}
|
|
||||||
return(c);
|
|
||||||
}
|
|
||||||
|
|
||||||
int tolower(int c)
|
int isdigit(int c)
|
||||||
{
|
{
|
||||||
if ('A' <= c && 'Z' >= c)
|
return((c >= '0' && c <= '9'));
|
||||||
{
|
|
||||||
return(c + 'a' - 'A');
|
|
||||||
}
|
|
||||||
return(c);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int islower(int c)
|
int islower(int c)
|
||||||
{
|
{
|
||||||
return(('a' <= c && 'z' >= c));
|
return((c >= 'a' && c <= 'z'));
|
||||||
}
|
}
|
||||||
|
|
||||||
int isdigit(int c)
|
int isprint(int c)
|
||||||
{
|
{
|
||||||
return(('0' <= c && '9' >= c));
|
return((c >= ' ' && c <= '~'));
|
||||||
|
}
|
||||||
|
|
||||||
|
int isspace(int c)
|
||||||
|
{
|
||||||
|
return((c == ' ' || c == '\t'));
|
||||||
|
}
|
||||||
|
|
||||||
|
int isupper(int c)
|
||||||
|
{
|
||||||
|
return((c >= 'A') && (c <= 'Z'));
|
||||||
}
|
}
|
||||||
|
|
||||||
int isxdigit(int c)
|
int isxdigit(int c)
|
||||||
|
@ -68,3 +66,23 @@ int isxdigit(int c)
|
||||||
return(('0' <= c && '9' >= c) || ('a' <= 'c' && 'f' >= 'c') ||
|
return(('0' <= c && '9' >= c) || ('a' <= 'c' && 'f' >= 'c') ||
|
||||||
('A' <= c && 'Z' >= c));
|
('A' <= c && 'Z' >= c));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int tolower(int c)
|
||||||
|
{
|
||||||
|
return (c >= 'A' && c <= 'Z') ? c - ( 'A' - 'a' ) : c;
|
||||||
|
}
|
||||||
|
|
||||||
|
int toupper(int c)
|
||||||
|
{
|
||||||
|
return (c >= 'a' && c <= 'z') ? c + 'A' - 'a' : c;
|
||||||
|
}
|
||||||
|
|
||||||
|
wchar_t towlower(wchar_t c)
|
||||||
|
{
|
||||||
|
return (c >= 'A' && c <= 'Z') ? c - ( 'A' - 'a' ) : c;
|
||||||
|
}
|
||||||
|
|
||||||
|
wchar_t towupper(wchar_t c)
|
||||||
|
{
|
||||||
|
return (c >= 'a' && c <= 'z') ? c + 'A' - 'a' : c;
|
||||||
|
}
|
||||||
|
|
17
reactos/ntoskrnl/rtl/memchr.c
Normal file
17
reactos/ntoskrnl/rtl/memchr.c
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
/* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */
|
||||||
|
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
void *memchr(const void *s, int c, size_t n)
|
||||||
|
{
|
||||||
|
if (n)
|
||||||
|
{
|
||||||
|
const char *p = s;
|
||||||
|
do {
|
||||||
|
if (*p++ == c)
|
||||||
|
return (void *)(p-1);
|
||||||
|
} while (--n != 0);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
18
reactos/ntoskrnl/rtl/memmove.c
Normal file
18
reactos/ntoskrnl/rtl/memmove.c
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
|
||||||
|
void * memmove(void *dest,const void *src,size_t count)
|
||||||
|
{
|
||||||
|
char *char_dest = (char *)dest;
|
||||||
|
char *char_src = (char *)src;
|
||||||
|
|
||||||
|
while(count > 0 )
|
||||||
|
{
|
||||||
|
*char_dest = *char_src;
|
||||||
|
char_dest++;
|
||||||
|
char_src++;
|
||||||
|
count--;
|
||||||
|
}
|
||||||
|
|
||||||
|
return dest;
|
||||||
|
}
|
14
reactos/ntoskrnl/rtl/memset.c
Normal file
14
reactos/ntoskrnl/rtl/memset.c
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
void * memset(void *src, int val, size_t count)
|
||||||
|
{
|
||||||
|
char *char_src = src;
|
||||||
|
|
||||||
|
while(count>0) {
|
||||||
|
*char_src = val;
|
||||||
|
char_src++;
|
||||||
|
count--;
|
||||||
|
}
|
||||||
|
return src;
|
||||||
|
}
|
|
@ -29,19 +29,6 @@ VOID RtlUpperString(PSTRING DestinationString, PSTRING SourceString)
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
WCHAR wtoupper(WCHAR c)
|
|
||||||
{
|
|
||||||
if((c>='a') && (c<='z')) return c+Aa_Difference;
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
WCHAR wtolower(WCHAR c)
|
|
||||||
{
|
|
||||||
// DPRINT("c %c (c-Aa_Difference) %c\n",(char)c,(char)(c-Aa_Difference));
|
|
||||||
if((c>='A') && (c<='Z')) return c-Aa_Difference;
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
ULONG RtlAnsiStringToUnicodeSize(IN PANSI_STRING AnsiString)
|
ULONG RtlAnsiStringToUnicodeSize(IN PANSI_STRING AnsiString)
|
||||||
{
|
{
|
||||||
return AnsiString->Length*2;
|
return AnsiString->Length*2;
|
||||||
|
@ -165,8 +152,8 @@ LONG RtlCompareUnicodeString(PUNICODE_STRING String1, PUNICODE_STRING String2,
|
||||||
|
|
||||||
for(i=0; i<String1->Length; i++) {
|
for(i=0; i<String1->Length; i++) {
|
||||||
if(CaseInsensitive==TRUE) {
|
if(CaseInsensitive==TRUE) {
|
||||||
wc1=wtoupper(*String1->Buffer);
|
wc1=towupper(*String1->Buffer);
|
||||||
wc2=wtoupper(*String2->Buffer);
|
wc2=towupper(*String2->Buffer);
|
||||||
} else {
|
} else {
|
||||||
wc1=*String1->Buffer;
|
wc1=*String1->Buffer;
|
||||||
wc2=*String2->Buffer;
|
wc2=*String2->Buffer;
|
||||||
|
@ -283,8 +270,8 @@ BOOLEAN RtlEqualUnicodeString(PUNICODE_STRING String1, PUNICODE_STRING String2,
|
||||||
|
|
||||||
for(i=0; i<s1l; i++) {
|
for(i=0; i<s1l; i++) {
|
||||||
if(CaseInsensitive==TRUE) {
|
if(CaseInsensitive==TRUE) {
|
||||||
wc1=wtoupper(*String1->Buffer);
|
wc1=towupper(*String1->Buffer);
|
||||||
wc2=wtoupper(*String2->Buffer);
|
wc2=towupper(*String2->Buffer);
|
||||||
} else {
|
} else {
|
||||||
wc1=*String1->Buffer;
|
wc1=*String1->Buffer;
|
||||||
wc2=*String2->Buffer;
|
wc2=*String2->Buffer;
|
||||||
|
@ -500,7 +487,7 @@ NTSTATUS RtlUpcaseUnicodeString(IN OUT PUNICODE_STRING DestinationString,
|
||||||
};
|
};
|
||||||
|
|
||||||
for(i=0; i<SourceString->Length; i++) {
|
for(i=0; i<SourceString->Length; i++) {
|
||||||
*DestinationString->Buffer=wtoupper(*SourceString->Buffer);
|
*DestinationString->Buffer=towupper(*SourceString->Buffer);
|
||||||
DestinationString->Buffer++;
|
DestinationString->Buffer++;
|
||||||
SourceString->Buffer++;
|
SourceString->Buffer++;
|
||||||
};
|
};
|
||||||
|
|
|
@ -63,18 +63,6 @@ wcschr(const wchar_t *str, wchar_t ch)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
wchar_t towupper(wchar_t w)
|
|
||||||
{
|
|
||||||
if (w < L'A')
|
|
||||||
{
|
|
||||||
return(w + 'A');
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return(w);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int wcsicmp(const wchar_t* cs, const wchar_t* ct)
|
int wcsicmp(const wchar_t* cs, const wchar_t* ct)
|
||||||
{
|
{
|
||||||
while (*cs != '\0' && *ct != '\0' && towupper(*cs) == towupper(*ct))
|
while (*cs != '\0' && *ct != '\0' && towupper(*cs) == towupper(*ct))
|
||||||
|
|
Loading…
Reference in a new issue