diff options
Diffstat (limited to 'private/nw/inc/validc.h')
-rw-r--r-- | private/nw/inc/validc.h | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/private/nw/inc/validc.h b/private/nw/inc/validc.h new file mode 100644 index 000000000..58ea46e0f --- /dev/null +++ b/private/nw/inc/validc.h @@ -0,0 +1,87 @@ +/*++ + +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))) |