[Scummvm-git-logs] scummvm master -> 7f457f8e944a273eb78023842f5192942a5042f0

sev- noreply at scummvm.org
Wed Dec 7 21:58:53 UTC 2022


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

Summary:
e2b0259d29 BASE: Add function EngineManager::generateUniqueDomain
5854585b33 BASE: Add check to avoid domain override when launching from command line with -p argument
7f457f8e94 BASE: Refactor EngineManager::createTargetForGame


Commit: e2b0259d295418076dc4beb711581f0851390746
    https://github.com/scummvm/scummvm/commit/e2b0259d295418076dc4beb711581f0851390746
Author: Roberto Sánchez (robertosanchez_9 at protonmail.com)
Date: 2022-12-07T22:58:48+01:00

Commit Message:
BASE: Add function EngineManager::generateUniqueDomain

Changed paths:
    base/plugins.cpp
    engines/metaengine.h


diff --git a/base/plugins.cpp b/base/plugins.cpp
index a30d3511a91..7a81e3ce415 100644
--- a/base/plugins.cpp
+++ b/base/plugins.cpp
@@ -757,6 +757,15 @@ void addStringToConf(const Common::String &key, const Common::String &value, con
 
 } // End of anonymous namespace
 
+Common::String EngineManager::generateUniqueDomain(const Common::String gameId) {
+	Common::String domainName(gameId);
+	int suffixN = 1;
+	while (ConfMan.hasGameDomain(domainName)) {
+		domainName = gameId + Common::String::format("-%d", suffixN++);
+	}
+	return domainName;
+}
+
 Common::String EngineManager::createTargetForGame(const DetectedGame &game) {
 	// The auto detector or the user made a choice.
 	// Pick a domain name which does not yet exist (after all, we
diff --git a/engines/metaengine.h b/engines/metaengine.h
index 0ea12169386..cf935828a2c 100644
--- a/engines/metaengine.h
+++ b/engines/metaengine.h
@@ -610,6 +610,9 @@ public:
 	/** Upgrade a target to the current configuration format. */
 	void upgradeTargetIfNecessary(const Common::String &target) const;
 
+	/** Generate valid, non-repeated domainName for game*/
+	Common::String generateUniqueDomain(const Common::String gameId);
+
 private:
 	/** Find a game across all loaded plugins. */
 	QualifiedGameList findGameInLoadedPlugins(const Common::String &gameId) const;


Commit: 5854585b33119ab505769f7b9f659e93d3ee30a5
    https://github.com/scummvm/scummvm/commit/5854585b33119ab505769f7b9f659e93d3ee30a5
Author: Roberto Sánchez (robertosanchez_9 at protonmail.com)
Date: 2022-12-07T22:58:48+01:00

Commit Message:
BASE: Add check to avoid domain override when launching from command line with -p argument

Changed paths:
    base/commandLine.cpp


diff --git a/base/commandLine.cpp b/base/commandLine.cpp
index d1699f4a6a1..76d8985f91d 100644
--- a/base/commandLine.cpp
+++ b/base/commandLine.cpp
@@ -436,7 +436,7 @@ static QualifiedGameDescriptor findGameMatchingName(const Common::String &name)
 }
 
 static Common::String createTemporaryTarget(const Common::String &engineId, const Common::String &gameId) {
-	Common::String domainName = gameId;
+	Common::String domainName = EngineMan.generateUniqueDomain(gameId);
 
 	ConfMan.addGameDomain(domainName);
 	ConfMan.set("engineid", engineId, domainName);


Commit: 7f457f8e944a273eb78023842f5192942a5042f0
    https://github.com/scummvm/scummvm/commit/7f457f8e944a273eb78023842f5192942a5042f0
Author: Roberto Sánchez (robertosanchez_9 at protonmail.com)
Date: 2022-12-07T22:58:48+01:00

Commit Message:
BASE: Refactor EngineManager::createTargetForGame

Changed paths:
    base/plugins.cpp


diff --git a/base/plugins.cpp b/base/plugins.cpp
index 7a81e3ce415..cefe7401168 100644
--- a/base/plugins.cpp
+++ b/base/plugins.cpp
@@ -773,15 +773,7 @@ Common::String EngineManager::createTargetForGame(const DetectedGame &game) {
 	Common::String domain = game.preferredTarget;
 
 	assert(!domain.empty());
-	if (ConfMan.hasGameDomain(domain)) {
-		int suffixN = 1;
-		Common::String gameid(domain);
-
-		while (ConfMan.hasGameDomain(domain)) {
-			domain = gameid + Common::String::format("-%d", suffixN);
-			suffixN++;
-		}
-	}
+	domain = generateUniqueDomain(domain);
 
 	// Add the name domain
 	ConfMan.addGameDomain(domain);




More information about the Scummvm-git-logs mailing list