9bool INIGetRGB(
char *Key,
byte *Red,
byte *Green,
byte *Blue, dword DefaultValue)
13 char *i = NULL, *j = NULL, *k;
24 strncpy(TempKey, Key,
sizeof(TempKey) - 2);
25 TempKey[
sizeof(TempKey) - 2] =
'\0';
31 if(!i || !j || (j < i + l)) x = DefaultValue;
38 if((k =
ParseLine(k, &plen,
',')) && (plen > 0 && k + plen < j))
40 x |= (strtoul(k, NULL, (plen > 2 && tolower(*(k + 1)) ==
'x' ? 16 : 10)) & 0x1f) << 10;
44 if((k =
ParseLine(k, &plen,
',')) && (plen > 0 && k + plen < j))
46 x |= (strtoul(k, NULL, (plen > 2 && tolower(*(k + 1)) ==
'x' ? 16 : 10)) & 0x1f) << 5;
51 x |= strtoul(k, NULL, (j - k > 2 && tolower(*(k + 1)) ==
'x' ? 16 : 10)) & 0x1f;
53 else x = DefaultValue;
55 else x = DefaultValue;
58 if(Red) *Red =
R1555(x);
59 if(Green) *Green =
G1555(x);
60 if(Blue) *Blue =
B1555(x);
void INIFindStartEnd(char *, char **, char **, dword)
bool INIGetRGB(char *Key, byte *Red, byte *Green, byte *Blue, dword DefaultValue)
char * ParseLine(const char *zeile, size_t *n, char delim)