* 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.
This commit is contained in:
parent
bce06a5f2f
commit
733b554b20
|
@ -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>
|
2013-05-21 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
Reinstantiate accidentally removed patch from 2009-05-16:
|
Reinstantiate accidentally removed patch from 2009-05-16:
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* cygpath.cc -- convert pathnames between Windows and Unix format
|
/* cygpath.cc -- convert pathnames between Windows and Unix format
|
||||||
Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
|
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.
|
This file is part of Cygwin.
|
||||||
|
|
||||||
|
@ -675,7 +675,7 @@ do_pathconv (char *filename)
|
||||||
{
|
{
|
||||||
if (unix_flag)
|
if (unix_flag)
|
||||||
{
|
{
|
||||||
wide_path wpath (filename);
|
wide_path wpath (filename, false);
|
||||||
err = cygwin_conv_path_list (conv_func, wpath, buf, len);
|
err = cygwin_conv_path_list (conv_func, wpath, buf, len);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
to wchar_t Win32 path including long path prefix if
|
to wchar_t Win32 path including long path prefix if
|
||||||
necessary.
|
necessary.
|
||||||
|
|
||||||
Copyright 2009, 2011 Red Hat, Inc.
|
Copyright 2009, 2011, 2013 Red Hat, Inc.
|
||||||
|
|
||||||
This file is part of Cygwin.
|
This file is part of Cygwin.
|
||||||
|
|
||||||
|
@ -19,12 +19,12 @@ class wide_path
|
||||||
|
|
||||||
public:
|
public:
|
||||||
wide_path () : wp (NULL) {}
|
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;
|
int len = mbstowcs (NULL, mb_path, 0) + 1;
|
||||||
wp = (wchar_t *) malloc ((len + 6) * sizeof (wchar_t));
|
wp = (wchar_t *) malloc ((len + 6) * sizeof (wchar_t));
|
||||||
wchar_t *wp_p = wp;
|
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"\\\\?\\");
|
wcscpy (wp_p, L"\\\\?\\");
|
||||||
wp_p += 4;
|
wp_p += 4;
|
||||||
|
|
Loading…
Reference in New Issue