+// utility function: read a wxString from a wxInputStream
+void wxPrivate_ReadString(wxString& str, wxInputStream* s)
+{
+ 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(buffer);
+ }
+ while(lastRead == bufSize);
+ }
+ else
+ {
+ char* src = new char[streamSize+1];
+ s->Read(src, streamSize);
+ src[streamSize] = 0;
+ str = src;
+ delete [] src;
+ }
+}