aboutsummaryrefslogtreecommitdiff
path: root/engines/gob
diff options
context:
space:
mode:
authorSven Hesse2011-08-31 13:43:38 +0200
committerSven Hesse2011-09-03 18:00:08 +0200
commitcceaa04ef23d766bc666324e69b8fa6fbfa1e39a (patch)
tree0d1a96d8a6f34c87f5137b5b9bf2ca78b923cd3e /engines/gob
parenteebd5a28f9a76f3021041480fd22d218bcfa18d9 (diff)
downloadscummvm-rg350-cceaa04ef23d766bc666324e69b8fa6fbfa1e39a.tar.gz
scummvm-rg350-cceaa04ef23d766bc666324e69b8fa6fbfa1e39a.tar.bz2
scummvm-rg350-cceaa04ef23d766bc666324e69b8fa6fbfa1e39a.zip
GOB: Make Util::setExtension() not add an extension to an empty string
Diffstat (limited to 'engines/gob')
-rw-r--r--engines/gob/util.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/engines/gob/util.cpp b/engines/gob/util.cpp
index 1add604ccb..58dfc9c7ad 100644
--- a/engines/gob/util.cpp
+++ b/engines/gob/util.cpp
@@ -518,6 +518,11 @@ void Util::deleteList(List *list) {
}
char *Util::setExtension(char *str, const char *ext) {
+ assert(str && ext);
+
+ if (str[0] == '\0')
+ return str;
+
char *dot = strrchr(str, '.');
if (dot)
*dot = '\0';
@@ -527,6 +532,9 @@ char *Util::setExtension(char *str, const char *ext) {
}
Common::String Util::setExtension(const Common::String &str, const Common::String &ext) {
+ if (str.empty())
+ return str;
+
const char *dot = strrchr(str.c_str(), '.');
if (dot)
return Common::String(str.c_str(), dot - str.c_str()) + ext;