Rozdiely pre cpdf/parse.c medzi verziami 1.1 a 1.2
verzia 1.1, 2002/09/12 18:59:18 |
verzia 1.2, 2002/09/12 19:55:43 |
|
|
*/ |
*/ |
int strlenc(char *buffer, char c, char e) |
int strlenc(char *buffer, char c, char e) |
{ |
{ |
int i = 0; |
int i = 0; |
while (*buffer != e) |
while (*buffer != e) { |
if (*buffer == c) |
if (*buffer == c) |
i++; |
i++; |
return i; |
buffer++; |
|
} |
|
return i; |
} |
} |
|
|
/* interpreting special characters in name string */ |
/* interpreting special characters in name string */ |
char *name(char *buffer) |
char *name(char *buffer) |
{ |
{ |
register char *ret; |
register char *ret; |
char num[2]; |
char num[2]; |
if (*ret != '/') |
if (*ret != '/') |
return NULL; |
return NULL; |
ret = (char *) malloc(255); |
ret = (char *) malloc(255); |
while (*ret != ' ') { |
while (*ret != ' ') { |
if (*ret == '#') { |
if (*ret == '#') { |
num[0] = *(ret + 1); |
num[0] = *(ret + 1); |
num[1] = *(ret + 2); |
num[1] = *(ret + 2); |
ret += 2; |
ret += 2; |
|
} |
|
ret++; |
} |
} |
ret++; |
return buffer; |
} |
|
return buffer; |
|
} |
} |
|
|
/* parse arrays */ |
/* parse arrays */ |
char **array(char *buffer) |
char **array(char *buffer) |
{ |
{ |
register char **ret; |
register char **ret; |
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++; |
buffer++; |
break; |
break; |
case ']': |
case ']': |
end--; |
end--; |
break; |
break; |
case ' ': |
case ' ': |
if(*(buffer + 1) == ']') |
if (*(buffer + 1) == ']') |
break; |
break; |
ret[index] = buffer - a; |
ret[index] = buffer - a; |
*buffer = '\0'; |
*buffer = '\0'; |
a = 0; |
a = 0; |
index++; |
index++; |
break; |
break; |
default: |
default: |
a++; |
a++; |
|
} |
|
buffer++; |
} |
} |
buffer++; |
return ret; |
} |
|
return ret; |
|
} |
} |
Platon Group <platon@platon.sk> http://platon.sk/
|
|