Current CVS has a minor bug where ARGB strings that use the 32nd bit are
lost. For example
"#ffffffff" will parse into a = 0x7F, r,g,b = 0xFF.
Attached is a simple fix that replaces the strtol with a strtoll, fixing
the glitch.
Dylan.
Index: ecore_config.c
===================================================================
RCS file:
/cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_config/ecore_config.c,v
retrieving revision 1.59
diff -u -p -r1.59 ecore_config.c
--- ecore_config.c 2 Mar 2005 07:06:34 -0000 1.59
+++ ecore_config.c 23 Apr 2005 09:04:27 -0000
@@ -470,6 +470,7 @@ ecore_config_typed_val(Ecore_Config_Prop
{
char *l;
long v;
+ long long lv;
int *i;
float *f;
@@ -503,7 +504,7 @@ ecore_config_typed_val(Ecore_Config_Prop
{
if (((char *)val)[0] == '#')
{
- if ((v = strtol(&((char *)val)[1], &l, 16)) < 0)
+ if (((lv = strtoll(&((char *)val)[1], &l, 16))>> 32) != 0)
{
v = 0;
E(0,
@@ -525,7 +526,7 @@ ecore_config_typed_val(Ecore_Config_Prop
e->key, (char *)val);
else
{
- e->val = v;
+ e->val = (long)lv;
e->type = PT_RGB;
}
}