Using RegQueryValueEx instead of RegGetValue

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>
This commit is contained in:
Lubomir I. Ivanov 2011-10-31 03:12:51 +02:00 committed by Dirk Hohndel
parent 904f1ad4c5
commit 43601f6546

View file

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