diff --git a/src/dos/drive_local.cpp b/src/dos/drive_local.cpp index 5b8882f0..a24ad9cc 100644 --- a/src/dos/drive_local.cpp +++ b/src/dos/drive_local.cpp @@ -265,10 +265,15 @@ bool localFile::Read(Bit8u * data,Bit16u * size) { }; bool localFile::Write(Bit8u * data,Bit16u * size) { - *size=fwrite(data,1,*size,fhandle); + if(*size==0){ + return (!ftruncate(fileno(fhandle),ftell(fhandle))); + } + else + { + *size=fwrite(data,1,*size,fhandle); return true; + } } - bool localFile::Seek(Bit32u * pos,Bit32u type) { int seektype; switch (type) {