aspnetcore/src/AspNetCoreModuleV2/IISLib/macros.h

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