Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 9088 → Rev 9089

/programs/cmm/browser/TWB/parse_tag.h
1,4 → 1,3
 
struct _tag
{
char name[32];
10,7 → 9,6
dword number;
bool is();
bool parse();
void debug_tag();
dword get_next_param();
dword get_value_of();
signed get_number_of();
18,12 → 16,8
 
bool _tag::is(dword _text)
{
if ( !strcmp(#name, _text) ) {
return true;
} else {
return false;
return streq(#name, _text);
}
}
 
bool _tag::parse(dword _bufpos, bufend)
{
63,38 → 57,22
closepos = strchr(bufpos, '>');
whitepos = strchrw(bufpos, bufend-bufpos);
 
if (debug_mode) {
if (!closepos) debugln("null closepos");
if (!whitepos) debugln("null whitepos");
}
 
if (!whitepos) || (whitepos > closepos) {
//no param
strncpy(#name, bufpos, math.min(closepos - bufpos, sizeof(tag.name)));
debug_tag();
bufpos = closepos;
} else {
//we have param
while (chrlnum(whitepos, '\"', closepos - whitepos)%2) { //alt="Next>>"
/*
openpos = strchr(closepos+1, '<');
closepos = strchr(closepos+1, '>');
if (openpos) && (openpos < closepos) {
closepos = openpos - 1;
break;
}
*/
if (!openpos = strchr(closepos+1, '<')) break;
if (openpos < strchr(closepos+1, '>')) break;
if (!closepos = EAX) {closepos = bufend;break;}
}
strncpy(#name, bufpos, math.min(whitepos - bufpos, sizeof(tag.name)));
debug_tag();
bufpos = closepos;
 
params = malloc(closepos - whitepos + 1);
strncpy(params, whitepos, closepos - whitepos);
if (debug_mode) { debug("params: "); debugln(params+1); }
paramsend = params + closepos - whitepos;
while (paramsend = get_next_param(params, paramsend-1));
free(params);
120,16 → 98,6
return retok;
}
 
void _tag::debug_tag()
{
if (debug_mode) {
debugch('<');
if (!opened) debugch('/');
debug(#name);
debugln(">");
}
}
 
dword _tag::get_next_param(dword ps, pe)
{
// "ps" - param start
189,12 → 157,6
attributes.add(attr);
values.add(val);
 
if (debug_mode) {
debug("atr: "); debugln(attr);
debug("val: "); debugln(val);
debugch('\n');
}
 
if (pe==ps) return NULL;
return pe;
}
213,7 → 175,7
signed _tag::get_number_of(dword _attr_name)
{
if (get_value_of(_attr_name)) {
number = atoi(tag.value);
number = atoi(value);
} else {
number = 0;
}