]> git.tdb.fi Git - ext/subsurface.git/commitdiff
Using RegQueryValueEx instead of RegGetValue
authorLubomir I. Ivanov <neolit123@gmail.com>
Mon, 31 Oct 2011 01:12:51 +0000 (03:12 +0200)
committerDirk Hohndel <dirk@hohndel.org>
Tue, 1 Nov 2011 04:18:53 +0000 (21:18 -0700)
Provides compatibility with winxp-32bit in gtk-gui.c,
since RegGetValue is only available on the 64bit build of the OS.

Fixed whitespace issues, fixed obvious typo (this patch clearly wasn't
even compile tested)

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
gtk-gui.c

index b1bc82a735c81743205a7be997f8d650a0e84fb2..b160508383b66c8d287e1900baf23966c4f99f05 100644 (file)
--- a/gtk-gui.c
+++ b/gtk-gui.c
@@ -725,15 +725,14 @@ static void drag_cb(GtkWidget *widget, GdkDragContext *context,
 }
 
 #ifdef WIN32
-static int get_from_registry(const char *key)
+static int get_from_registry(HKEY hkey, const char *key)
 {
        DWORD value;
-       DWORD type;
        DWORD len = 4;
        LONG success;
 
-       success = RegGetValue(HKEY_CURRENT_USER, TEXT("Software\\subsurface"), TEXT(key),
-                       RRF_RT_ANY, &type, &value, &len);
+       success = RegQueryValueEx(hkey, TEXT(key), NULL, NULL,
+                               (LPBYTE) &value, &len );
        if (success != ERROR_SUCCESS)
                return FALSE; /* that's what happens the first time we start */
        return value;
@@ -782,29 +781,34 @@ void init_ui(int argc, char **argv)
                
        divelist_font = gconf_client_get_string(gconf, GCONF_NAME(divelist_font), NULL);
 #else
-       DWORD type;
        DWORD len = 4;
        LONG success;
+       HKEY hkey;
 
-       output_units.length = get_from_registry("feet");
-       output_units.pressure = get_from_registry("psi");
-       output_units.volume = get_from_registry("cuft");
-       output_units.temperature = get_from_registry("fahrenheit");
-       visible_cols.temperature = get_from_registry("temperature");
-       visible_cols.cylinder = get_from_registry("cylinder");
-       visible_cols.nitrox = get_from_registry("nitrox");
-       visible_cols.sac = get_from_registry("sac");
-       visible_cols.otu = get_from_registry("otu");
+       success = RegOpenKeyEx( HKEY_CURRENT_USER, TEXT("Software\\subsurface"), 0,
+                       KEY_QUERY_VALUE, &hkey);
+
+       output_units.length = get_from_registry(hkey, "feet");
+       output_units.pressure = get_from_registry(hkey, "psi");
+       output_units.volume = get_from_registry(hkey, "cuft");
+       output_units.temperature = get_from_registry(hkey, "fahrenheit");
+       visible_cols.temperature = get_from_registry(hkey, "temperature");
+       visible_cols.cylinder = get_from_registry(hkey, "cylinder");
+       visible_cols.nitrox = get_from_registry(hkey, "nitrox");
+       visible_cols.sac = get_from_registry(hkey, "sac");
+       visible_cols.otu = get_from_registry(hkey, "otu");
 
        divelist_font = malloc(80);
        len = 80;
-       success = RegGetValue(HKEY_CURRENT_USER, TEXT("Software\\subsurface"),
-                       TEXT("divelist_font"), RRF_RT_ANY, &type, divelist_font, &len);
+       success = RegQueryValueEx(hkey, TEXT("divelist_font"), NULL, NULL,
+                               (LPBYTE) divelist_font, &len );
        if (success != ERROR_SUCCESS) {
                /* that's what happens the first time we start - just use the default */
                free(divelist_font);
                divelist_font = NULL;
        }
+       RegCloseKey(hkey);
+
 #endif
        if (!divelist_font)
                divelist_font = DIVELIST_DEFAULT_FONT;