[PATCH] windows.c: use ANSI for subsurface_unset_conf()

Lubomir I. Ivanov neolit123 at gmail.com
Fri Mar 1 01:32:52 PST 2013


From: "Lubomir I. Ivanov" <neolit123 at gmail.com>

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_info() 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 at gmail.com>
---
 windows.c | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/windows.c b/windows.c
index de1c905..2eed741 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;
 }

--
1.7.11.msysgit.0



More information about the subsurface mailing list