diff options
author | Luigi Scarso <luigi.scarso@gmail.com> | 2020-04-21 18:43:36 +0000 |
---|---|---|
committer | Luigi Scarso <luigi.scarso@gmail.com> | 2020-04-21 18:43:36 +0000 |
commit | 7c0b908f1a6e1489834fbdb0789766eed8a37b49 (patch) | |
tree | cb55d631b861bfcf95fe853713af6f760227ba0f /Build/source/libs/pplib/pplib-src/src/ppload.h | |
parent | e783b071ded7eef421d0333416b47142bc5542cb (diff) |
pplib under libs -- WORK IN PROGRSS grep '?' out
git-svn-id: svn://tug.org/texlive/trunk@54824 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/pplib/pplib-src/src/ppload.h')
-rw-r--r-- | Build/source/libs/pplib/pplib-src/src/ppload.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/Build/source/libs/pplib/pplib-src/src/ppload.h b/Build/source/libs/pplib/pplib-src/src/ppload.h new file mode 100644 index 00000000000..f9ecca3b9a0 --- /dev/null +++ b/Build/source/libs/pplib/pplib-src/src/ppload.h @@ -0,0 +1,58 @@ + +#ifndef PP_LOAD_H +#define PP_LOAD_H + +typedef struct { + ppobj *buf; // ppobjects buffer (allocated, not from our heap) + ppobj *pos; // current ppobj * + size_t size; // stack size + size_t space; // available space + ppheap *heap; // allocator (parent pdf->stack->heap or parent context) +} ppstack; + +typedef struct { + ppobj *current; + ppobj *sentinel; +} ppkids; + +#define PPPAGES_STACK_DEPTH 4 + +typedef struct { + ppkids buffer[PPPAGES_STACK_DEPTH]; + ppkids *root; + ppkids *parent; + ppuint depth; + ppuint space; +} pppages; + +struct ppdoc { + /* input */ + iof_file input; + iof reader; + uint8_t *buffer; + size_t filesize; + /* heap */ + ppheap heap; + ppstack stack; + /* output struct */ + ppxref *xref; + pppages pages; + ppcrypt *crypt; + ppcrypt_status cryptstatus; + int flags; + char version[5]; +}; + +#define PPDOC_LINEARIZED (1 << 0) + +ppobj * ppdoc_load_entry (ppdoc *pdf, ppref *ref); +#define ppobj_preloaded(pdf, obj) ((obj)->type != PPREF ? (obj) : ((obj)->ref->object.type == PPNONE ? ppdoc_load_entry(pdf, (obj)->ref) : &(obj)->ref->object)) + +ppstring * ppstring_internal (const void *data, size_t size, ppheap *heap); + +struct ppcontext { + ppheap heap; + ppstack stack; +}; + +#endif
\ No newline at end of file |