X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5974c3cf0664c2db575ee956a731a0ae7c96d074..dc302518e6bf48326d202475bf78874fedcb2d9c:/src/common/filename.cpp?ds=sidebyside diff --git a/src/common/filename.cpp b/src/common/filename.cpp index 9efe9d12e0..a74aa0fa4b 100644 --- a/src/common/filename.cpp +++ b/src/common/filename.cpp @@ -163,7 +163,8 @@ public: filename, // name mode == Read ? GENERIC_READ // access mask : GENERIC_WRITE, - 0, // no sharing + FILE_SHARE_READ | // sharing mode + FILE_SHARE_WRITE, // (allow everything) NULL, // no secutity attr OPEN_EXISTING, // creation disposition 0, // no flags @@ -585,7 +586,7 @@ wxFileName::CreateTempFileName(const wxString& prefix, wxFile *fileTemp) } #elif defined(__WINDOWS__) && !defined(__WXMICROWIN__) -#ifdef __WIN32__ + if ( dir.empty() ) { if ( !::GetTempPath(MAX_PATH, wxStringBuffer(dir, MAX_PATH + 1)) ) @@ -612,12 +613,6 @@ wxFileName::CreateTempFileName(const wxString& prefix, wxFile *fileTemp) path.clear(); } -#else // Win16 - if ( !::GetTempFileName(NULL, prefix, 0, wxStringBuffer(path, 1025)) ) - { - path.clear(); - } -#endif // Win32/16 #else // !Windows if ( dir.empty() ) @@ -946,7 +941,7 @@ bool wxFileName::Normalize(int flags, m_dirs.Add(dir); } -#ifdef __WIN32__ +#if defined(__WIN32__) && !defined(__WXWINCE__) && wxUSE_OLE if ( (flags & wxPATH_NORM_SHORTCUT) ) { wxString filename; @@ -967,6 +962,7 @@ bool wxFileName::Normalize(int flags, { // VZ: expand env vars here too? + m_volume.MakeLower(); m_name.MakeLower(); m_ext.MakeLower(); } @@ -1001,7 +997,7 @@ bool wxFileName::Normalize(int flags, // files\myapp.exe) that includes spaces needs to be enclosed in // quotation marks." -#if defined(__WIN32__) && !defined(__WXWINCE__) +#if defined(__WIN32__) && !defined(__WXWINCE__) && wxUSE_OLE // The following lines are necessary under WinCE // #include "wx/msw/private.h" // #include @@ -1009,15 +1005,9 @@ bool wxFileName::Normalize(int flags, #if defined(__WXWINCE__) #include #endif -#endif -#ifdef __WIN32__ bool wxFileName::GetShortcutTarget(const wxString& shortcutPath, wxString& targetFilename, wxString* arguments) { -#ifdef __WXWINCE__ - // Doesn't compile on WinCE yet - return FALSE; -#else wxString path, file, ext; wxSplitPath(shortcutPath, & path, & file, & ext); @@ -1063,7 +1053,6 @@ bool wxFileName::GetShortcutTarget(const wxString& shortcutPath, wxString& targe } psl->Release(); return success; -#endif } #endif @@ -1154,8 +1143,8 @@ bool wxFileName::SameAs(const wxFileName& filepath, wxPathFormat format) const // get cwd only once - small time saving wxString cwd = wxGetCwd(); - fn1.Normalize(wxPATH_NORM_ALL & ~wxPATH_NORM_CASE, cwd, format); - fn2.Normalize(wxPATH_NORM_ALL & ~wxPATH_NORM_CASE, cwd, format); + fn1.Normalize(wxPATH_NORM_ALL | wxPATH_NORM_CASE, cwd, format); + fn2.Normalize(wxPATH_NORM_ALL | wxPATH_NORM_CASE, cwd, format); if ( fn1.GetFullPath() == fn2.GetFullPath() ) return true; @@ -1687,18 +1676,17 @@ void wxFileName::SplitPath(const wxString& fullpathWithVolume, size_t posLastDot = fullpath.find_last_of(wxFILE_SEP_EXT); size_t posLastSlash = fullpath.find_last_of(sepPath); + // check whether this dot occurs at the very beginning of a path component if ( (posLastDot != wxString::npos) && - ((format == wxPATH_UNIX) || (format == wxPATH_VMS)) ) - { - if ( (posLastDot == 0) || - (fullpath[posLastDot - 1] == sepPath[0u] ) ) + (posLastDot == 0 || + IsPathSeparator(fullpath[posLastDot - 1]) || + (format == wxPATH_VMS && fullpath[posLastDot - 1] == _T(']'))) ) { - // under Unix and VMS, dot may be (and commonly is) the first + // dot may be (and commonly -- at least under Unix -- is) the first // character of the filename, don't treat the entire filename as // extension in this case posLastDot = wxString::npos; } - } // if we do have a dot and a slash, check that the dot is in the name part if ( (posLastDot != wxString::npos) &&