68 lines
2.7 KiB
Diff
68 lines
2.7 KiB
Diff
diff -aurN 0001/src/unix-adapter/main.cc 0002/src/unix-adapter/main.cc
|
|
--- 0001/src/unix-adapter/main.cc
|
|
+++ 0002/src/unix-adapter/main.cc
|
|
@@ -47,6 +47,7 @@
|
|
#include "OutputHandler.h"
|
|
#include "Util.h"
|
|
#include "WakeupFd.h"
|
|
+#include "path_conv.h"
|
|
|
|
#define CSI "\x1b["
|
|
|
|
@@ -154,7 +155,12 @@
|
|
char *tmp;
|
|
#if defined(CYGWIN_VERSION_CYGWIN_CONV) && \
|
|
CYGWIN_VERSION_API_MINOR >= CYGWIN_VERSION_CYGWIN_CONV
|
|
- // MSYS2 and versions of Cygwin released after 2009 or so use this API.
|
|
+#if defined(__MSYS__)
|
|
+ size_t newSize = 256 * MAX_PATH;
|
|
+ tmp = new char[newSize + 1];
|
|
+ convert(tmp, newSize, path.c_str());
|
|
+#else
|
|
+ // Versions of Cygwin released after 2009 or so use this API.
|
|
// The original MSYS still lacks this API.
|
|
ssize_t newSize = cygwin_conv_path(CCP_POSIX_TO_WIN_A | CCP_RELATIVE,
|
|
path.c_str(), NULL, 0);
|
|
@@ -163,6 +169,7 @@
|
|
ssize_t success = cygwin_conv_path(CCP_POSIX_TO_WIN_A | CCP_RELATIVE,
|
|
path.c_str(), tmp, newSize + 1);
|
|
assert(success == 0);
|
|
+#endif
|
|
#else
|
|
// In the current Cygwin header file, this API is documented as deprecated
|
|
// because it's restricted to paths of MAX_PATH length. In the CVS version
|
|
@@ -173,10 +180,6 @@
|
|
tmp = new char[MAX_PATH + path.size()];
|
|
cygwin_conv_to_win32_path(path.c_str(), tmp);
|
|
#endif
|
|
- for (int i = 0; tmp[i] != '\0'; ++i) {
|
|
- if (tmp[i] == '/')
|
|
- tmp[i] = '\\';
|
|
- }
|
|
std::string ret(tmp);
|
|
delete [] tmp;
|
|
return ret;
|
|
diff -aurN 0001/src/unix-adapter/path_conv.cc 0002/src/unix-adapter/path_conv.cc
|
|
--- 0001/src/unix-adapter/path_conv.cc
|
|
+++ 0002/src/unix-adapter/path_conv.cc
|
|
@@ -633,7 +633,6 @@
|
|
one_path[to-from] = '\0';
|
|
char win32_path1[PATH_MAX + 1];
|
|
ssize_t result = cygwin_conv_path(CCP_POSIX_TO_WIN_A|CCP_ABSOLUTE, one_path, win32_path1, PATH_MAX+1);
|
|
- printf("called cygwin_conv_path(CCP_POSIX_TO_WIN_A,%s -> %s, in-size %d, result = %zd\n", one_path, win32_path1, PATH_MAX+1, result);
|
|
if( result !=0 ) {
|
|
copy_to_dst(one_path, NULL, dst, dstend);
|
|
} else {
|
|
diff -aurN 0001/src/unix-adapter/subdir.mk 0002/src/unix-adapter/subdir.mk
|
|
--- 0001/src/unix-adapter/subdir.mk 2016-10-07 03:12:21.901940000 -0400
|
|
+++ 0002/src/unix-adapter/subdir.mk 2016-10-07 03:16:52.075885600 -0400
|
|
@@ -28,6 +28,7 @@
|
|
build/unix-adapter/unix-adapter/Util.o \
|
|
build/unix-adapter/unix-adapter/WakeupFd.o \
|
|
build/unix-adapter/unix-adapter/main.o \
|
|
+ build/unix-adapter/unix-adapter/path_conv.o \
|
|
build/unix-adapter/shared/DebugClient.o \
|
|
build/unix-adapter/shared/WinptyAssert.o \
|
|
build/unix-adapter/shared/WinptyVersion.o
|
|
|