X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a8d2cf4e70be848aaa52b1bff27b52440da1b648..ce7208d49d5ce2ca1dc0b3b83f14f1d04f29c4bf:/src/common/stream.cpp diff --git a/src/common/stream.cpp b/src/common/stream.cpp index 8aa12b5e24..8ae48e1605 100644 --- a/src/common/stream.cpp +++ b/src/common/stream.cpp @@ -809,11 +809,11 @@ bool wxInputStream::Ungetch(char c) return Ungetch(&c, sizeof(c)) != 0; } -char wxInputStream::GetC() +int wxInputStream::GetC() { - char c; + unsigned char c; Read(&c, sizeof(c)); - return c; + return LastRead() ? c : wxEOF; } wxInputStream& wxInputStream::Read(void *buf, size_t size) @@ -1106,25 +1106,22 @@ wxFilterOutputStream::~wxFilterOutputStream() } // ---------------------------------------------------------------------------- -// wxFilterClassFactory +// wxFilterClassFactoryBase // ---------------------------------------------------------------------------- -IMPLEMENT_ABSTRACT_CLASS(wxFilterClassFactory, wxObject) +IMPLEMENT_ABSTRACT_CLASS(wxFilterClassFactoryBase, wxObject) -wxFilterClassFactory *wxFilterClassFactory::sm_first = NULL; - -wxString wxFilterClassFactory::PopExtension(const wxString& location) const +wxString wxFilterClassFactoryBase::PopExtension(const wxString& location) const { return location.substr(0, FindExtension(location)); } -wxString::size_type wxFilterClassFactory::FindExtension(const wxChar *location) const +wxString::size_type wxFilterClassFactoryBase::FindExtension( + const wxChar *location) const { size_t len = wxStrlen(location); - for (const wxChar *const *p = GetProtocols(wxSTREAM_FILEEXTENSION); - p && *p; - p++) + for (const wxChar *const *p = GetProtocols(wxSTREAM_FILEEXT); *p; p++) { size_t l = wxStrlen(*p); @@ -1135,19 +1132,27 @@ wxString::size_type wxFilterClassFactory::FindExtension(const wxChar *location) return wxString::npos; } -bool wxFilterClassFactory::CanHandle(const wxChar *protocol, - wxStreamProtocolType type) const +bool wxFilterClassFactoryBase::CanHandle(const wxChar *protocol, + wxStreamProtocolType type) const { - if (type == wxSTREAM_FILEEXTENSION) + if (type == wxSTREAM_FILEEXT) return FindExtension(protocol) != wxString::npos; else - for (const wxChar *const *p = GetProtocols(type); p && *p; p++) + for (const wxChar *const *p = GetProtocols(type); *p; p++) if (wxStrcmp(*p, protocol) == 0) return true; return false; } +// ---------------------------------------------------------------------------- +// wxFilterClassFactory +// ---------------------------------------------------------------------------- + +IMPLEMENT_ABSTRACT_CLASS(wxFilterClassFactory, wxFilterClassFactoryBase) + +wxFilterClassFactory *wxFilterClassFactory::sm_first = NULL; + void wxFilterClassFactory::Remove() { if (m_next != this)