mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-06 14:44:39 +00:00
winecfg: Support color profiles larger than MAX_PATH chars.
Signed-off-by: Stefan Dösinger <stefan@codeweavers.com>
This commit is contained in:
parent
905dbb8f8b
commit
021eefdee0
|
@ -22,6 +22,7 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -554,15 +555,25 @@ static void set_color_from_theme(const WCHAR *keyName, COLORREF color)
|
||||||
|
|
||||||
static void do_parse_theme(WCHAR *file)
|
static void do_parse_theme(WCHAR *file)
|
||||||
{
|
{
|
||||||
WCHAR keyName[MAX_PATH], keyNameValue[MAX_PATH];
|
WCHAR *keyName, keyNameValue[MAX_PATH];
|
||||||
|
DWORD len, allocLen = 512;
|
||||||
WCHAR *keyNamePtr = NULL;
|
WCHAR *keyNamePtr = NULL;
|
||||||
int red = 0, green = 0, blue = 0;
|
int red = 0, green = 0, blue = 0;
|
||||||
COLORREF color;
|
COLORREF color;
|
||||||
|
|
||||||
WINE_TRACE("%s\n", wine_dbgstr_w(file));
|
WINE_TRACE("%s\n", wine_dbgstr_w(file));
|
||||||
|
keyName = malloc(sizeof(*keyName) * allocLen);
|
||||||
|
for (;;)
|
||||||
|
{
|
||||||
|
assert(keyName);
|
||||||
|
len = GetPrivateProfileStringW(L"Control Panel\\Colors", NULL, NULL, keyName,
|
||||||
|
allocLen, file);
|
||||||
|
if (len < allocLen - 2)
|
||||||
|
break;
|
||||||
|
|
||||||
GetPrivateProfileStringW(L"Control Panel\\Colors", NULL, NULL, keyName,
|
allocLen *= 2;
|
||||||
MAX_PATH, file);
|
keyName = realloc(keyName, sizeof(*keyName) * allocLen);
|
||||||
|
}
|
||||||
|
|
||||||
keyNamePtr = keyName;
|
keyNamePtr = keyName;
|
||||||
while (*keyNamePtr!=0) {
|
while (*keyNamePtr!=0) {
|
||||||
|
@ -580,6 +591,7 @@ static void do_parse_theme(WCHAR *file)
|
||||||
keyNamePtr+=lstrlenW(keyNamePtr);
|
keyNamePtr+=lstrlenW(keyNamePtr);
|
||||||
keyNamePtr++;
|
keyNamePtr++;
|
||||||
}
|
}
|
||||||
|
free(keyName);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void on_theme_install(HWND dialog)
|
static void on_theme_install(HWND dialog)
|
||||||
|
|
Loading…
Reference in a new issue