X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/93763ad5ba900aecb9220a36ebe7447313ea3e31..4b5e178a4c22caac92952131632641c63821fc0c:/src/html/htmlfilt.cpp diff --git a/src/html/htmlfilt.cpp b/src/html/htmlfilt.cpp index 025a19e155..28c3de9e68 100644 --- a/src/html/htmlfilt.cpp +++ b/src/html/htmlfilt.cpp @@ -15,43 +15,23 @@ #if wxUSE_HTML && wxUSE_STREAMS -#ifndef WXPRECOMP +#ifndef WX_PRECOMP #include "wx/log.h" #include "wx/intl.h" #endif #include "wx/strconv.h" +#include "wx/sstream.h" #include "wx/html/htmlfilt.h" #include "wx/html/htmlwin.h" -// utility function: read a wxString from a wxInputStream +// utility function: read entire contents of an wxInputStream into a wxString +// +// TODO: error handling? static void ReadString(wxString& str, wxInputStream* s, wxMBConv& conv) { - size_t streamSize = s->GetSize(); - - if (streamSize == ~(size_t)0) - { - const size_t bufSize = 4095; - char buffer[bufSize+1]; - size_t lastRead; - - do - { - s->Read(buffer, bufSize); - lastRead = s->LastRead(); - buffer[lastRead] = 0; - str.Append(wxString(buffer, conv)); - } - while (lastRead == bufSize); - } - else - { - char* src = new char[streamSize+1]; - s->Read(src, streamSize); - src[streamSize] = 0; - str = wxString(src, conv); - delete[] src; - } + wxStringOutputStream out(&str, conv); + s->Read(out); } /*