X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5671b3b68fc7686314f2f09a506011cc9504f591..924fe7dabe68c324b6e5005bbe1c4119447867f3:/src/common/filename.cpp diff --git a/src/common/filename.cpp b/src/common/filename.cpp index 088123b720..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) && @@ -1990,25 +1978,25 @@ WX_DEFINE_EXPORTED_OBJARRAY(MacDefaultExtensionArray) ; MacDefaultExtensionArray gMacDefaultExtensions ; -static void MacEnsureDefaultExtensionsLoaded() +// load the default extensions +MacDefaultExtensionRecord gDefaults[] = { - if ( !gMacDefaultExtensionsInited ) - { - - // load the default extensions - MacDefaultExtensionRecord defaults[1] = - { - MacDefaultExtensionRecord( wxT("txt") , 'TEXT' , 'ttxt' ) , - - } ; - // we could load the pc exchange prefs here too + MacDefaultExtensionRecord( wxT("txt") , 'TEXT' , 'ttxt' ) , + MacDefaultExtensionRecord( wxT("tif") , 'TIFF' , '****' ) , + MacDefaultExtensionRecord( wxT("jpg") , 'JPEG' , '****' ) , +} ; - for ( size_t i = 0 ; i < WXSIZEOF( defaults ) ; ++i ) +static void MacEnsureDefaultExtensionsLoaded() +{ + if ( !gMacDefaultExtensionsInited ) { - gMacDefaultExtensions.Add( defaults[i] ) ; + // we could load the pc exchange prefs here too + for ( size_t i = 0 ; i < WXSIZEOF( gDefaults ) ; ++i ) + { + gMacDefaultExtensions.Add( gDefaults[i] ) ; + } + gMacDefaultExtensionsInited = true ; } - gMacDefaultExtensionsInited = true ; - } } bool wxFileName::MacSetTypeAndCreator( wxUint32 type , wxUint32 creator ) {