#include "sl.h"␊ |
#include "xml.h"␊ |
␊ |
string_ref* ref_strings = NULL;␊ |
string_ref *ref_strings = NULL;␊ |
␊ |
/// TODO: remove below␊ |
static char* buffer_start = NULL;␊ |
// TODO: redo the next two functions␊ |
void SaveRefString(char* string, int id)␊ |
{␊ |
|
pos = 0;␊ |
␉char *configBuffer;␊ |
␉␊ |
␉␊ |
␉␊ |
configBuffer = malloc(strlen(buffer)+1);␊ |
strcpy(configBuffer, buffer);␊ |
␉␊ |
␉buffer_start = configBuffer;␊ |
␊ |
while (1)␊ |
{␊ |
length = XMLParseNextTag(configBuffer + pos, &tag);␊ |
|
␉␉␉tmpTag->string = str;␊ |
␉␉␉tmpTag->tag = 0;␊ |
␉␉␉tmpTag->tagNext = 0;␊ |
␉␉␉tmpTag->offset = buffer_start ? buffer - buffer_start + pos : 0;␊ |
␉␉␉*tag = tmpTag;␊ |
␉␉␉␊ |
␉␉␉length = 0;␊ |
|
␉␉␉tmpTag->string = (char*) integer;␊ |
␉␉␉tmpTag->tag = 0;␊ |
␉␉␉tmpTag->tagNext = 0;␊ |
␉␉␉tmpTag->offset = buffer_start ? buffer - buffer_start + pos : 0;␊ |
␊ |
␉␉␉*tag = tmpTag;␊ |
␉␉␉␊ |
␉␉␉length = 0;␊ |
|
␊ |
tmpTag->type = type;␊ |
tmpTag->string = 0;␊ |
␉tmpTag->offset = buffer_start ? buffer - buffer_start : 0;␊ |
tmpTag->tag = tagList;␊ |
tmpTag->tagNext = 0;␊ |
␊ |
|
tmpTag->type = kTagTypeKey;␊ |
tmpTag->string = string;␊ |
tmpTag->tag = subTag;␊ |
␉tmpTag->offset = buffer_start ? buffer - buffer_start: 0;␊ |
tmpTag->tagNext = 0;␊ |
␊ |
*tag = tmpTag;␊ |
|
tmpTag->type = kTagTypeString;␊ |
tmpTag->string = string;␊ |
tmpTag->tag = 0;␊ |
␉tmpTag->offset = buffer_start ? buffer - buffer_start: 0;␊ |
tmpTag->tagNext = 0;␊ |
␊ |
*tag = tmpTag;␊ |
|
␉␉tmpTag->type = kTagTypeInteger;␊ |
␉␉tmpTag->string = 0;␊ |
␉␉tmpTag->tag = 0;␊ |
␉␉tmpTag->offset = 0;␊ |
␉␉tmpTag->tagNext = 0;␊ |
␉␉␊ |
␉␉*tag = tmpTag;␊ |
|
tmpTag->type = kTagTypeInteger;␊ |
␉tmpTag->string = (char *)integer;␊ |
␉tmpTag->tag = 0;␊ |
␉tmpTag->offset = buffer_start ? buffer - buffer_start: 0;␊ |
tmpTag->tagNext = 0;␊ |
␊ |
*tag = tmpTag;␊ |
|
tmpTag->type = kTagTypeData;␊ |
tmpTag->string = string;␊ |
tmpTag->tag = 0;␊ |
␉tmpTag->offset = buffer_start ? buffer - buffer_start: 0;␊ |
tmpTag->tagNext = 0;␊ |
␊ |
*tag = tmpTag;␊ |
|
tmpTag->type = kTagTypeDate;␊ |
tmpTag->string = 0;␊ |
tmpTag->tag = 0;␊ |
␉tmpTag->offset = buffer_start ? buffer - buffer_start: 0;␊ |
tmpTag->tagNext = 0;␊ |
␊ |
*tag = tmpTag;␊ |
|
tmpTag->type = type;␊ |
tmpTag->string = 0;␊ |
tmpTag->tag = 0;␊ |
␉tmpTag->offset = buffer_start ? buffer - buffer_start: 0;␊ |
tmpTag->tagNext = 0;␊ |
␊ |
*tag = tmpTag;␊ |
|
tag->type = kTagTypeNone;␊ |
tag->string = 0;␊ |
tag->tag = 0;␊ |
␉tag->offset = 0;␊ |
tag->tagNext = gTagsFree;␊ |
gTagsFree = tag;␊ |
#else␊ |
|
␉return NULL;␊ |
}␊ |
␊ |
long XMLCastStringOffset(TagPtr dict)␊ |
{␊ |
␉if(dict &&␊ |
␉ ((dict->type == kTagTypeString) ||␊ |
␉ (dict->type == kTagTypeKey)))␊ |
␉{␊ |
␉␉return dict->offset;␊ |
␉}␊ |
␉else ␊ |
␉{␊ |
␉␉return -1;␊ |
␉}␊ |
}␊ |
␊ |
␊ |
bool XMLCastBoolean(TagPtr dict)␊ |
{␊ |
␉if(!dict) return false;␊ |