virtual bool OnRead(const wxMBConv& WXUNUSED(conv))
{
return wxTextFile::OnRead(
- wxMBConvUTF8(wxMBConvUTF8::MAP_INVALID_UTF8_TO_OCTAL));
+ wxMBConvUTF8(wxMBConvUTF8::MAP_INVALID_UTF8_TO_PUA));
}
};
wxMimeTypeCommands *entry = new wxMimeTypeCommands();
entry->Add(verb + wxT("=") + cmd + wxT(" %s "));
- bool ok = true;
+ bool ok = false;
size_t nCount = strTypes.GetCount();
for ( size_t i = 0; i < nCount; i++ )
{
- if (!m_manager->DoAssociation(strTypes[i], strIcon, entry, strExtensions, strDesc))
- ok = false;
+ if ( m_manager->DoAssociation
+ (
+ strTypes[i],
+ strIcon,
+ entry,
+ strExtensions,
+ strDesc
+ ) )
+ {
+ // DoAssociation() took ownership of entry, don't delete it below
+ ok = true;
+ }
}
+ if ( !ok )
+ delete entry;
+
return ok;
}
return false;
wxMimeTypeCommands *entry = new wxMimeTypeCommands();
- bool ok = true;
+ bool ok = false;
size_t nCount = strTypes.GetCount();
for ( size_t i = 0; i < nCount; i++ )
{
- if ( !m_manager->DoAssociation
- (
+ if ( m_manager->DoAssociation
+ (
strTypes[i],
strIcon,
entry,
strExtensions,
strDesc
- ) )
+ ) )
{
- ok = false;
+ // we don't need to free entry now, DoAssociation() took ownership
+ // of it
+ ok = true;
}
}
+ if ( !ok )
+ delete entry;
+
return ok;
}
if (mailcapStyles & wxMAILCAP_GNOME)
GetGnomeMimeInfo(sExtraDir);
- // read KDE tables
+ // read KDE tables which are never installed on OpenVMS
+#ifndef __VMS
if (mailcapStyles & wxMAILCAP_KDE)
GetKDEMimeInfo(sExtraDir);
+#endif
m_mailcapStylesInited |= mailcapStyles;
}
if ( data.needsterminal )
{
- data.cmdOpen.Printf(wxT("xterm -e sh -c '%s'"),
- data.cmdOpen.c_str());
+ data.cmdOpen.insert(0, wxT("xterm -e sh -c '"));
+ data.cmdOpen.append(wxT("'"));
}
if ( !data.cmdOpen.empty() )