88 lines
2 KiB
C
88 lines
2 KiB
C
/*++
|
|
|
|
Copyright (c) 1991 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
validc.h
|
|
|
|
Abstract:
|
|
|
|
Strings of valid/invalid characters for canonicalization
|
|
|
|
Author:
|
|
|
|
Richard Firth (rfirth) 15-May-1991
|
|
|
|
Revision History:
|
|
|
|
03-Jan-1992 rfirth
|
|
Added ILLEGAL_FAT_CHARS and ILLEGAL_HPFS_CHARS (from fsrtl\name.c)
|
|
|
|
27-Sep-1991 JohnRo
|
|
Changed TEXT macro usage to allow UNICODE.
|
|
|
|
19-Feb-1993 RitaW
|
|
Ported for NetWare use.
|
|
|
|
--*/
|
|
|
|
//
|
|
// Disallowed control characters (not including \0)
|
|
//
|
|
|
|
#define CTRL_CHARS_0 L"\001\002\003\004\005\006\007"
|
|
#define CTRL_CHARS_1 L"\010\011\012\013\014\015\016\017"
|
|
#define CTRL_CHARS_2 L"\020\021\022\023\024\025\026\027"
|
|
#define CTRL_CHARS_3 L"\030\031\032\033\034\035\036\037"
|
|
|
|
#define CTRL_CHARS_STR CTRL_CHARS_0 CTRL_CHARS_1 CTRL_CHARS_2 CTRL_CHARS_3
|
|
|
|
//
|
|
// Character subsets
|
|
//
|
|
|
|
#define NON_COMPONENT_CHARS L"\\/:"
|
|
#define ILLEGAL_CHARS_STR L"\"<>|"
|
|
#define SPACE_STR L" "
|
|
#define PATH_SEPARATORS L"\\/"
|
|
|
|
//
|
|
// Combinations of the above
|
|
//
|
|
|
|
#define ILLEGAL_CHARS CTRL_CHARS_STR ILLEGAL_CHARS_STR
|
|
#define ILLEGAL_NAME_CHARS_STR L"\"/\\[]:|<>+;,?" CTRL_CHARS_STR // "=" removed for NDS
|
|
|
|
#define STANDARD_ILLEGAL_CHARS ILLEGAL_NAME_CHARS_STR L"*"
|
|
#define SERVER_ILLEGAL_CHARS STANDARD_ILLEGAL_CHARS SPACE_STR
|
|
|
|
//
|
|
// Characters which may not appear in a canonicalized FAT filename are:
|
|
//
|
|
// 0x00 - 0x1f " * + , / : ; < = > ? [ \ ] |
|
|
//
|
|
|
|
#define ILLEGAL_FAT_CHARS CTRL_CHARS_STR L"\"*+,/:;<=>?[\\]|"
|
|
|
|
//
|
|
// Characters which may not appear in a canonicalized HPFS filename are:
|
|
//
|
|
// 0x00 - 0x1f " * / : < > ? \ |
|
|
//
|
|
|
|
#define ILLEGAL_HPFS_CHARS CTRL_CHARS_STR L"\"*/:<>?\\|"
|
|
|
|
|
|
//
|
|
// Checks if the token contains all valid characters
|
|
//
|
|
#define IS_VALID_TOKEN(_Str, _StrLen) \
|
|
((BOOL) (wcscspn((_Str), STANDARD_ILLEGAL_CHARS) == (_StrLen)))
|
|
|
|
//
|
|
// Checks if the server name contains all valid characters for the server name
|
|
//
|
|
#define IS_VALID_SERVER_TOKEN(_Str, _StrLen) \
|
|
((BOOL) (wcscspn((_Str), SERVER_ILLEGAL_CHARS) == (_StrLen)))
|