Check for and allow zero length files

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21517 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn 2003-06-30 17:37:34 +00:00
parent 7142ac377a
commit 041973c55e
4 changed files with 80 additions and 56 deletions

View File

@ -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;

View File

@ -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;