+ // this shouldn't happen but don't overwrite the buffer if it does
+ wxCHECK_MSG( bufPos + nRead <= bufSize, false,
+ _T("read more than file length?") );
+
+ // append to the buffer
+ memcpy(buf.data() + bufPos, block, nRead);
+ bufPos += nRead;
+ }
+
+ const wxString str(buf, conv, bufPos);
+
+ // this doesn't risk to happen in ANSI build
+#if wxUSE_UNICODE
+ if ( bufSize > 4 && str.empty() )
+ {
+ wxLogError(_("Failed to convert file contents to Unicode."));
+ return false;
+ }
+#endif // wxUSE_UNICODE
+
+ free(buf.release()); // we don't need this memory any more
+