124 lines
3.4 KiB
C
124 lines
3.4 KiB
C
/*++ BUILD Version: 0001 // Increment this if a change has global effects
|
|
|
|
Copyright (c) 1989 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
Name.h
|
|
|
|
Abstract:
|
|
|
|
This module defines all of the name.c routines
|
|
|
|
Author:
|
|
|
|
Gary Kimura [GaryKi] 30-Jul-1990
|
|
|
|
Revision History:
|
|
|
|
Heath Hunnicutt [T-HeathH] 13-Jul-1994 - Ported this file to ftphelp
|
|
project.
|
|
|
|
--*/
|
|
|
|
#ifndef _NAME_H_INCLUDED_
|
|
#define _NAME_H_INCLUDED_
|
|
|
|
#if defined(__cplusplus)
|
|
extern "C" {
|
|
#endif
|
|
|
|
//
|
|
// The following enumerated type is used to denote the result of name
|
|
// comparisons
|
|
//
|
|
|
|
typedef enum _MY_FSRTL_COMPARISON_RESULT {
|
|
LessThan = -1,
|
|
EqualTo = 0,
|
|
GreaterThan = 1
|
|
} MY_FSRTL_COMPARISON_RESULT;
|
|
//
|
|
// These following bit values are set in the MyFsRtlLegalDbcsCharacterArray
|
|
//
|
|
|
|
extern PUCHAR MyFsRtlLegalAnsiCharacterArray;
|
|
|
|
#define MY_FSRTL_FAT_LEGAL 0x01
|
|
#define MY_FSRTL_HPFS_LEGAL 0x02
|
|
#define MY_FSRTL_NTFS_LEGAL 0x04
|
|
#define MY_FSRTL_WILD_CHARACTER 0x08
|
|
|
|
//
|
|
// The following macro is used to determine if an Ansi character is wild.
|
|
//
|
|
|
|
#define MyFsRtlIsAnsiCharacterWild(C) ( \
|
|
((SCHAR)(C) < 0) ? FALSE : \
|
|
FlagOn( MyFsRtlLegalAnsiCharacterArray[(C)], \
|
|
MY_FSRTL_WILD_CHARACTER ) \
|
|
)
|
|
|
|
//
|
|
// The following macro is used to determine if an Ansi character is Fat legal.
|
|
//
|
|
|
|
#define MyFsRtlIsAnsiCharacterLegalFat(C,WILD_OK) ( \
|
|
((SCHAR)(C) < 0) ? TRUE : \
|
|
FlagOn( MyFsRtlLegalAnsiCharacterArray[(C)], \
|
|
MY_FSRTL_FAT_LEGAL | \
|
|
((WILD_OK) ? MY_FSRTL_WILD_CHARACTER : 0) ) \
|
|
)
|
|
|
|
//
|
|
// The following macro is used to determine if an Ansi character is Hpfs legal.
|
|
//
|
|
|
|
#define MyFsRtlIsAnsiCharacterLegalHpfs(C,WILD_OK) ( \
|
|
((SCHAR)(C) < 0) ? TRUE : \
|
|
FlagOn( MyFsRtlLegalAnsiCharacterArray[(C)], \
|
|
MY_FSRTL_HPFS_LEGAL | \
|
|
((WILD_OK) ? MY_FSRTL_WILD_CHARACTER : 0) ) \
|
|
)
|
|
|
|
//
|
|
// The following macro is used to determine if an Ansi character is Ntfs legal.
|
|
//
|
|
|
|
#define MyFsRtlIsAnsiCharacterLegalNtfs(C,WILD_OK) ( \
|
|
((SCHAR)(C) < 0) ? TRUE : \
|
|
FlagOn( MyFsRtlLegalAnsiCharacterArray[(C)], \
|
|
MY_FSRTL_NTFS_LEGAL | \
|
|
((WILD_OK) ? MY_FSRTL_WILD_CHARACTER : 0) ) \
|
|
)
|
|
|
|
//
|
|
// Unicode Name support routines, implemented in Name.c
|
|
//
|
|
// The routines here are used to manipulate unicode names
|
|
//
|
|
|
|
//
|
|
// The following macro is used to determine if a character is wild.
|
|
//
|
|
|
|
#define MyFsRtlIsUnicodeCharacterWild(C) ( \
|
|
(((C) >= 0x40) ? FALSE : FlagOn( MyFsRtlLegalAnsiCharacterArray[(C)], \
|
|
MY_FSRTL_WILD_CHARACTER ) ) \
|
|
)
|
|
|
|
BOOLEAN
|
|
MyFsRtlIsNameInExpression
|
|
(
|
|
IN LPCSTR pszExpression,
|
|
IN LPCSTR pszName,
|
|
IN BOOLEAN IgnoreCase
|
|
);
|
|
|
|
|
|
#if defined(__cplusplus)
|
|
}
|
|
#endif
|
|
|
|
#endif // _NAME_H_INCLUDED_
|