]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Add boolean type.
authorToni Wilen <twilen@winuae.net>
Wed, 17 Apr 2019 16:00:23 +0000 (19:00 +0300)
committerToni Wilen <twilen@winuae.net>
Wed, 17 Apr 2019 16:00:23 +0000 (19:00 +0300)
include/ini.h
ini.cpp

index b39a7ae595176d1ff588c8b23f0d3dded43ad2b1..06f71d5bd4a998444693c3efbb839a485e16c9ec 100644 (file)
@@ -36,6 +36,7 @@ void ini_addnewval64(struct ini_data *ini, const TCHAR *section, const TCHAR *ke
 
 bool ini_getstring(struct ini_data *ini, const TCHAR *section, const TCHAR *key, TCHAR **out);
 bool ini_getstring_multi(struct ini_data *ini, const TCHAR *section, const TCHAR *key, TCHAR **out, struct ini_context*);
+bool ini_getbool(struct ini_data *ini, const TCHAR *section, const TCHAR *key, bool *v);
 bool ini_getval(struct ini_data *ini, const TCHAR *section, const TCHAR *key, int *v);
 bool ini_getval_multi(struct ini_data *ini, const TCHAR *section, const TCHAR *key, int *v, struct ini_context*);
 bool ini_getdata(struct ini_data *ini, const TCHAR *section, const TCHAR *key, uae_u8 **out, int *size);
diff --git a/ini.cpp b/ini.cpp
index c465512c8d36613d3a8827193b4e0b1a138e8027..f4d49d79f22cae6948e203e2ae94c509e192f6e7 100644 (file)
--- a/ini.cpp
+++ b/ini.cpp
@@ -357,6 +357,24 @@ bool ini_getval(struct ini_data *ini, const TCHAR *section, const TCHAR *key, in
        return ini_getval_multi(ini, section, key, v, NULL);
 }
 
+bool ini_getbool(struct ini_data *ini, const TCHAR *section, const TCHAR *key, bool *v)
+{
+       TCHAR *s = NULL;
+       if (!ini_getstring(ini, section, key, &s))
+               return false;
+       if (!_tcsicmp(s, _T("true")) || !_tcsicmp(s, _T("1"))) {
+               xfree(s);
+               *v = true;
+               return true;
+       }
+       if (!_tcsicmp(s, _T("false")) || !_tcsicmp(s, _T("0"))) {
+               xfree(s);
+               *v = false;
+               return true;
+       }
+       return false;
+}
+
 bool ini_getdata_multi(struct ini_data *ini, const TCHAR *section, const TCHAR *key, uae_u8 **out, int *size, struct ini_context *ctx)
 {
        TCHAR *out2 = NULL;