]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/filename.cpp
fix to previous patch: don't crash when saving in 16bpp
[wxWidgets.git] / src / common / filename.cpp
index f32a1f848fe6748109665f352ba31dce392a3b1f..cdf66a8c4af13dc6a6ec2708edd7542c60ec8b66 100644 (file)
@@ -453,9 +453,21 @@ void wxFileName::Assign(const wxString& fullpathOrig,
     Assign(volume, path, name, ext, format);
 }
 
+void wxFileName::Assign(const wxString& pathOrig,
+                        const wxString& name,
+                        const wxString& ext,
+                        wxPathFormat format)
+{
+    wxString volume,
+             path;
+    SplitVolume(pathOrig, &volume, &path, format);
+
+    Assign(volume, path, name, ext, format);
+}
+
 void wxFileName::AssignDir(const wxString& dir, wxPathFormat format)
 {
-    Assign(dir, _T(""), format);
+    Assign(dir, wxEmptyString, format);
 }
 
 void wxFileName::Clear()
@@ -561,6 +573,8 @@ wxString wxFileName::GetHomeDir()
     return ::wxGetHomeDir();
 }
 
+#if wxUSE_FILE
+
 void wxFileName::AssignTempFileName(const wxString& prefix, wxFile *fileTemp)
 {
     wxString tempname = CreateTempFileName(prefix, fileTemp);
@@ -592,7 +606,7 @@ wxFileName::CreateTempFileName(const wxString& prefix, wxFile *fileTemp)
     }
     path = dir + wxT("\\") + prefix;
     int i = 1;
-    while (wxFileExists(path))
+    while (FileExists(path))
     {
         path = dir + wxT("\\") + prefix ;
         path << i;
@@ -708,7 +722,7 @@ wxFileName::CreateTempFileName(const wxString& prefix, wxFile *fileTemp)
     }
 #else // !HAVE_MKTEMP (includes __DOS__)
     // generate the unique file name ourselves
-    #if !defined(__DOS__) && (!defined(__MWERKS__) || defined(__DARWIN__) )
+    #if !defined(__DOS__) && !defined(__PALMOS__) && (!defined(__MWERKS__) || defined(__DARWIN__) )
     path << (unsigned int)getpid();
     #endif
 
@@ -719,7 +733,7 @@ wxFileName::CreateTempFileName(const wxString& prefix, wxFile *fileTemp)
     {
         // 3 hex digits is enough for numTries == 1000 < 4096
         pathTry = path + wxString::Format(_T("%.03x"), (unsigned int) n);
-        if ( !wxFile::Exists(pathTry) )
+        if ( !FileExists(pathTry) )
         {
             break;
         }
@@ -770,6 +784,8 @@ wxFileName::CreateTempFileName(const wxString& prefix, wxFile *fileTemp)
     return path;
 }
 
+#endif // wxUSE_FILE
+
 // ----------------------------------------------------------------------------
 // directory operations
 // ----------------------------------------------------------------------------
@@ -1063,7 +1079,7 @@ bool wxFileName::GetShortcutTarget(const wxString& shortcutPath, wxString& targe
 
                 psl->GetArguments(buf, 2048);
                 wxString args(buf);
-                if (!args.IsEmpty() && arguments)
+                if (!args.empty() && arguments)
                 {
                     *arguments = args;
                 }
@@ -1181,9 +1197,6 @@ bool wxFileName::IsCaseSensitive( wxPathFormat format )
     return GetFormat(format) == wxPATH_UNIX;
 }
 
-// If asserts, wxPathFormat has been changed.
-wxCOMPILE_TIME_ASSERT(wxPATH_MAX == 5, wxPathFormatChanged);
-
 /* static */
 wxString wxFileName::GetForbiddenChars(wxPathFormat format)
 {
@@ -1280,10 +1293,8 @@ wxString wxFileName::GetPathTerminators(wxPathFormat format)
 bool wxFileName::IsPathSeparator(wxChar ch, wxPathFormat format)
 {
     // wxString::Find() doesn't work as expected with NUL - it will always find
-    // it, so it is almost surely a bug if this function is called with NUL arg
-    wxASSERT_MSG( ch != _T('\0'), _T("shouldn't be called with NUL") );
-
-    return GetPathSeparators(format).Find(ch) != wxNOT_FOUND;
+    // it, so test for it separately
+    return ch != _T('\0') && GetPathSeparators(format).Find(ch) != wxNOT_FOUND;
 }
 
 // ----------------------------------------------------------------------------
@@ -1313,26 +1324,26 @@ bool wxFileName::IsPathSeparator(wxChar ch, wxPathFormat format)
     return true;
 }
 
-void wxFileName::AppendDir( const wxString &dir )
+void wxFileName::AppendDir( const wxStringdir )
 {
     if ( IsValidDirComponent(dir) )
         m_dirs.Add( dir );
 }
 
-void wxFileName::PrependDir( const wxString &dir )
+void wxFileName::PrependDir( const wxStringdir )
 {
     InsertDir(0, dir);
 }
 
-void wxFileName::InsertDir( int before, const wxString &dir )
+void wxFileName::InsertDir(size_t before, const wxString& dir)
 {
     if ( IsValidDirComponent(dir) )
-        m_dirs.Insert( dir, before );
+        m_dirs.Insert(dir, before);
 }
 
-void wxFileName::RemoveDir( int pos )
+void wxFileName::RemoveDir(size_t pos)
 {
-    m_dirs.RemoveAt( (size_t)pos );
+    m_dirs.RemoveAt(pos);
 }
 
 // ----------------------------------------------------------------------------
@@ -1991,7 +2002,7 @@ public :
   MacDefaultExtensionRecord()
   {
     m_ext[0] = 0 ;
-    m_type = m_creator = NULL ;
+    m_type = m_creator = 0 ;
   }
   MacDefaultExtensionRecord( const MacDefaultExtensionRecord& from )
   {