| verzia 1.12, 2002/10/11 22:56:04 |
verzia 1.13, 2002/10/14 19:55:12 |
| Riadok 85 char *name(char *buffer) |
|
| Riadok 85 char *name(char *buffer) |
|
| return end; |
return end; |
| } |
} |
| |
|
| /* parse arrays */ |
char **array(char *buffer) |
| |
{ |
| |
char **ret, *last; |
| |
int index = 1, end = 1; |
| |
ret = (char **) xmalloc(sizeof(char **)); |
| |
*ret = (char *) xmalloc(2 * sizeof(char)); |
| |
strncpy(*ret, "[\0", 2 * sizeof(char)); |
| |
buffer++; |
| |
if (*buffer == ' ') |
| |
buffer++; |
| |
last = buffer; |
| |
while (1) { |
| |
if (*buffer == '[') |
| |
end++; |
| |
if (*buffer == ']') { |
| |
end--; |
| |
if (!end) |
| |
break; |
| |
} |
| |
while (*buffer != ' ') |
| |
buffer++; |
| |
ret = (char **) resize(ret, (index + 1) * sizeof(char **)); |
| |
ret[index] = (char *) xmalloc(buffer - last); |
| |
strncpy(ret[index], last, buffer - last); |
| |
ret[index][buffer - last] = '\0'; |
| |
last = ++buffer; |
| |
} |
| |
return ret; |
| |
} |
| |
|
| |
/* parse arrays |
| char **array(char *buffer) |
char **array(char *buffer) |
| { |
{ |
| char **ret; |
char **ret; |
| Riadok 93 char **array(char *buffer) |
|
| Riadok 123 char **array(char *buffer) |
|
| if (*buffer != '[') |
if (*buffer != '[') |
| return NULL; |
return NULL; |
| ret = (char **) xmalloc(1); |
ret = (char **) xmalloc(1); |
| ret[0] = (char *) xmalloc(2 * sizeof(char)); |
ret[0] = (char *) xmalloc(2); |
| *ret[0] = '['; |
strncpy(ret[0],"[\0",2); |
| ret[0][1] = '\0'; |
|
| if(*(buffer + 1) == ' ') |
if(*(buffer + 1) == ' ') |
| buffer += 2; |
buffer += 2; |
| else |
else |
| Riadok 106 char **array(char *buffer) |
|
| Riadok 135 char **array(char *buffer) |
|
| end--; |
end--; |
| if (*buffer == '[') |
if (*buffer == '[') |
| end++; |
end++; |
| ret = (char **) realloc(ret,index + 1); |
ret = (char **) resize(et,index + 1); |
| len = strlento(buffer, ' '); |
len = strlento(buffer, ' '); |
| ret[index] = (char *) xcalloc(len,1); |
ret[index] = (char *) xmalloc(len + 1); |
| strncpy(ret[index], buffer, len); |
strncpy(ret[index], buffer, len); |
| ret[index][len] = '\0'; |
ret[index][len] = '\0'; |
| buffer += len + 1; |
buffer += len + 1; |
| index++; |
index++; |
| } while (end > 0); |
} while (end > 0); |
| return ret; |
return ret; |
| } |
}*/ |
| |
|
| #define BUFLEN 255 |
#define BUFLEN 255 |
| void read_obj(long offset) |
void read_obj(long offset) |
| Riadok 130 void read_obj(long offset) |
|
| Riadok 159 void read_obj(long offset) |
|
| fget(buffer, BUFLEN, fp); |
fget(buffer, BUFLEN, fp); |
| while (!strstr(buffer, "endobj")) { |
while (!strstr(buffer, "endobj")) { |
| size += strlen(buffer) + 1; |
size += strlen(buffer) + 1; |
| obj->unparsed = resize(obj->unparsed, size); |
obj->unparsed = realloc(obj->unparsed, size); |
| strcat(obj->unparsed, buffer); |
strcat(obj->unparsed, buffer); |
| fget(buffer, BUFLEN, fp); |
fget(buffer, BUFLEN, fp); |
| } |
} |
| Riadok 224 void probe_ptree(int num) |
|
| Riadok 253 void probe_ptree(int num) |
|
| return; |
return; |
| } |
} |
| kids = array(p + 6); |
kids = array(p + 6); |
| for (kids++;**kids != ']';kids += 2) |
for (kids++; **kids != ']'; kids += 2) |
| probe_ptree(atoi(*kids)); |
probe_ptree(atoi(*kids)); |
| return; |
return; |
| } |
} |
| |
|
| /* find objects and add it to object structure */ |
/* find objects and add it to object structure */ |
| Riadok 241 void xref(void) |
|
| Riadok 270 void xref(void) |
|
| /* error */ |
/* error */ |
| return; |
return; |
| } |
} |
| object = (struct object **) xmalloc(sizeof(struct object)); |
object = (struct object **) xmalloc(sizeof(struct object *)); |
| obj_count = 1; |
obj_count = 1; |
| { |
{ |
| int entry[2]; |
int entry[2]; |
| Riadok 305 int parse_catalog(void) |
|
| Riadok 334 int parse_catalog(void) |
|
| |
|
| void parse_pdf(void) |
void parse_pdf(void) |
| { |
{ |
| int ret,count; |
int ret, count; |
| char *p; |
char *p; |
| xref(); |
xref(); |
| ret = parse_catalog(); |
ret = parse_catalog(); |
| p = strstr(object[ret]->unparsed,"/Count "); |
p = strstr(object[ret]->unparsed, "/Count "); |
| sscanf(p,"/Count %d \n",&count); |
sscanf(p, "/Count %d \n", &count); |
| page_tree = (int *) malloc(count); |
page_tree = (int *) malloc(count); |
| current_page = 0; |
current_page = 0; |
| sleep(60); |
probe_ptree(ret); |
| /* probe_ptree(ret); */ |
|
| return; |
return; |
| } |
} |