// ParseTagData␊ |
static long ParseTagData( char *buffer, TagPtr *tag)␊ |
{␊ |
␉int␉␉actuallen = 0;␊ |
␉long␉␉length = 0;␊ |
␉//int␉␉actuallen = 0;␊ |
␉int ␉len = 0;␊ |
␉long ␉length = 0;␊ |
␉TagPtr␉␉tmpTag;␊ |
␉char␉␉*string;␊ |
␉char␉␉*tmpString;␊ |
␊ |
␉length = FixDataMatchingTag(buffer, kXMLTagData);␊ |
␉if (length == -1)␊ |
|
␉{␊ |
␉␉return -1;␊ |
␉}␊ |
␊ |
␉//printf("ParseTagData unimplimented\n");␊ |
␉//printf("Data: %s\n", buffer);␊ |
␉//␉getchar();␊ |
␊ |
␉string = BASE64Decode(buffer, strlen(buffer), &actuallen);␊ |
␉tmpString = NewSymbol(buffer);␊ |
␉tmpTag->type = kTagTypeData;␊ |
␉tmpTag->string = string;␊ |
␉tmpTag->string = tmpString;␊ |
␉tmpTag->data = (UInt8 *)BASE64Decode(buffer, strlen(buffer), &len);␊ |
␉tmpTag->dataLen = len;␊ |
␊ |
␉tmpTag->tag = NULL;␊ |
␉tmpTag->offset = actuallen; // buffer_start ? buffer - buffer_start: 0;␊ |
␊ |
␉tmpTag->offset = /* actuallen; */ buffer_start ? buffer - buffer_start: 0;␊ |
␉tmpTag->tagNext = NULL;␊ |
␊ |
␉*tag = tmpTag;␊ |
|
␉␉{␊ |
␉␉␉tag[cnt].type = kTagTypeNone;␊ |
␉␉␉tag[cnt].string = 0;␊ |
␉␉␉tag[cnt].data = 0;␊ |
␉␉␉tag[cnt].dataLen = 0;␊ |
␉␉␉tag[cnt].tag = 0;␊ |
␉␉␉tag[cnt].tagNext = tag + cnt + 1;␊ |
␉␉}␊ |
|
␉// Clear and free the tag.␊ |
␉tag->type = kTagTypeNone;␊ |
␉tag->string = NULL;␊ |
␉tag->data = NULL;␊ |
␉tag->dataLen = 0;␊ |
␉tag->tag = NULL;␊ |
␉tag->offset = 0;␊ |
␉tag->tagNext = gTagsFree;␊ |
|
␉␉if (symbol == NULL)␊ |
␉␉{␊ |
␉␉␉stop("NULL symbol!");␊ |
␉␉␉return NULL;␊ |
␉␉}␊ |
␊ |
␉␉// Set the symbol's data.␊ |