diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2013-06-26 13:10:35 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2013-06-26 13:10:35 +0000 |
commit | 733b554b20a4843eaff90448cb694f3da1d1d042 (patch) | |
tree | b445fa1ead7064e53db88d4d6f0d0d98a4522c89 /winsup | |
parent | bce06a5f2fae29ad0fac675c6be3b883e94546e1 (diff) | |
download | cygnal-733b554b20a4843eaff90448cb694f3da1d1d042.tar.gz cygnal-733b554b20a4843eaff90448cb694f3da1d1d042.tar.bz2 cygnal-733b554b20a4843eaff90448cb694f3da1d1d042.zip |
* cygpath.cc (do_pathconv): when -p option is given, generate wide
path without long path prefixing.
* wide_path.h (wide_path::wide_path): Allow extra bool parameter to
specify whether or not performing Windows long path prefixing.
Diffstat (limited to 'winsup')
-rw-r--r-- | winsup/utils/ChangeLog | 7 | ||||
-rw-r--r-- | winsup/utils/cygpath.cc | 4 | ||||
-rw-r--r-- | winsup/utils/wide_path.h | 6 |
3 files changed, 12 insertions, 5 deletions
diff --git a/winsup/utils/ChangeLog b/winsup/utils/ChangeLog index e67bb102a..6eab6b341 100644 --- a/winsup/utils/ChangeLog +++ b/winsup/utils/ChangeLog @@ -1,3 +1,10 @@ +2013-06-26 Corinna Vinschen <corinna@vinschen.de> + + * cygpath.cc (do_pathconv): when -p option is given, generate wide + path without long path prefixing. + * wide_path.h (wide_path::wide_path): Allow extra bool parameter to + specify whether or not performing Windows long path prefixing. + 2013-05-21 Corinna Vinschen <corinna@vinschen.de> Reinstantiate accidentally removed patch from 2009-05-16: diff --git a/winsup/utils/cygpath.cc b/winsup/utils/cygpath.cc index 07752f9f1..6094eb7eb 100644 --- a/winsup/utils/cygpath.cc +++ b/winsup/utils/cygpath.cc @@ -1,6 +1,6 @@ /* cygpath.cc -- convert pathnames between Windows and Unix format Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, - 2009, 2010, 2011, 2012 Red Hat, Inc. + 2009, 2010, 2011, 2012, 2013 Red Hat, Inc. This file is part of Cygwin. @@ -675,7 +675,7 @@ do_pathconv (char *filename) { if (unix_flag) { - wide_path wpath (filename); + wide_path wpath (filename, false); err = cygwin_conv_path_list (conv_func, wpath, buf, len); } else diff --git a/winsup/utils/wide_path.h b/winsup/utils/wide_path.h index 210eaf1cf..7a507c809 100644 --- a/winsup/utils/wide_path.h +++ b/winsup/utils/wide_path.h @@ -2,7 +2,7 @@ to wchar_t Win32 path including long path prefix if necessary. - Copyright 2009, 2011 Red Hat, Inc. + Copyright 2009, 2011, 2013 Red Hat, Inc. This file is part of Cygwin. @@ -19,12 +19,12 @@ class wide_path public: wide_path () : wp (NULL) {} - wide_path (const char *mb_path) + wide_path (const char *mb_path, bool do_prefix = true) { int len = mbstowcs (NULL, mb_path, 0) + 1; wp = (wchar_t *) malloc ((len + 6) * sizeof (wchar_t)); wchar_t *wp_p = wp; - if (len >= MAX_PATH && strncmp (mb_path, "\\\\?\\", 4) != 0) + if (do_prefix && len >= MAX_PATH && strncmp (mb_path, "\\\\?\\", 4) != 0) { wcscpy (wp_p, L"\\\\?\\"); wp_p += 4; |