comparison src/libpst.h @ 143:fdc58ad2c758 stable-0-6-28

fix embedded rfc822 messages with attachments
author Carl Byington <carl@five-ten-sg.com>
date Tue, 24 Feb 2009 12:33:49 -0800
parents 2189a6b8134e
children 06aa84023b48
comparison
equal deleted inserted replaced
142:2189a6b8134e 143:fdc58ad2c758
151 struct pst_index2_tree *next; 151 struct pst_index2_tree *next;
152 } pst_index2_ll; 152 } pst_index2_ll;
153 153
154 154
155 typedef struct pst_desc_tree { 155 typedef struct pst_desc_tree {
156 uint64_t id; 156 uint64_t id;
157 uint64_t parent_id; 157 uint64_t parent_id;
158 pst_index_ll *list_index; 158 pst_index_ll *list_index;
159 pst_index_ll *desc; 159 pst_index_ll *desc;
160 int32_t no_child; 160 int32_t no_child;
161 struct pst_desc_tree *prev; 161 struct pst_desc_tree *prev;
162 struct pst_desc_tree *next; 162 struct pst_desc_tree *next;
163 struct pst_desc_tree *parent; 163 struct pst_desc_tree *parent;
164 struct pst_desc_tree *child; 164 struct pst_desc_tree *child;
165 struct pst_desc_tree *child_tail; 165 struct pst_desc_tree *child_tail;
380 char *filename2; 380 char *filename2;
381 char *mimetype; 381 char *mimetype;
382 char *data; 382 char *data;
383 size_t size; 383 size_t size;
384 uint64_t id2_val; 384 uint64_t id2_val;
385 uint64_t id_val; // calculated from id2_val during creation of record 385 uint64_t id_val; // calculated from id2_val during creation of record
386 pst_index2_ll *id2_head; // deep copy from child
386 int32_t method; 387 int32_t method;
387 int32_t position; 388 int32_t position;
388 int32_t sequence; 389 int32_t sequence;
389 struct pst_item_attach *next; 390 struct pst_item_attach *next;
390 } pst_item_attach; 391 } pst_item_attach;
546 int pst_load_extended_attributes(pst_file *pf); 547 int pst_load_extended_attributes(pst_file *pf);
547 548
548 int pst_build_id_ptr(pst_file *pf, int64_t offset, int32_t depth, uint64_t linku1, uint64_t start_val, uint64_t end_val); 549 int pst_build_id_ptr(pst_file *pf, int64_t offset, int32_t depth, uint64_t linku1, uint64_t start_val, uint64_t end_val);
549 int pst_build_desc_ptr(pst_file *pf, int64_t offset, int32_t depth, uint64_t linku1, uint64_t start_val, uint64_t end_val); 550 int pst_build_desc_ptr(pst_file *pf, int64_t offset, int32_t depth, uint64_t linku1, uint64_t start_val, uint64_t end_val);
550 pst_item* pst_getItem(pst_file *pf, pst_desc_ll *d_ptr); 551 pst_item* pst_getItem(pst_file *pf, pst_desc_ll *d_ptr);
551 pst_item* pst_parse_item (pst_file *pf, pst_desc_ll *d_ptr); 552 pst_item* pst_parse_item (pst_file *pf, pst_desc_ll *d_ptr, pst_index2_ll *m_head);
552 pst_num_array* pst_parse_block(pst_file *pf, uint64_t block_id, pst_index2_ll *i2_head, pst_num_array *na_head); 553 pst_num_array* pst_parse_block(pst_file *pf, uint64_t block_id, pst_index2_ll *i2_head, pst_num_array *na_head);
553 int pst_process(pst_num_array *list, pst_item *item, pst_item_attach *attach); 554 int pst_process(pst_num_array *list, pst_item *item, pst_item_attach *attach);
554 void pst_free_list(pst_num_array *list); 555 void pst_free_list(pst_num_array *list);
555 void pst_freeItem(pst_item *item); 556 void pst_freeItem(pst_item *item);
556 void pst_free_id2(pst_index2_ll * head); 557 void pst_free_id2(pst_index2_ll * head);
559 void pst_free_xattrib(pst_x_attrib_ll *x); 560 void pst_free_xattrib(pst_x_attrib_ll *x);
560 int pst_getBlockOffsetPointer(pst_file *pf, pst_index2_ll *i2_head, pst_subblocks *subblocks, uint32_t offset, pst_block_offset_pointer *p); 561 int pst_getBlockOffsetPointer(pst_file *pf, pst_index2_ll *i2_head, pst_subblocks *subblocks, uint32_t offset, pst_block_offset_pointer *p);
561 int pst_getBlockOffset(char *buf, size_t read_size, uint32_t i_offset, uint32_t offset, pst_block_offset *p); 562 int pst_getBlockOffset(char *buf, size_t read_size, uint32_t i_offset, uint32_t offset, pst_block_offset *p);
562 pst_index2_ll* pst_build_id2(pst_file *pf, pst_index_ll* list); 563 pst_index2_ll* pst_build_id2(pst_file *pf, pst_index_ll* list);
563 pst_index_ll* pst_getID(pst_file* pf, uint64_t id); 564 pst_index_ll* pst_getID(pst_file* pf, uint64_t id);
564 pst_index_ll* pst_getID2(pst_index2_ll * ptr, uint64_t id); 565 pst_index2_ll* pst_getID2(pst_index2_ll * ptr, uint64_t id);
565 pst_desc_ll* pst_getDptr(pst_file *pf, uint64_t id); 566 pst_desc_ll* pst_getDptr(pst_file *pf, uint64_t id);
566 size_t pst_read_block_size(pst_file *pf, int64_t offset, size_t size, char **buf); 567 size_t pst_read_block_size(pst_file *pf, int64_t offset, size_t size, char **buf);
567 int pst_decrypt(uint64_t id, char *buf, size_t size, unsigned char type); 568 int pst_decrypt(uint64_t id, char *buf, size_t size, unsigned char type);
568 uint64_t pst_getIntAt(pst_file *pf, char *buf); 569 uint64_t pst_getIntAt(pst_file *pf, char *buf);
569 uint64_t pst_getIntAtPos(pst_file *pf, int64_t pos); 570 uint64_t pst_getIntAtPos(pst_file *pf, int64_t pos);