Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1993 Microsoft Corporation
Module Name:
spstring.h
Abstract:
Header file for functions to manipulate strings. These functions would ordinarily be performed by C Runtime routines except that we want to avoid linking this device driver with the kernel crt.
Author:
Ted Miller (tedm) 15-Jan-1994
Revision History:
--*/
//
// Character types.
//
#define _SP_NONE 0x00
#define _SP_SPACE 0x01
#define _SP_DIGIT 0x02
#define _SP_XDIGIT 0x04
#define _SP_UPPER 0x08
#define _SP_LOWER 0x10
//
// Optimize the size of the types array by noting that no characters
// above 'z' have any attributes we care about.
//
#define CTSIZE ('z'+1)
extern UCHAR _SpCharTypes[CTSIZE];
//
// Be careful using these as they evaluate their arguments more than once.
//
#define SpIsSpace(c) (((c) < CTSIZE) ? (_SpCharTypes[(c)] & _SP_SPACE) : FALSE)
#define SpIsDigit(c) (((c) < CTSIZE) ? (_SpCharTypes[(c)] & _SP_DIGIT) : FALSE)
#define SpIsXDigit(c) (((c) < CTSIZE) ? (_SpCharTypes[(c)] & _SP_XDIGIT) : FALSE)
#define SpIsUpper(c) (((c) < CTSIZE) ? (_SpCharTypes[(c)] & _SP_UPPER) : FALSE)
#define SpIsLower(c) (((c) < CTSIZE) ? (_SpCharTypes[(c)] & _SP_LOWER) : FALSE)
#define SpIsAlpha(c) (SpIsUpper(c) || SpIsLower(c))
#define SpToUpper(c) ((WCHAR)(SpIsLower(c) ? ((c)-(L'a'-L'A')) : (c)))
#define SpToLower(c) ((WCHAR)(SpIsUpper(c) ? ((c)+(L'a'-L'A')) : (c)))
VOID SpStringToUpper( IN PWSTR String );
VOID SpStringToLower( IN PWSTR String );
PWCHAR SpFindCharFromListInString( PWSTR String, PWSTR CharList );
unsigned SpMultiByteStringToUnsigned( IN PUCHAR String, OUT PUCHAR *CharThatStoppedScan OPTIONAL );
LONG SpStringToLong( IN PWSTR String, OUT PWCHAR *EndOfValue, IN unsigned Radix );
PCHAR SpConvertMultiSzWstrToStr( IN PWCHAR Source, IN ULONG Length );
PWCHAR SpConvertMultiSzStrToWstr( IN PCHAR Source, IN ULONG Length );
|