Subversion Repositories Kolibri OS

Rev

Rev 6986 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6986 Rev 7282
Line -... Line 1...
-
 
1
bool GetNextParam() {
-
 
2
	if (!old_tag_parser_mode)
-
 
3
		return GetNextParam_NEW();
-
 
4
	else 
-
 
5
		return GetNextParam_OLD();
-
 
6
}
-
 
7
 
-
 
8
bool GetNextParam_NEW()
-
 
9
{
-
 
10
	byte  quotes = NULL;
-
 
11
	int   i;
-
 
12
	
-
 
13
	if (!tagparam) return false;
-
 
14
 
-
 
15
	if (debug_mode) {
-
 
16
		debug("tagparam: "); debugln(#tagparam);
-
 
17
	}
-
 
18
	
-
 
19
	i = strlen(#tagparam) - 1;
-
 
20
 
-
 
21
	if (tagparam[i] == '/') i--;
-
 
22
 
-
 
23
	while (i>0) && (__isWhite(tagparam[i])) i--;
-
 
24
 
-
 
25
	if (tagparam[i] == '"') || (tagparam[i] == '\'')
-
 
26
	{
-
 
27
		//find VAL end
-
 
28
		quotes = tagparam[i];
-
 
29
		tagparam[i] = '\0'; i--;
-
 
30
 
-
 
31
		//find VAL start and copy
-
 
32
		i = strrchr(#tagparam, quotes);
-
 
33
		strlcpy(#val, #tagparam + i, sizeof(val));
-
 
34
		tagparam[i] = '\0'; i--;
-
 
35
 
-
 
36
		//find ATTR end
-
 
37
		while (i > 0) && (tagparam[i] != '=') i--;
-
 
38
		tagparam[i+1] = '\0';
-
 
39
	}
-
 
40
	else
-
 
41
	{
-
 
42
		//find VAL end
-
 
43
		//already have
-
 
44
 
-
 
45
		//find VAL start and copy
-
 
46
		while (i > 0) && (tagparam[i] != '=') i--;
-
 
47
		i++;
-
 
48
		strlcpy(#val, #tagparam + i, sizeof(val));
-
 
49
		tagparam[i] = '\0';
-
 
50
 
-
 
51
		//find ATTR end
-
 
52
		//already have
-
 
53
	}
-
 
54
 
-
 
55
	//find ATTR start and copy
-
 
56
	while (i>0) && (!__isWhite(tagparam[i])) i--;
-
 
57
	strlcpy(#attr, #tagparam + i + 1, sizeof(attr));
-
 
58
	tagparam[i] = '\0';
-
 
59
 
-
 
60
	strlwr(#attr);
-
 
61
 
-
 
62
	if (debug_mode) {
-
 
63
		if (quotes) {
-
 
64
			debug("quote: "); debugch(quotes); debugln(" ");
-
 
65
		}
-
 
66
		else {
-
 
67
			debugln("unquoted text");
-
 
68
		}
-
 
69
		sprintf(#param, "val: %s\nattr: %s\n\n", #val, #attr);
-
 
70
		debug(#param);		
-
 
71
	}
-
 
72
 
-
 
73
	return true;
-
 
74
}
-
 
75
 
-
 
76
 
-
 
77
 
1
unsigned int GetNextParam()
78
unsigned int GetNextParam_OLD()
2
{
79
{
3
	byte	kavichki=0;
80
	byte	kavichki=0;
4
	int		i = strlen(#tagparam) - 1;
81
	int		i = strlen(#tagparam) - 1;
Line 5... Line 82...
5
	
82
	
Line 28... Line 105...
28
	}
105
	}
29
	tagparam[i] = 0x00;
106
	tagparam[i] = 0x00;
Line 30... Line 107...
30
 
107
 
31
	FOR ( ; ((tagparam[i] <>' ') && (i > 0); i--)
108
	FOR ( ; ((tagparam[i] <>' ') && (i > 0); i--)
32
	{
109
	{
33
		IF (tagparam[i] == '=') //äåðçêàÿ çàãëóøêà
110
		IF (tagparam[i] == '=') //dirty fix (kludge)
34
			tagparam[i + 1] = 0x00;
111
			tagparam[i + 1] = 0x00;
35
	}
112
	}
36
	strlcpy(#attr, #tagparam + i + 1, sizeof(attr));
113
	strlcpy(#attr, #tagparam + i + 1, sizeof(attr));
37
	tagparam[i] = 0x00;
114
	tagparam[i] = 0x00;