X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/31528cd3cac75558beef4bce0ba21fd182a808ab..6f349458f6903083bd967f52624a5e639733ad5d:/src/common/fs_inet.cpp diff --git a/src/common/fs_inet.cpp b/src/common/fs_inet.cpp index def435b732..dfbc008965 100644 --- a/src/common/fs_inet.cpp +++ b/src/common/fs_inet.cpp @@ -83,13 +83,13 @@ wxFSFile* wxInternetFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wxStri info = (wxInetCacheNode*) m_Cache.Get(right); // Add item into cache: - if (info != NULL) + if (info == NULL) { wxURL url(right); s = url.GetInputStream(); content = url.GetProtocol().GetContentType(); if (content == wxEmptyString) content = GetMimeTypeFromExt(location); - if (s) + if (s) { wxChar buf[256]; @@ -98,20 +98,25 @@ wxFSFile* wxInternetFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wxStri m_Cache.Put(right, info); { // ok, now copy it: +#if defined(__VISAGECPP__) +// VA thinks this is an ambiguous call + wxFileOutputStream sout((wxString)buf); +#else wxFileOutputStream sout(buf); +#endif s -> Read(sout); // copy the stream } delete s; } else - { - return (wxFSFile*) NULL; // we can't open the URL - } + { + return (wxFSFile*) NULL; // we can't open the URL + } } // Load item from cache: s = new wxFileInputStream(info->GetTemp()); - if (s) + if (s) { return new wxFSFile(s, right, @@ -129,7 +134,7 @@ wxInternetFSHandler::~wxInternetFSHandler() wxInetCacheNode *n2; m_Cache.BeginFind(); - while ((n = m_Cache.Next()) != NULL) + while ((n = m_Cache.Next()) != NULL) { n2 = (wxInetCacheNode*) n->GetData(); wxRemoveFile(n2->GetTemp()); @@ -137,4 +142,19 @@ wxInternetFSHandler::~wxInternetFSHandler() } } +class wxFileSystemInternetModule : public wxModule +{ + DECLARE_DYNAMIC_CLASS(wxFileSystemInternetModule) + + public: + virtual bool OnInit() + { + wxFileSystem::AddHandler(new wxInternetFSHandler); + return TRUE; + } + virtual void OnExit() {} +}; + +IMPLEMENT_DYNAMIC_CLASS(wxFileSystemInternetModule, wxModule) + #endif // wxUSE_FS_INET