summaryrefslogtreecommitdiff
path: root/src/utils/stringutils.cpp
diff options
context:
space:
mode:
authorYohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer>2010-09-27 22:40:40 +0200
committerYohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer>2010-09-27 22:40:40 +0200
commit6f25f5d9390ae247970ad886dc51d55435285831 (patch)
treee5c748d1e5598cdd658741a4b35890cec636d37a /src/utils/stringutils.cpp
parent661d16e98c62dfff40f481177bf3f1a0c58c2124 (diff)
downloadmana-6f25f5d9390ae247970ad886dc51d55435285831.tar.gz
mana-6f25f5d9390ae247970ad886dc51d55435285831.tar.bz2
mana-6f25f5d9390ae247970ad886dc51d55435285831.tar.xz
mana-6f25f5d9390ae247970ad886dc51d55435285831.zip
Centralized String to bool conversion into the client.
The former XML::getBoolProperty() had a potential memleak and was unsafe when dealing with unknown values. Reviewed-by: CodyMartin. Resolves: Mana-Mantis #213.
Diffstat (limited to 'src/utils/stringutils.cpp')
-rw-r--r--src/utils/stringutils.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/utils/stringutils.cpp b/src/utils/stringutils.cpp
index 4726f8a7..ca03791f 100644
--- a/src/utils/stringutils.cpp
+++ b/src/utils/stringutils.cpp
@@ -155,7 +155,8 @@ bool isWordSeparator(char chr)
return (chr == ' ' || chr == ',' || chr == '.' || chr == '"');
}
-const std::string findSameSubstring(const std::string &str1, const std::string &str2)
+const std::string findSameSubstring(const std::string &str1,
+ const std::string &str2)
{
int minLength = str1.length() > str2.length() ? str2.length() : str1.length();
for (int f = 0; f < minLength; f ++)
@@ -176,16 +177,16 @@ const char* getSafeUtf8String(std::string text)
return buf;
}
-bool getBoolFromString(const std::string &text)
+bool getBoolFromString(const std::string &text, bool def)
{
- std::string txt = text;
- toLower(trim(txt));
- if (txt == "true" || txt == "yes" || txt == "on" || txt == "1")
- return true;
- else if (txt == "false" || txt == "no" || txt == "off" || txt == "0")
+ std::string a = text;
+ toLower(trim(a));
+ if (a == "true" || a == "1" || a == "on" || a == "yes" || a == "y")
+ return true;
+ if (a == "false" || a == "0" || a == "off" || a == "no" || a == "n")
return false;
else
- return (bool) atoi(txt.c_str());
+ return def;
}
std::string autocomplete(std::vector<std::string> &candidates,