summaryrefslogtreecommitdiffstats
path: root/private/nw/inc/validc.h
diff options
context:
space:
mode:
Diffstat (limited to 'private/nw/inc/validc.h')
-rw-r--r--private/nw/inc/validc.h87
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)))