Platon Technologies
neprihlásený Prihlásiť Registrácia
SlovakEnglish
open source software development oslavujeme 10 rokov vývoja otvoreného softvéru! Štvrtok, 18. apríl 2024

Rozdiely pre cpdf/parse.c medzi verziami 1.5 a 1.6

verzia 1.5, 2002/09/26 17:45:15 verzia 1.6, 2002/10/03 17:13:20
Riadok 1 
Riadok 1 
 #include <stdio.h>  #include <stdio.h>
 #include <stdlib.h>  #include <stdlib.h>
 #include <string.h>  #include <string.h>
   #include <errno.h>
   #include <sys/stat.h>
   #include <sys/types.h>
   #include <unistd.h>
   
   #include "cpdf.h"
 #include "parse.h"  #include "parse.h"
 void *xmalloc(size_t size);  #include "utils.h"
 /* function compute number of locations of char c from buffer to character c  /* function compute number of locations of char c from buffer to character c
  */   */
 int strlenc(char *buffer, char c, char to)  int strlenc(char *buffer, char c, char to)
Riadok 103  char **array(char *buffer)
Riadok 109  char **array(char *buffer)
         } while (end > 0);          } while (end > 0);
         return ret;          return ret;
 }  }
   
   #define BUFLEN 255
   void read_obj(long offset)
   {
           char buffer[BUFLEN];
           int obj_num,size = 0;
           struct object *obj =
               (struct object *) xcalloc(sizeof(struct object),1);
           fseek(fp, offset, SEEK_SET);
           fget(&buffer[0], BUFLEN, fp);
           sscanf(&buffer[0], "%d ", &obj_num);
           fget(&buffer[0],BUFLEN,fp);
           while(!strstr(&buffer[0],"endobj")) {
                   size += strlen(&buffer[0]);
                   obj->unparsed = resize(obj->unparsed,size);
                   strcat(obj->unparsed,&buffer[0]);
                   fget(&buffer[0],BUFLEN,fp);
           }
           object[obj_num] = obj;
           return;
   }
   /*      obj->type = UNKNOWN;
           obj->obj = NULL;
           if(!strstr(&buffer[0],"<<")) {
                   obj->type = NOTYPE;
                   obj->obj = fill_data();
           }
           while (buffer[0] != '>' && buffer[1] != '>'
                  && obj->type == UNKNOWN) {
                   if (!strncmp(&buffer[0], "/Type", 5)) {
                           if (!strncmp(&buffer[7], "Page", 4)) {
                                   obj->type = PAGE;
                           }
                           if (!strncmp(&buffer[7], "Pages", 5)) {
                                   obj->type = PAGES;
                           }
                           if (!strncmp(&buffer[7], "Catalog", 7)) {
                                   obj->type = CATALOG;
                           }
                           if (!strncmp(&buffer[7], "Encoding", 8)) {
                                   obj->type = ENCODING;
                           }
                           if (!strncmp(&buffer[7], "XObject", 7)) {
                                   obj->type = XOBJECT;
                           }
                   }
                   if (!strncmp(&buffer[0], "/Font", 5)) {
                           obj->type = FONT;
                   }
                   if (!strncmp(&buffer[0], "stream", 7)) {
                           obj->type = CONTENT;
                   }
                   fget(&buffer[0], BUFLEN, fp);
           }*/
   
   void add_obj(char *s)
   {
           long offset, old_off;
           sscanf(s, "%ld ", &offset);
           old_off = ftell(fp);
           read_obj(offset);
           fseek(fp, old_off, SEEK_SET);
   }
   
   /* find objects */
   void xref(void)
   {
           char xref[XREFLINE];
           long offset = 0;
           int i = XREFLINE - 2;
           xref[XREFLINE - 1] = '\0';
           fstat(fp->_fileno, &fpstat);
           offset = fpstat.st_size - 8;
           fseek(fp, offset, SEEK_SET);
           while (1) {
                   xref[i] = fgetc(fp);
                   if (xref[i] == '\r' || xref[i] == '\n')
                           break;
                   i--;
                   offset--;
                   fseek(fp, offset, SEEK_SET);
           }
           offset = strtoul(&xref[i + 1], NULL, 10);
           fseek(fp, offset, SEEK_SET);
           fget(&xref[0], XREFLINE, fp);
           if (strstr(&xref[0], "xref") == NULL) {
                   /* error */
                   return;
           }
           fget(&xref[0], XREFLINE, fp);
           {
                   int entry[2];
                   sscanf(&xref[0], "%d %d", &entry[0], &entry[1]);
                   object = (struct object **) xmalloc(entry[0] + entry[1]);
                   fseek(fp,20,SEEK_CUR);
                   while (entry[1] >= 0) {
                           fget(&xref[0], XREFLINE, fp);
                           add_obj(&xref[0]);
                           entry[1]--;
                   }
           }
           return;
   }
   
   int parse_pdf(void)
   {
           xref();
           return 0;
   }

Legend:
Odstranené z verzie1.5  
zmenené riadky
  Pridané vo verzii1.6

Platon Group <platon@platon.sk> http://platon.sk/
Copyright © 2002-2006 Platon Group
Stránka používa redakčný systém Metafox
Na začiatok