From: Corinna Vinschen Date: Wed, 26 Jun 2013 13:10:35 +0000 (+0000) Subject: * cygpath.cc (do_pathconv): when -p option is given, generate wide X-Git-Tag: cygwin-1_7_22-release~71 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=733b554b20a4843eaff90448cb694f3da1d1d042;p=newlib-cygwin.git * 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. --- 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 + + * 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 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;