cbuf = wxCharBuffer::CreateNonOwned((char *)buf.GetData(), buf.GetDataLen());
#endif // wxUSE_UNICODE/!wxUSE_UNICODE
-
- // now break it into lines
- wxMemoryText memText;
- for ( const wxChar *s = cbuf; ; ++s )
+ // parse the input contents if there is anything to parse
+ if ( cbuf )
{
- const wxChar *e = s;
- while ( *e != '\0' && *e != '\n' && *e != '\r' )
- ++e;
+ // now break it into lines
+ wxMemoryText memText;
+ for ( const wxChar *s = cbuf; ; ++s )
+ {
+ const wxChar *e = s;
+ while ( *e != '\0' && *e != '\n' && *e != '\r' )
+ ++e;
- // notice that we throw away the original EOL kind here, maybe we
- // should preserve it?
- if ( e != s )
- memText.AddLine(wxString(s, e));
+ // notice that we throw away the original EOL kind here, maybe we
+ // should preserve it?
+ if ( e != s )
+ memText.AddLine(wxString(s, e));
- if ( *e == '\0' )
- break;
+ if ( *e == '\0' )
+ break;
- // skip the second EOL byte if it's a DOS one
- if ( *e == '\r' && e[1] == '\n' )
- ++e;
+ // skip the second EOL byte if it's a DOS one
+ if ( *e == '\r' && e[1] == '\n' )
+ ++e;
- s = e;
- }
+ s = e;
+ }
- // Finally we can parse it all.
- Parse(memText, true /* local */);
+ // Finally we can parse it all.
+ Parse(memText, true /* local */);
+ }
SetRootPath();
ResetDirty();
// which is exactly what we want.
else if ( !bLocal || pEntry->IsLocal() ) {
wxLogWarning(_("file '%s', line %d: key '%s' was first found at line %d."),
- buffer.GetName(), n + 1, strKey.c_str(), pEntry->Line());
+ buffer.GetName(), (int)n + 1, strKey.c_str(), pEntry->Line());
}
}