From 871c1fe88e12c056159d1dda15540653d12980f0 Mon Sep 17 00:00:00 2001 From: Christoph von Wittich Date: Thu, 31 Jan 2008 10:05:02 +0000 Subject: [PATCH] fix storing and loading registry settings svn path=/trunk/; revision=32063 --- .../screensavers/matrix/settings.c | 26 +++++++------------ 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/rosapps/applications/screensavers/matrix/settings.c b/rosapps/applications/screensavers/matrix/settings.c index 0fb87c87d76..c1ebcc6bebc 100644 --- a/rosapps/applications/screensavers/matrix/settings.c +++ b/rosapps/applications/screensavers/matrix/settings.c @@ -35,7 +35,7 @@ void LoadSettings() if(hugechar == 0) return; - hugechar[0] = _T('\0'); + ZeroMemory(hugechar, 4096); RegCreateKeyEx(HKEY_CURRENT_USER, _T("Software\\Catch22\\Matrix Screen Saver"), 0, _T(""), 0, KEY_READ, NULL, &hkey, NULL); @@ -71,21 +71,15 @@ void LoadSettings() if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("Randomize"), 0, 0, (BYTE *)&value, &len)) g_fRandomizeMessages = (value == 0 ? FALSE : TRUE); - len = 4096; - if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("FontName"), 0, 0, (BYTE *)hugechar, &len)) - { - if(len > 0) - lstrcpy(g_szFontName, hugechar); - else - lstrcpy(g_szFontName, _T("Arial")); - - } + len = 512; + if(RegQueryValueEx(hkey, _T("FontName"), 0, 0, (BYTE *)g_szFontName, &len) != ERROR_SUCCESS) + lstrcpy(g_szFontName, _T("Arial")); len = 4096; if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("Messages"), 0, 0 , (BYTE *)hugechar, &len)) { - while(len > 0 && *hptr && isascii(*hptr)) + while(len > 0 && *hptr && _istascii(*hptr)) { if(lstrlen(hptr) > 0) { @@ -109,7 +103,7 @@ void LoadSettings() void SaveSettings() { HKEY hkey; - TCHAR *hugechar = malloc(4096); + TCHAR *hugechar = malloc(4096 * sizeof(TCHAR)); TCHAR *msgptr = hugechar; int totallen = 0; int i,len; @@ -118,7 +112,7 @@ void SaveSettings() if(hugechar == 0) return; - hugechar[0] = _T('\0'); + ZeroMemory(hugechar, 4096 * sizeof(TCHAR)); msgptr = hugechar; RegCreateKeyEx(HKEY_CURRENT_USER, _T("Software\\Catch22\\Matrix Screen Saver"), 0, @@ -142,7 +136,7 @@ void SaveSettings() value = g_fFontBold; RegSetValueEx(hkey, _T("FontBold"), 0, REG_DWORD, (BYTE *)&value, sizeof value); - RegSetValueEx(hkey, _T("FontName"), 0, REG_SZ, (BYTE *)g_szFontName, lstrlen(g_szFontName)); + RegSetValueEx(hkey, _T("FontName"), 0, REG_SZ, (BYTE *)g_szFontName, lstrlen(g_szFontName) * sizeof(TCHAR)); for(i = 0; i < g_nNumMessages; i++) { @@ -156,10 +150,10 @@ void SaveSettings() } } - *msgptr = _T('\0'); + //*msgptr = _T('\0'); totallen++; - RegSetValueEx(hkey, _T("Messages"), 0, REG_MULTI_SZ, (BYTE *)hugechar, totallen); + RegSetValueEx(hkey, _T("Messages"), 0, REG_MULTI_SZ, (BYTE *)hugechar, totallen * sizeof(TCHAR)); RegCloseKey(hkey); free(hugechar);