[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