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; |