]> git.saurik.com Git - wxWidgets.git/blobdiff - src/unix/mimetype.cpp
moved wxapp_install_idle_handler and g_isIdle from many cpp files into gtk/private...
[wxWidgets.git] / src / unix / mimetype.cpp
index 3b3cb106d99aef2f5004a13d4cd1eb9a10d8b24a..f9c9d238579bdc90963c4cd1b22931eb7def5f02 100644 (file)
@@ -646,7 +646,9 @@ void wxMimeTypesManagerImpl::LoadGnomeDataFromKeyFile(const wxString& filename,
         nLine++;
     } // end of while, save any data
 
-    if (! curMimeType.empty())
+    if ( curMimeType.empty() )
+        delete entry;
+    else
         AddToMimeData( curMimeType, curIconFile, entry, strExtensions, strDesc);
 }
 
@@ -1398,13 +1400,17 @@ size_t wxFileTypeImpl::GetAllCommands(wxArrayString *verbs,
                  count++;
                  if ( vrb.IsSameAs(wxT("open")))
                  {
-                     verbs->Insert(vrb, 0u);
-                     commands ->Insert(cmd, 0u);
+                     if ( verbs )
+                        verbs->Insert(vrb, 0u);
+                     if ( commands )
+                        commands ->Insert(cmd, 0u);
                  }
                  else
                  {
-                     verbs->Add(vrb);
-                     commands->Add(cmd);
+                     if ( verbs )
+                        verbs->Add(vrb);
+                     if ( commands )
+                        commands->Add(cmd);
                  }
              }
         }
@@ -1465,17 +1471,16 @@ wxFileTypeImpl::SetCommand(const wxString& cmd,
     wxArrayString strExtensions;
     wxString strDesc, strIcon;
 
-    wxMimeTypeCommands *entry = new wxMimeTypeCommands();
-    entry->Add(verb + wxT("=")  + cmd + wxT(" %s "));
-
     wxArrayString strTypes;
     GetMimeTypes(strTypes);
-    if (strTypes.GetCount() < 1)
+    if ( strTypes.IsEmpty() )
         return false;
 
-    size_t i;
+    wxMimeTypeCommands *entry = new wxMimeTypeCommands();
+    entry->Add(verb + wxT("=")  + cmd + wxT(" %s "));
+
     bool ok = true;
-    for (i = 0; i < strTypes.GetCount(); i++)
+    for ( size_t i = 0; i < strTypes.GetCount(); i++ )
     {
         if (!m_manager->DoAssociation(strTypes[i], strIcon, entry, strExtensions, strDesc))
             ok = false;