diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2016-02-09 15:00:30 +0100 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2016-02-09 15:00:30 +0100 |
commit | 8b83da2d55b2a61f22b8b330f966d06e3092b079 (patch) | |
tree | 208f9ec5a3795dfbb66db34c90971be07cfa56e2 /winsup/cygwin/path.cc | |
parent | 9676aeef0d672fea93310df14d36c1c9904d0179 (diff) | |
download | cygnal-8b83da2d55b2a61f22b8b330f966d06e3092b079.tar.gz cygnal-8b83da2d55b2a61f22b8b330f966d06e3092b079.tar.bz2 cygnal-8b83da2d55b2a61f22b8b330f966d06e3092b079.zip |
cygwin_conv_path: Always preserve trailing backslashes in conversion to POSIX paths
* include/sys/cygwin.h (CCP_CONVFLAGS_MASK): Define.
* mount.h (__CCP_APP_SLASH): Define.
* mount.cc (mount_info::conv_to_posix_path): Handle __CCP_APP_SLASH
flag.
* path.cc (cygwin_conv_path): Use CCP_CONVFLAGS_MASK to evaluate
"how" flag values. Always add __CCP_APP_SLASH flag when calling
mount_info::conv_to_posix_path.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diffstat (limited to 'winsup/cygwin/path.cc')
-rw-r--r-- | winsup/cygwin/path.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index e49f18043..20391bf98 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -3318,7 +3318,7 @@ cygwin_conv_path (cygwin_conv_path_t what, const void *from, void *to, char *buf = NULL; PWCHAR path = NULL; int error = 0; - int how = what & ~CCP_CONVTYPE_MASK; + int how = what & CCP_CONVFLAGS_MASK; what &= CCP_CONVTYPE_MASK; int ret = -1; @@ -3444,7 +3444,7 @@ cygwin_conv_path (cygwin_conv_path_t what, const void *from, void *to, case CCP_WIN_A_TO_POSIX: buf = tp.c_get (); error = mount_table->conv_to_posix_path ((const char *) from, buf, - how); + how | __CCP_APP_SLASH); if (error) { set_errno (p.error); @@ -3455,7 +3455,7 @@ cygwin_conv_path (cygwin_conv_path_t what, const void *from, void *to, case CCP_WIN_W_TO_POSIX: buf = tp.c_get (); error = mount_table->conv_to_posix_path ((const PWCHAR) from, buf, - how); + how | __CCP_APP_SLASH); if (error) { set_errno (error); |