Check for and allow zero length files

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@21517 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2003-06-30 17:37:34 +00:00
parent 24a62af3f8
commit 5940a2978d
2 changed files with 42 additions and 30 deletions

View File

@@ -475,7 +475,7 @@ void wxStyledTextCtrl::MarkerDefineBitmap(int markerNumber, const wxBitmap& bmp)
buff[len] = 0;
SendMsg(2049, markerNumber, (long)buff);
delete [] buff;
}
// Set a margin to be either numeric or symbolic.
@@ -858,7 +858,7 @@ void wxStyledTextCtrl::RegisterImage(int type, const wxBitmap& bmp) {
buff[len] = 0;
SendMsg(2405, type, (long)buff);
delete [] buff;
}
// Clear all the registered images.
@@ -2093,23 +2093,29 @@ bool wxStyledTextCtrl::SaveFile(const wxString& filename)
bool wxStyledTextCtrl::LoadFile(const wxString& filename)
{
bool success = false;
wxFile file(filename, wxFile::read);
if (!file.IsOpened())
return FALSE;
wxString contents;
off_t len = file.Length();
wxChar *buf = contents.GetWriteBuf(len);
bool success = (file.Read(buf, len) == len);
contents.UngetWriteBuf();
if (success)
if (file.IsOpened())
{
SetText(contents);
EmptyUndoBuffer();
SetSavePoint();
wxString contents;
off_t len = file.Length();
if (len > 0)
{
wxChar *buf = contents.GetWriteBuf(len);
success = (file.Read(buf, len) == len);
contents.UngetWriteBuf();
}
else
success = true; // empty file is ok
if (success)
{
SetText(contents);
EmptyUndoBuffer();
SetSavePoint();
}
}
return success;

View File

@@ -325,23 +325,29 @@ bool wxStyledTextCtrl::SaveFile(const wxString& filename)
bool wxStyledTextCtrl::LoadFile(const wxString& filename)
{
bool success = false;
wxFile file(filename, wxFile::read);
if (!file.IsOpened())
return FALSE;
wxString contents;
off_t len = file.Length();
wxChar *buf = contents.GetWriteBuf(len);
bool success = (file.Read(buf, len) == len);
contents.UngetWriteBuf();
if (success)
if (file.IsOpened())
{
SetText(contents);
EmptyUndoBuffer();
SetSavePoint();
wxString contents;
off_t len = file.Length();
if (len > 0)
{
wxChar *buf = contents.GetWriteBuf(len);
success = (file.Read(buf, len) == len);
contents.UngetWriteBuf();
}
else
success = true; // empty file is ok
if (success)
{
SetText(contents);
EmptyUndoBuffer();
SetSavePoint();
}
}
return success;