64 lines
1.4 KiB
C
64 lines
1.4 KiB
C
// Copyright (c) .NET Foundation. All rights reserved.
|
|
// Licensed under the MIT License. See License.txt in the project root for license information.
|
|
|
|
#ifndef _MACROS_H
|
|
#define _MACROS_H
|
|
|
|
//
|
|
// The DIFF macro should be used around an expression involving pointer
|
|
// subtraction. The expression passed to DIFF is cast to a size_t type,
|
|
// allowing the result to be easily assigned to any 32-bit variable or
|
|
// passed to a function expecting a 32-bit argument.
|
|
//
|
|
|
|
#define DIFF(x) ((size_t)(x))
|
|
|
|
// Change a hexadecimal digit to its numerical equivalent
|
|
#define TOHEX( ch ) \
|
|
((ch) > L'9' ? \
|
|
(ch) >= L'a' ? \
|
|
(ch) - L'a' + 10 : \
|
|
(ch) - L'A' + 10 \
|
|
: (ch) - L'0')
|
|
|
|
|
|
// Change a number to its Hexadecimal equivalent
|
|
|
|
#define TODIGIT( nDigit ) \
|
|
(CHAR)((nDigit) > 9 ? \
|
|
(nDigit) - 10 + 'A' \
|
|
: (nDigit) + '0')
|
|
|
|
|
|
inline int
|
|
SAFEIsSpace(UCHAR c)
|
|
{
|
|
return isspace( c );
|
|
}
|
|
|
|
inline int
|
|
SAFEIsAlNum(UCHAR c)
|
|
{
|
|
return isalnum( c );
|
|
}
|
|
|
|
inline int
|
|
SAFEIsAlpha(UCHAR c)
|
|
{
|
|
return isalpha( c );
|
|
}
|
|
|
|
inline int
|
|
SAFEIsXDigit(UCHAR c)
|
|
{
|
|
return isxdigit( c );
|
|
}
|
|
|
|
inline int
|
|
SAFEIsDigit(UCHAR c)
|
|
{
|
|
return isdigit( c );
|
|
}
|
|
|
|
#endif // _MACROS_H
|