[Scummvm-git-logs] scummvm master -> 26d50d67f31d4dcc7da90fbcfd6a2d856f4f77e7
djsrv
dservilla at gmail.com
Fri Jun 12 17:42:40 UTC 2020
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
c00e1199ad DIRECTOR: LINGO: Improve FileIO error handling
26d50d67f3 GUI: Ignore file extension case
Commit: c00e1199ad89e6b99fccf40c5c6424c3356f62f4
https://github.com/scummvm/scummvm/commit/c00e1199ad89e6b99fccf40c5c6424c3356f62f4
Author: djsrv (dservilla at gmail.com)
Date: 2020-06-12T13:36:27-04:00
Commit Message:
DIRECTOR: LINGO: Improve FileIO error handling
Changed paths:
engines/director/lingo/xlibs/fileio.cpp
engines/director/lingo/xlibs/fileio.h
diff --git a/engines/director/lingo/xlibs/fileio.cpp b/engines/director/lingo/xlibs/fileio.cpp
index 2eefa5ea07..67db2ffa21 100644
--- a/engines/director/lingo/xlibs/fileio.cpp
+++ b/engines/director/lingo/xlibs/fileio.cpp
@@ -128,12 +128,23 @@ void FileObject::dispose() {
}
}
+void FileIO::saveFileError() {
+ Common::SaveFileManager *saves = g_system->getSavefileManager();
+ if (saves->getError().getCode()) {
+ warning("SaveFileManager error %d: %s", saves->getError().getCode(), saves->getErrorDesc().c_str());
+ g_lingo->push(Datum(kErrorIO));
+ } else {
+ g_lingo->push(Datum(kErrorFileNotFound));
+ }
+}
+
void FileIO::m_new(int nargs) {
FileObject *me = static_cast<FileObject *>(g_lingo->_currentMeObj);
Datum d2 = g_lingo->pop();
Datum d1 = g_lingo->pop();
+ Common::SaveFileManager *saves = g_system->getSavefileManager();
Common::String option = *d1.u.s;
Common::String filename = *d2.u.s;
@@ -150,28 +161,28 @@ void FileIO::m_new(int nargs) {
}
if (option.equalsIgnoreCase("read")) {
- me->inFile = g_system->getSavefileManager()->openForLoading(filename);
+ me->inFile = saves->openForLoading(filename);
me->inStream = me->inFile;
if (!me->inFile) {
+ saveFileError();
delete me;
- g_lingo->push(Datum(kErrorIO));
return;
}
} else if (option.equalsIgnoreCase("write")) {
// OutSaveFile is not seekable so create a separate seekable stream
// which will be written to the outfile upon disposal
- me->outFile = g_system->getSavefileManager()->openForSaving(filename, false);
+ me->outFile = saves->openForSaving(filename, false);
me->outStream = new Common::MemoryWriteStreamDynamic(DisposeAfterUse::YES);
if (!me->outFile) {
+ saveFileError();
delete me;
- g_lingo->push(Datum(kErrorIO));
return;
}
} else if (option.equalsIgnoreCase("append")) {
- Common::InSaveFile *inFile = g_system->getSavefileManager()->openForLoading(filename);
+ Common::InSaveFile *inFile = saves->openForLoading(filename);
if (!inFile) {
+ saveFileError();
delete me;
- g_lingo->push(Datum(kErrorIO));
return;
}
me->outStream = new Common::MemoryWriteStreamDynamic(DisposeAfterUse::YES);
@@ -181,10 +192,10 @@ void FileIO::m_new(int nargs) {
b = inFile->readByte();
}
delete inFile;
- me->outFile = g_system->getSavefileManager()->openForSaving(filename, false);
+ me->outFile = saves->openForSaving(filename, false);
if (!me->outFile) {
+ saveFileError();
delete me;
- g_lingo->push(Datum(kErrorIO));
return;
}
} else {
diff --git a/engines/director/lingo/xlibs/fileio.h b/engines/director/lingo/xlibs/fileio.h
index 69acbf8cde..c4602323c9 100644
--- a/engines/director/lingo/xlibs/fileio.h
+++ b/engines/director/lingo/xlibs/fileio.h
@@ -76,6 +76,7 @@ struct FileObject : Object {
namespace FileIO {
void initialize(int type);
+ void saveFileError();
void m_delete(int nargs);
void m_dispose(int nargs);
void m_fileName(int nargs);
Commit: 26d50d67f31d4dcc7da90fbcfd6a2d856f4f77e7
https://github.com/scummvm/scummvm/commit/26d50d67f31d4dcc7da90fbcfd6a2d856f4f77e7
Author: djsrv (dservilla at gmail.com)
Date: 2020-06-12T13:39:47-04:00
Commit Message:
GUI: Ignore file extension case
The file browser was appending an extra extension if the case didn't
match.
Changed paths:
gui/filebrowser-dialog.cpp
diff --git a/gui/filebrowser-dialog.cpp b/gui/filebrowser-dialog.cpp
index e3d9bcb960..734bf9fc8f 100644
--- a/gui/filebrowser-dialog.cpp
+++ b/gui/filebrowser-dialog.cpp
@@ -109,7 +109,7 @@ void FileBrowserDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32
void FileBrowserDialog::normalieFileName() {
Common::String filename = _fileName->getEditString();
- if (filename.matchString(_fileMask))
+ if (filename.matchString(_fileMask, true))
return;
_fileName->setEditString(filename + "." + _fileExt);
More information about the Scummvm-git-logs
mailing list