// Don't use mime types manager if the application doesn't need it and it would be
// cause an unacceptable delay, especially on startup.
- bool useMimeTypesManager = true;
#if wxUSE_SYSTEM_OPTIONS
- useMimeTypesManager = (wxSystemOptions::GetOptionInt(wxT("filesys.no-mimetypesmanager")) == 0);
+ if ( !wxSystemOptions::GetOptionInt(wxT("filesys.no-mimetypesmanager")) )
#endif
-
- if (useMimeTypesManager)
{
if (!s_MinimalMimeEnsured)
{
static const wxFileTypeInfo fallbacks[] =
{
- wxFileTypeInfo(_T("image/jpeg"),
+ wxFileTypeInfo(wxT("image/jpeg"),
wxEmptyString,
wxEmptyString,
- _T("JPEG image (from fallback)"),
- _T("jpg"), _T("jpeg"), _T("JPG"), _T("JPEG"), wxNullPtr),
- wxFileTypeInfo(_T("image/gif"),
+ wxT("JPEG image (from fallback)"),
+ wxT("jpg"), wxT("jpeg"), wxT("JPG"), wxT("JPEG"), wxNullPtr),
+ wxFileTypeInfo(wxT("image/gif"),
wxEmptyString,
wxEmptyString,
- _T("GIF image (from fallback)"),
- _T("gif"), _T("GIF"), wxNullPtr),
- wxFileTypeInfo(_T("image/png"),
+ wxT("GIF image (from fallback)"),
+ wxT("gif"), wxT("GIF"), wxNullPtr),
+ wxFileTypeInfo(wxT("image/png"),
wxEmptyString,
wxEmptyString,
- _T("PNG image (from fallback)"),
- _T("png"), _T("PNG"), wxNullPtr),
- wxFileTypeInfo(_T("image/bmp"),
+ wxT("PNG image (from fallback)"),
+ wxT("png"), wxT("PNG"), wxNullPtr),
+ wxFileTypeInfo(wxT("image/bmp"),
wxEmptyString,
wxEmptyString,
- _T("windows bitmap image (from fallback)"),
- _T("bmp"), _T("BMP"), wxNullPtr),
- wxFileTypeInfo(_T("text/html"),
+ wxT("windows bitmap image (from fallback)"),
+ wxT("bmp"), wxT("BMP"), wxNullPtr),
+ wxFileTypeInfo(wxT("text/html"),
wxEmptyString,
wxEmptyString,
- _T("HTML document (from fallback)"),
- _T("htm"), _T("html"), _T("HTM"), _T("HTML"), wxNullPtr),
- // must terminate the table with this!
- wxFileTypeInfo()
+ wxT("HTML document (from fallback)"),
+ wxT("htm"), wxT("html"), wxT("HTM"), wxT("HTML"), wxNullPtr),
+ // must terminate the table with this!
+ wxFileTypeInfo()
};
wxTheMimeTypesManager->AddFallbacks(fallbacks);
s_MinimalMimeEnsured = true;
}
-
+
wxFileType *ft = wxTheMimeTypesManager->GetFileTypeFromExtension(ext);
if ( !ft || !ft -> GetMimeType(&mime) )
{
mime = wxEmptyString;
}
-
+
delete ft;
-
+
return mime;
}
else
#endif
{
- if ( ext.IsSameAs(wxT("htm"), false) || ext.IsSameAs(_T("html"), false) )
+ if ( ext.IsSameAs(wxT("htm"), false) || ext.IsSameAs(wxT("html"), false) )
return wxT("text/html");
- if ( ext.IsSameAs(wxT("jpg"), false) || ext.IsSameAs(_T("jpeg"), false) )
+ if ( ext.IsSameAs(wxT("jpg"), false) || ext.IsSameAs(wxT("jpeg"), false) )
return wxT("image/jpeg");
if ( ext.IsSameAs(wxT("gif"), false) )
return wxT("image/gif");
wxString fullpath = ms_root + fn.GetFullPath();
if (!wxFileExists(fullpath))
- return (wxFSFile*) NULL;
+ return NULL;
// we need to check whether we can really read from this file, otherwise
// wxFSFile is not going to work
if ( !is->Ok() )
{
delete is;
- return (wxFSFile*) NULL;
+ return NULL;
}
return new wxFSFile(is,
wxString wxLocalFSHandler::FindFirst(const wxString& spec, int flags)
{
wxFileName fn = wxFileSystem::URLToFileName(GetRightLocation(spec));
- return wxFindFirstFile(ms_root + fn.GetFullPath(), flags);
+ const wxString found = wxFindFirstFile(ms_root + fn.GetFullPath(), flags);
+ if ( found.empty() )
+ return found;
+ return wxFileSystem::FileNameToURL(found);
}
wxString wxLocalFSHandler::FindNext()
{
- return wxFindNextFile();
+ const wxString found = wxFindNextFile();
+ if ( found.empty() )
+ return found;
+ return wxFileSystem::FileNameToURL(found);
}
{
// we assume that it's not empty
wxCHECK_MSG( !basename.empty(), false,
- _T("empty file name in wxFileSystem::FindFileInPath"));
+ wxT("empty file name in wxFileSystem::FindFileInPath"));
wxString name;
// skip path separator in the beginning of the file name if present
// here, in particular in GetRightLocation()
url.Replace(wxT(":"), wxT("%3A"));
url = wxT("file:") + url;
- return url;
+
+ // Do wxURI- and common practice-compatible escaping: encode the string
+ // into UTF-8, then escape anything non-ASCII:
+ return wxURI(url).BuildURI();
}