diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2001-04-12 21:21:37 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2001-04-12 21:21:37 +0000 |
commit | 70c370d674c5696d39e64970300c889c64ecd752 (patch) | |
tree | 310510f16858e53d6f08f6bab19d744d66469183 /winsup/cygwin/path.h | |
parent | b8a8c59d33d5df1dbd709d6e340c250faa4ebf7b (diff) | |
download | cygnal-70c370d674c5696d39e64970300c889c64ecd752.tar.gz cygnal-70c370d674c5696d39e64970300c889c64ecd752.tar.bz2 cygnal-70c370d674c5696d39e64970300c889c64ecd752.zip |
* dir.cc (mkdir): Check for case clash.
* environ.cc: Add extern declaration for `pcheck_case'.
(check_case_init): New function.
(struct parse_thing): Add "check_case" option.
* errno.cc (_sys_nerrlist): Add text for ECASECLASH.
(strerror): Add case branch for ECASECLASH.
* fhandler.cc (fhandler_disk_file::open): Check for case clash.
* path.cc: Add global variable `pcheck_case'.
(struct symlink_info): Add member `case_clash' and method `case_check'.
(path_prefix_p_): Call `pathnmatch' instead of `strncasematch'.
(pathnmatch): New funtion.
(pathmatch): Ditto.
(path_conv::check): Add handling for case checking.
(symlink): Check for case clash.
(symlink_info::check): Add parameter for case checking.
Handle case checking.
(symlink_info::case_check): New method.
(chdir): Don't use unconverted path if pcheck_case==PCHECK_STRICT.
* path.h: Add extern declarations for `pathmatch' and
`pathnmatch'.
(enum case_checking): New enumeration type describing
the case checking behaviour of path conversion routines.
(class path_conv): Add member `case_clash'.
* syscalls.cc (_link): Check for case clash.
Diffstat (limited to 'winsup/cygwin/path.h')
-rw-r--r-- | winsup/cygwin/path.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/winsup/cygwin/path.h b/winsup/cygwin/path.h index bdca965b4..4f9df23b0 100644 --- a/winsup/cygwin/path.h +++ b/winsup/cygwin/path.h @@ -25,6 +25,13 @@ enum pathconv_arg PC_NULLEMPTY = 0x0020 }; +enum case_checking +{ + PCHECK_RELAXED = 0, + PCHECK_ADJUST = 1, + PCHECK_STRICT = 2 +}; + #define PC_NONULLEMPTY -1 #include <sys/mount.h> @@ -89,6 +96,8 @@ class path_conv DWORD fileattr; + BOOL case_clash; + void check (const char *src, unsigned opt = PC_SYM_FOLLOW, const suffix_info *suffixes = NULL) __attribute__ ((regparm(3))); @@ -171,3 +180,6 @@ struct cwdstuff }; extern cwdstuff cygcwd; + +extern int pathmatch (const char *path1, const char *path2); +extern int pathnmatch (const char *path1, const char *path2, int len); |