Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--winsup/utils/ChangeLog7
-rw-r--r--winsup/utils/cygpath.cc4
-rw-r--r--winsup/utils/wide_path.h6
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;