summaryrefslogtreecommitdiffstats
path: root/windows.c
diff options
context:
space:
mode:
authorGravatar Lubomir I. Ivanov <neolit123@gmail.com>2013-03-01 11:32:52 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2013-03-01 08:01:31 -0800
commitc3b3ab9af72bda7144bbbee3d00c485838e9ceba (patch)
treed2c3d280a70dce8c7d11c5de2ba3e4a5e00ec2ff /windows.c
parentb2ba7917ab720c98c9accb87f4c40a7319b12c09 (diff)
downloadsubsurface-c3b3ab9af72bda7144bbbee3d00c485838e9ceba.tar.gz
windows.c: use ANSI for subsurface_unset_conf()
We may not write config variables with UTF-8 characters so the wchar_t conversation in subsurface_unset_conf() is not needed. This patch also attempts to improve subsurface_get_conf_bool() and subsurface_get_conf_int() or better consitentcy with the other OS files. For both functions return -1 if config key is not found. Previouosly there was a check for that in function get_from_registry(). Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'windows.c')
-rw-r--r--windows.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/windows.c b/windows.c
index de1c905ea..2eed74143 100644
--- a/windows.c
+++ b/windows.c
@@ -22,12 +22,7 @@ void subsurface_open_conf(void)
void subsurface_unset_conf(char *name)
{
- wchar_t *wname;
-
- wname = (wchar_t *)g_utf8_to_utf16(name, -1, NULL, NULL, NULL);
- if (!wname)
- return;
- RegDeleteKey(hkey, (LPCTSTR)wname);
+ RegDeleteKey(hkey, (LPCTSTR)name);
}
void subsurface_set_conf(char *name, const char *value)
@@ -108,8 +103,10 @@ const void *subsurface_get_conf(char *name)
int subsurface_get_conf_int(char *name)
{
DWORD value = -1, len = 4;
- RegQueryValueEx(hkey, (LPCTSTR)TEXT(name), NULL, NULL,
+ LONG ret = RegQueryValueEx(hkey, (LPCTSTR)TEXT(name), NULL, NULL,
(LPBYTE)&value, (LPDWORD)&len);
+ if (ret != ERROR_SUCCESS)
+ return -1;
return value;
}
@@ -117,7 +114,7 @@ int subsurface_get_conf_bool(char *name)
{
int ret = subsurface_get_conf_int(name);
if (ret == -1)
- return 0;
+ return ret;
return ret != 0;
}