Ejemplo n.º 1
0
Archivo: xml.c Proyecto: prophile/dim3
bool xml_get_attribute_bit_array(int n,char *name,unsigned char *value,int count)
{
	int					k;
    char				str[5120];
	
	bzero(value,count);
    
	if (!xml_get_attribute_raw(n,name,str,5120)) return(0);
	
	count=strlen(str);
	
	for (k=0;k<count;k+=2) {
		value[k>>1]=(unsigned char)((xml_hex_character_to_int(str[k])*16)+xml_hex_character_to_int(str[k+1]));
	}
	
	return(TRUE);
}
Ejemplo n.º 2
0
Archivo: base_xml.c Proyecto: rzel/dim3
void xml_parse_attribute(char *value)
{
    int		k,len;
    char	*str,*fstr;

    // parse out &#x00;

    str=value;

    while (TRUE) {
        str=strstr(str,"&#x");
        if (str==NULL) break;

        fstr=strchr((str+3),';');
        if (fstr==NULL) {
            str+=3;
            continue;
        }

        len=(int)(fstr-str)-3;
        if (len>0) {
            k=0;
            if (len>1) {
                k=(xml_hex_character_to_int(str[3])*16)+xml_hex_character_to_int(str[4]);
            }
            else {
                k=xml_hex_character_to_int(str[3]);
            }

            *str=(char)k;
            len=(int)strlen(fstr+1)+1;
            memmove((str+1),(fstr+1),len);
            str++;
        }
        else {
            str=fstr+1;
        }
    }
}
Ejemplo n.º 3
0
Archivo: xml.c Proyecto: prophile/dim3
bool xml_get_attribute_color(int n,char *name,d3col *col)
{
	int			k;
	char		str[8];

	if (!xml_get_attribute_raw(n,name,str,8)) return(FALSE);
	
	k=(xml_hex_character_to_int(str[0])*16)+xml_hex_character_to_int(str[1]);
	col->r=((float)k)/(float)0xFF;

	k=(xml_hex_character_to_int(str[2])*16)+xml_hex_character_to_int(str[3]);
	col->g=((float)k)/(float)0xFF;

	k=(xml_hex_character_to_int(str[4])*16)+xml_hex_character_to_int(str[5]);
	col->b=((float)k)/(float)0xFF;
	
	return(TRUE);
}