diff options
author | Yohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer> | 2010-09-27 22:40:40 +0200 |
---|---|---|
committer | Yohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer> | 2010-09-27 22:40:40 +0200 |
commit | 6f25f5d9390ae247970ad886dc51d55435285831 (patch) | |
tree | e5c748d1e5598cdd658741a4b35890cec636d37a /src/utils/stringutils.cpp | |
parent | 661d16e98c62dfff40f481177bf3f1a0c58c2124 (diff) | |
download | mana-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.cpp | 17 |
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, |