// * compose and composetyped fields are used to determine the program to be
// called to create a new message pert in the specified format (unused).
//
-// Parameter/filename xpansion:
+// Parameter/filename xpansion:
// * %s is replaced with the (full) file name
// * %t is replaced with MIME type/subtype of the entry
// * for multipart type only %n is replaced with the nnumber of parts and %F is
// comments. Each record has one of two following forms:
// a) for "brief" format:
// <mime type> <space separated list of extensions>
-// b) for "expanded" format:
+// b) for "expanded" format:
// type=<mime type> \ desc="<description>" \ exts="ext"
//
// We try to autodetect the format of mime.types: if a non-comment line starts
case 's':
// '%s' expands into file name (quoted because it might
// contain spaces) - except if there are already quotes
- // there because otherwise some programs may get confused by
- // double double quotes
+ // there because otherwise some programs may get confused
+ // by double double quotes
#if 0
if ( *(pc - 2) == '"' )
str << params.GetFileName();
wxFileType *
wxMimeTypesManagerImpl::GetFileTypeFromExtension(const wxString& ext)
{
- wxFAIL_MSG("not implemented (must parse mime.types)");
+ size_t count = m_aExtensions.GetCount();
+ for ( size_t n = 0; n < count; n++ ) {
+ wxString extensions = m_aExtensions[n];
+ while ( !extensions.IsEmpty() ) {
+ wxString field = extensions.BeforeFirst(' ');
+ extensions = extensions.AfterFirst(' ');
+
+ // consider extensions as not being case-sensitive
+ if ( field.IsSameAs(ext, FALSE /* no case */) ) {
+ // found
+ wxFileType *fileType = new wxFileType;
+ fileType->m_impl->Init(this, n);
+
+ return fileType;
+ }
+ }
+ }
+ // not found
return NULL;
}
// is this something of the form foo=bar?
const char *pEq = strchr(curField, '=');
if ( pEq != NULL ) {
- wxString lhs = curField.Before('='),
- rhs = curField.After('=');
+ wxString lhs = curField.BeforeFirst('='),
+ rhs = curField.AfterFirst('=');
lhs.Trim(TRUE); // from right
rhs.Trim(FALSE); // from left
{
// don't flood the user with error messages
// if we don't understand something in his
- // mailcap
+ // mailcap, but give them in debug mode
+ // because this might be useful for the
+ // programmer
wxLogDebug
(
_("Mailcap file %s, line %d: unknown "