[Scummvm-git-logs] scummvm master -> 3e7eb8485e0df2f8d4c1f7e9327a1b2080acfca6

bluegr bluegr at gmail.com
Sat May 1 17:00:04 UTC 2021


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
3e7eb8485e MorphOS: cleanup code


Commit: 3e7eb8485e0df2f8d4c1f7e9327a1b2080acfca6
    https://github.com/scummvm/scummvm/commit/3e7eb8485e0df2f8d4c1f7e9327a1b2080acfca6
Author: BeWorld (36823759+BeWorld2018 at users.noreply.github.com)
Date: 2021-05-01T20:00:01+03:00

Commit Message:
MorphOS: cleanup code

- remove utf8toLocal and use internal encode
- save only path (drawer) on browser_lastpath

Changed paths:
    backends/dialogs/morphos/morphos-dialogs.cpp
    backends/fs/morphos/morphos-fs.cpp


diff --git a/backends/dialogs/morphos/morphos-dialogs.cpp b/backends/dialogs/morphos/morphos-dialogs.cpp
index 735a77c5c8..765a16347b 100644
--- a/backends/dialogs/morphos/morphos-dialogs.cpp
+++ b/backends/dialogs/morphos/morphos-dialogs.cpp
@@ -21,8 +21,6 @@
  */
 
 #define FORBIDDEN_SYMBOL_EXCEPTION_FILE
-#define FORBIDDEN_SYMBOL_EXCEPTION_unistd_h
-#define FORBIDDEN_SYMBOL_EXCEPTION_time_h
 #define FORBIDDEN_SYMBOL_EXCEPTION_strdup
 #include "common/scummsys.h"
 
@@ -36,39 +34,12 @@
 #include <proto/dos.h>
 #define __NOLIBBASE__
 #include <proto/asl.h>
-#include <proto/charsets.h>
-
-char *MorphosDialogManager::utf8ToLocal(char *in) {
-
-	if (!in) {
-		return strdup("");
-	}
-
-	struct Library *CharsetsBase = OpenLibrary("charsets.library", 0);
-	if (CharsetsBase) {
-
-		LONG dstmib = GetSystemCharset(NULL, 0);
-		if (dstmib != MIBENUM_INVALID) {
-			LONG dstlen = GetByteSize((APTR)in, -1, MIBENUM_UTF_8, dstmib);
-			char *out = (char *)malloc(dstlen + 1);
-			if (out) {
-				if (ConvertTagList((APTR)in, -1, (APTR)out, -1, MIBENUM_UTF_8, dstmib, NULL) != -1) {
-					return out;
-				}
-				free(out);
-			}
-		}
-		CloseLibrary(CharsetsBase);
-	}
-
-	return strdup(in);
-}
 
 Common::DialogManager::DialogResult MorphosDialogManager::showFileBrowser(const Common::U32String &title, Common::FSNode &choice, bool isDirBrowser) {
 
 	DialogResult result = kDialogCancel;
 	char pathBuffer[PATH_MAX];
-	Common::String utf8Title = title.encode();
+	Common::String newTitle = title.encode(Common::kISO8859_1);
 	struct Library *AslBase = OpenLibrary(AslName, 39);
 
 	if (AslBase) {
@@ -83,24 +54,21 @@ Common::DialogManager::DialogResult MorphosDialogManager::showFileBrowser(const
 
 		if (!fr)
 			return result;
-
-		char *newTitle = utf8ToLocal((char *)utf8Title.c_str());
-
-		if (AslRequestTags(fr, ASLFR_TitleText, (IPTR)newTitle, ASLFR_RejectIcons, TRUE, ASLFR_InitialDrawer, (IPTR)pathBuffer, ASLFR_DrawersOnly, (isDirBrowser ? TRUE : FALSE), TAG_DONE)) {
+		
+		if (AslRequestTags(fr, ASLFR_TitleText, (IPTR)newTitle.c_str(), ASLFR_RejectIcons, TRUE, ASLFR_InitialDrawer, (IPTR)pathBuffer, ASLFR_DrawersOnly, (isDirBrowser ? TRUE : FALSE), TAG_DONE)) {
 
 			if (strlen(fr->fr_Drawer) < sizeof(pathBuffer)) {
 				strncpy(pathBuffer, fr->fr_Drawer, sizeof(pathBuffer));
+				ConfMan.set("browser_lastpath", pathBuffer); // only path
 				if (!isDirBrowser) {
 					AddPart(pathBuffer, fr->fr_File, sizeof(pathBuffer));
 				}
-				choice = Common::FSNode(pathBuffer);
-				ConfMan.set("browser_lastpath", pathBuffer);
+				choice = Common::FSNode(pathBuffer);			
 				result = kDialogOk;
 			}
+			FreeAslRequest((APTR)fr);
 		}
 
-		free(newTitle);
-		FreeAslRequest((APTR)fr);
 		CloseLibrary(AslBase);
 	}
 
diff --git a/backends/fs/morphos/morphos-fs.cpp b/backends/fs/morphos/morphos-fs.cpp
index a15f5fc30e..3eebea800f 100644
--- a/backends/fs/morphos/morphos-fs.cpp
+++ b/backends/fs/morphos/morphos-fs.cpp
@@ -84,7 +84,7 @@ MorphOSFilesystemNode::MorphOSFilesystemNode(const Common::String &p) {
 	 return;	
 	}
 
-	BPTR pLock = Lock((STRPTR)_sPath.c_str(), SHARED_LOCK);
+	BPTR pLock = Lock((CONST_STRPTR)_sPath.c_str(), SHARED_LOCK);
 	if (pLock) {
 		if (Examine(pLock, fib) != DOSFALSE) {
 			if (fib->fib_EntryType > 0) {
@@ -145,7 +145,7 @@ MorphOSFilesystemNode::MorphOSFilesystemNode(BPTR pLock, const char *pDisplayNam
 	   		if (fib->fib_EntryType != ST_ROOT)
 	   			_sPath += '/';
 	   		_pFileLock = DupLock(pLock);
-			_bIsValid = (_pFileLock != NULL);
+			if (_pFileLock) _bIsValid = true;
 		} else {
 			_bIsValid = true;
 	    }
@@ -358,7 +358,7 @@ Common::WriteStream *MorphOSFilesystemNode::createWriteStream() {
 }
 
 bool MorphOSFilesystemNode::createDirectory() {
-	warning("AmigaOSFilesystemNode::createDirectory(): Not supported");
+	warning("MorphOSFilesystemNode::createDirectory(): Not supported");
 	return _bIsValid && _bIsDirectory;
 }
 




More information about the Scummvm-git-logs mailing list