patch to fix various filename-related functions for cygwin

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13829 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2002-01-26 17:02:45 +00:00
parent 217f9d0767
commit 3ffbc733a2
3 changed files with 27 additions and 12 deletions

View File

@@ -270,12 +270,15 @@ WXDLLEXPORT bool wxRmdir(const wxString& dir, int flags = 0);
#define wxPATH_SEP_MAC wxT(";")
// platform independent versions
#if defined(__UNIX__)
#if defined(__UNIX__) && !defined(__GNUWIN32__)
#define wxFILE_SEP_PATH wxFILE_SEP_PATH_UNIX
#define wxPATH_SEP wxPATH_SEP_UNIX
#elif defined(__MAC__)
#define wxFILE_SEP_PATH wxFILE_SEP_PATH_MAC
#define wxPATH_SEP wxPATH_SEP_MAC
#elif defined(__GNUWIN32__) // Cygwin
#define wxFILE_SEP_PATH wxFILE_SEP_PATH_DOS
#define wxPATH_SEP wxPATH_SEP_UNIX
#else // Windows and OS/2
#define wxFILE_SEP_PATH wxFILE_SEP_PATH_DOS
#define wxPATH_SEP wxPATH_SEP_DOS

View File

@@ -93,13 +93,6 @@
#endif
#endif
#ifdef __GNUWIN32__
#include <wchar.h>
#ifndef __TWIN32__
#include <sys/unistd.h>
#endif
#endif
#ifdef __BORLANDC__ // Please someone tell me which version of Borland needs
// this (3.1 I believe) and how to test for it.
// If this works for Borland 4.0 as well, then no worries.
@@ -121,7 +114,18 @@
#ifdef __WINDOWS__
#include <windows.h>
#endif
// sys/cygwin.h is needed for cygwin_conv_to_full_win32_path()
//
// note that it must be included after <windows.h>
#ifdef __GNUWIN32__
#include <sys/cygwin.h>
#include <wchar.h>
#ifndef __TWIN32__
#include <sys/unistd.h>
#endif
#endif // __GNUWIN32__
#endif // __WINDOWS__
// TODO: Borland probably has _wgetcwd as well?
#ifdef _MSC_VER
@@ -1456,11 +1460,11 @@ wxChar *wxGetWorkingDirectory(wxChar *buf, int sz)
}
#endif // __DJGPP__
#ifdef __CYGWIN10__
// another example of DOS/Unix mix
#ifdef __GNUWIN32__
// another example of DOS/Unix mix (Cygwin)
wxString pathUnix = buf;
cygwin_conv_to_full_win32_path(pathUnix, buf);
#endif // __CYGWIN10__
#endif // __GNUWIN32__
// finally convert the result to Unicode if needed
#if wxUSE_UNICODE && !defined(HAVE_WGETCWD)

View File

@@ -64,6 +64,7 @@ extern "C" {
#if defined(__GNUWIN32__) && !defined(__TWIN32__)
#include <sys/unistd.h>
#include <sys/stat.h>
#include <sys/cygwin.h> // for cygwin_conv_to_full_win32_path()
#endif //GNUWIN32
#ifdef __BORLANDC__ // Please someone tell me which version of Borland needs
@@ -372,6 +373,13 @@ const wxChar* wxGetHomeDir(wxString *pstr)
// add a trailing slash if needed
if ( strDir.Last() != wxT('/') )
strDir << wxT('/');
#ifdef __GNUWIN32__
// Cygwin returns unix type path but that does not work well
static wxChar windowsPath[MAX_PATH];
cygwin_conv_to_full_win32_path(strDir, windowsPath);
strDir = windowsPath;
#endif
#else // Windows
#ifdef __WIN32__
const wxChar *szHome = wxGetenv(wxT("HOMEDRIVE"));