X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d1f6e2cfe2edae646d58e94c6a6b5f010f6439f7..60913641356f364a5efee5966d3a3b0b48c01001:/src/common/mimecmn.cpp diff --git a/src/common/mimecmn.cpp b/src/common/mimecmn.cpp index b24cc65838..1121e348a7 100644 --- a/src/common/mimecmn.cpp +++ b/src/common/mimecmn.cpp @@ -35,6 +35,7 @@ #include "wx/intl.h" #include "wx/log.h" #include "wx/module.h" + #include "wx/crt.h" #endif //WX_PRECOMP #include "wx/file.h" @@ -47,8 +48,8 @@ // implementation classes: #if defined(__WXMSW__) #include "wx/msw/mimetype.h" -#elif defined(__WXMAC__) - #include "wx/mac/mimetype.h" +#elif ( defined(__WXMAC__) && wxOSX_USE_CARBON ) + #include "wx/osx/mimetype.h" #elif defined(__WXPM__) || defined (__EMX__) #include "wx/os2/mimetype.h" #undef __UNIX__ @@ -145,44 +146,19 @@ void wxFileTypeInfo::DoVarArgInit(const wxString& mimeType, } } -// NB: DoVarArgInit uses WX_VA_ARG_STRING macro to extract the string and this -// macro interprets the argument as char* or wchar_t* depending on build -// (and in UTF8 build, on the current locale). Because only one of the -// vararg forms below is called and the decision about which one gets -// called depends on the same conditions WX_VA_ARG_STRING uses, we can -// implement both of them in the exact same way: - -#if !wxUSE_UTF8_LOCALE_ONLY -void wxFileTypeInfo::VarArgInitWchar(const wxChar *mimeType, - const wxChar *openCmd, - const wxChar *printCmd, - const wxChar *desc, - ...) +void wxFileTypeInfo::VarArgInit(const wxString *mimeType, + const wxString *openCmd, + const wxString *printCmd, + const wxString *desc, + ...) { va_list argptr; va_start(argptr, desc); - DoVarArgInit(mimeType, openCmd, printCmd, desc, argptr); + DoVarArgInit(*mimeType, *openCmd, *printCmd, *desc, argptr); va_end(argptr); } -#endif // !wxUSE_UTF8_LOCALE_ONLY - -#if wxUSE_UNICODE_UTF8 -void wxFileTypeInfo::VarArgInitUtf8(const char *mimeType, - const char *openCmd, - const char *printCmd, - const char *desc, - ...) -{ - va_list argptr; - va_start(argptr, desc); - - DoVarArgInit(mimeType, openCmd, printCmd, desc, argptr); - - va_end(argptr); -} -#endif // wxUSE_UNICODE_UTF8 wxFileTypeInfo::wxFileTypeInfo(const wxArrayString& sArray) @@ -635,7 +611,18 @@ wxFileType * wxMimeTypesManager::GetFileTypeFromExtension(const wxString& ext) { EnsureImpl(); - wxFileType *ft = m_impl->GetFileTypeFromExtension(ext); + + wxString::const_iterator i = ext.begin(); + const wxString::const_iterator end = ext.end(); + wxString extWithoutDot; + if ( i != end && *i == '.' ) + extWithoutDot.assign(++i, ext.end()); + else + extWithoutDot = ext; + + wxCHECK_MSG( !ext.empty(), NULL, _T("extension can't be empty") ); + + wxFileType *ft = m_impl->GetFileTypeFromExtension(extWithoutDot); if ( !ft ) { // check the fallbacks @@ -680,18 +667,6 @@ wxMimeTypesManager::GetFileTypeFromMimeType(const wxString& mimeType) return ft; } -bool wxMimeTypesManager::ReadMailcap(const wxString& filename, bool fallback) -{ - EnsureImpl(); - return m_impl->ReadMailcap(filename, fallback); -} - -bool wxMimeTypesManager::ReadMimeTypes(const wxString& filename) -{ - EnsureImpl(); - return m_impl->ReadMimeTypes(filename); -} - void wxMimeTypesManager::AddFallbacks(const wxFileTypeInfo *filetypes) { EnsureImpl();