Rozdiely pre cpdf/parse.c medzi verziami 1.2 a 1.3
| verzia 1.2, 2002/09/12 19:55:43 |
verzia 1.3, 2002/09/13 20:39:36 |
|
|
| */ |
*/ |
| int strlenc(char *buffer, char c, char e) |
int strlenc(char *buffer, char c, char e) |
| { |
{ |
| int i = 0; |
register int i = 0; |
| while (*buffer != e) { |
register char *p = buffer; |
| if (*buffer == c) |
while (*p && *p != e) { |
| |
if (*p == c) |
| i++; |
i++; |
| buffer++; |
p++; |
| } |
} |
| return i; |
return i; |
| } |
} |
| Riadok 18 int strlenc(char *buffer, char c, char e |
|
| Riadok 19 int strlenc(char *buffer, char c, char e |
|
| char *name(char *buffer) |
char *name(char *buffer) |
| { |
{ |
| register char *ret; |
register char *ret; |
| char num[2]; |
char num[4] = "0x"; |
| if (*ret != '/') |
if (*ret != '/') |
| return NULL; |
return NULL; |
| ret = (char *) malloc(255); |
ret = (char *) malloc(255); |
| while (*ret != ' ') { |
while (*buffer != ' ') { |
| if (*ret == '#') { |
if (*buffer == '#') { |
| num[0] = *(ret + 1); |
num[2] = *(buffer + 1); |
| num[1] = *(ret + 2); |
num[3] = *(buffer + 2); |
| ret += 2; |
*ret = (char) strtoul(&num,NULL,16); |
| |
buffer += 2; |
| } |
} |
| |
*ret = *buffer; |
| ret++; |
ret++; |
| |
buffer++; |
| } |
} |
| return buffer; |
return ret; |
| } |
} |
| |
|
| /* parse arrays */ |
/* parse arrays */ |
| Riadok 40 char **array(char *buffer) |
|
| Riadok 44 char **array(char *buffer) |
|
| register int end, a, index; |
register int end, a, index; |
| if (*buffer != '[') |
if (*buffer != '[') |
| return NULL; |
return NULL; |
| ret = (char **) malloc(strlenc(buffer, ' ', ']') * sizeof(char)); |
ret = (char **) malloc(strlenc(buffer,' ',']') * sizeof(char)); |
| end = a = index = 0; |
end = a = index = 0; |
| while (end > 0) { |
while (end > 0) { |
| switch (*buffer) { |
switch (*buffer) { |
| case '[': |
case '[': |
| end++; |
end++; |
| buffer++; |
if(*(buffer + 1) == ' ') |
| |
buffer++; |
| break; |
break; |
| case ']': |
case ']': |
| end--; |
end--; |
Platon Group <platon@platon.sk> http://platon.sk/
|
|