Main Page | Namespace List | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

libpst.h File Reference

#include "common.h"

Include dependency graph for libpst.h:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Data Structures

struct  pst_misc_6_struct
struct  pst_entryid_struct
struct  pst_desc_struct32
struct  pst_desc_structn
struct  pst_index_struct32
struct  pst_index_struct
struct  pst_index_tree32
struct  pst_index_tree
struct  pst_id2_tree
struct  pst_desc_tree
struct  pst_string
struct  pst_binary
struct  pst_item_email
 This struct defines an email message. More...
struct  pst_item_folder
struct  pst_item_message_store
struct  pst_item_contact
 This struct defines a contact. More...
struct  pst_item_attach
struct  pst_item_extra_field
struct  pst_item_journal
 This struct defines a journal entry. More...
struct  pst_item_appointment
 This struct defines an appointment. More...
struct  pst_item
struct  pst_x_attrib_ll
struct  pst_block_recorder
struct  pst_file
struct  pst_block_offset
struct  pst_block_offset_pointer
struct  pst_mapi_element
struct  pst_mapi_object
struct  pst_holder
struct  pst_subblock
struct  pst_subblocks

Defines

#define PST_TYPE_NOTE   1
#define PST_TYPE_APPOINTMENT   8
#define PST_TYPE_CONTACT   9
#define PST_TYPE_JOURNAL   10
#define PST_TYPE_STICKYNOTE   11
#define PST_TYPE_TASK   12
#define PST_TYPE_OTHER   13
#define PST_TYPE_REPORT   14
#define PST_NO_ENC   0
#define PST_ENC   1
#define PST_NO_ENCRYPT   0
#define PST_COMP_ENCRYPT   1
#define PST_ENCRYPT   2
#define PST_MAP_ATTRIB   (uint32_t)1
#define PST_MAP_HEADER   (uint32_t)2
#define PST_ATTRIB_HEADER   -1
#define PST_FREEBUSY_FREE   0
#define PST_FREEBUSY_TENTATIVE   1
#define PST_FREEBUSY_BUSY   2
#define PST_FREEBUSY_OUT_OF_OFFICE   3
#define PST_APP_LABEL_NONE   0
#define PST_APP_LABEL_IMPORTANT   1
#define PST_APP_LABEL_BUSINESS   2
#define PST_APP_LABEL_PERSONAL   3
#define PST_APP_LABEL_VACATION   4
#define PST_APP_LABEL_MUST_ATTEND   5
#define PST_APP_LABEL_TRAVEL_REQ   6
#define PST_APP_LABEL_NEEDS_PREP   7
#define PST_APP_LABEL_BIRTHDAY   8
#define PST_APP_LABEL_ANNIVERSARY   9
#define PST_APP_LABEL_PHONE_CALL   10
#define PST_APP_RECUR_NONE   0
#define PST_APP_RECUR_DAILY   1
#define PST_APP_RECUR_WEEKLY   2
#define PST_APP_RECUR_MONTHLY   3
#define PST_APP_RECUR_YEARLY   4

Typedefs

typedef pst_misc_6_struct pst_misc_6
typedef pst_entryid_struct pst_entryid
typedef pst_desc_struct32 pst_desc32
typedef pst_desc_structn pst_descn
typedef pst_index_struct32 pst_index32
typedef pst_index_struct pst_index
typedef pst_index_tree32 pst_index_ll32
typedef pst_index_tree pst_index_ll
typedef pst_id2_tree pst_id2_ll
typedef pst_desc_tree pst_desc_ll
typedef pst_string pst_string
typedef pst_binary pst_binary
typedef pst_item_email pst_item_email
 This struct defines an email message.
typedef pst_item_folder pst_item_folder
typedef pst_item_message_store pst_item_message_store
typedef pst_item_contact pst_item_contact
 This struct defines a contact.
typedef pst_item_attach pst_item_attach
typedef pst_item_extra_field pst_item_extra_field
typedef pst_item_journal pst_item_journal
 This struct defines a journal entry.
typedef pst_item_appointment pst_item_appointment
 This struct defines an appointment.
typedef pst_item pst_item
typedef pst_x_attrib_ll pst_x_attrib_ll
typedef pst_block_recorder pst_block_recorder
typedef pst_file pst_file
typedef pst_block_offset pst_block_offset
typedef pst_block_offset_pointer pst_block_offset_pointer
typedef pst_mapi_element pst_mapi_element
typedef pst_mapi_object pst_mapi_object
typedef pst_holder pst_holder
typedef pst_subblock pst_subblock
typedef pst_subblocks pst_subblocks

Functions

int pst_open (pst_file *pf, char *name)
int pst_close (pst_file *pf)
pst_desc_llpst_getTopOfFolders (pst_file *pf, pst_item *root)
size_t pst_attach_to_mem (pst_file *pf, pst_item_attach *attach, char **b)
size_t pst_attach_to_file (pst_file *pf, pst_item_attach *attach, FILE *fp)
size_t pst_attach_to_file_base64 (pst_file *pf, pst_item_attach *attach, FILE *fp)
int pst_load_index (pst_file *pf)
pst_desc_llpst_getNextDptr (pst_desc_ll *d)
int pst_load_extended_attributes (pst_file *pf)
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)
 Process the index1 b-tree from the pst file and create the pf->i_head linked list from it.
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)
 Process the index2 b-tree from the pst file and create the pf->d_head tree from it.
pst_itempst_getItem (pst_file *pf, pst_desc_ll *d_ptr)
pst_itempst_parse_item (pst_file *pf, pst_desc_ll *d_ptr, pst_id2_ll *m_head)
 Process a high level object from the pst file.
pst_mapi_objectpst_parse_block (pst_file *pf, uint64_t block_id, pst_id2_ll *i2_head)
 Process a low level descriptor block (0x0101, 0xbcec, 0x7cec) into a list of MAPI objects, each of which contains a list of MAPI elements.
int pst_process (pst_mapi_object *list, pst_item *item, pst_item_attach *attach)
 process the list of MAPI objects produced from parse_block()
void pst_free_list (pst_mapi_object *list)
void pst_freeItem (pst_item *item)
void pst_free_id2 (pst_id2_ll *head)
void pst_free_id (pst_index_ll *head)
void pst_free_desc (pst_desc_ll *head)
void pst_free_xattrib (pst_x_attrib_ll *x)
int pst_getBlockOffsetPointer (pst_file *pf, pst_id2_ll *i2_head, pst_subblocks *subblocks, uint32_t offset, pst_block_offset_pointer *p)
 The offset might be zero, in which case we have no data, so return a pair of null pointers.
int pst_getBlockOffset (char *buf, size_t read_size, uint32_t i_offset, uint32_t offset, pst_block_offset *p)
pst_id2_llpst_build_id2 (pst_file *pf, pst_index_ll *list)
pst_index_llpst_getID (pst_file *pf, uint64_t i_id)
pst_id2_llpst_getID2 (pst_id2_ll *ptr, uint64_t id)
pst_desc_llpst_getDptr (pst_file *pf, uint64_t d_id)
 find the id in the descriptor tree rooted at pf->d_head
size_t pst_read_block_size (pst_file *pf, int64_t offset, size_t size, char **buf)
 Read a block of data from file into memory.
int pst_decrypt (uint64_t id, char *buf, size_t size, unsigned char type)
uint64_t pst_getIntAt (pst_file *pf, char *buf)
uint64_t pst_getIntAtPos (pst_file *pf, int64_t pos)
size_t pst_getAtPos (pst_file *pf, int64_t pos, void *buf, size_t size)
 Read part of the pst file.
size_t pst_ff_getIDblock_dec (pst_file *pf, uint64_t id, char **b)
 Get an ID block from file using _pst_ff_getIDblock and decrypt if necessary.
size_t pst_ff_getIDblock (pst_file *pf, uint64_t id, char **b)
 Read a block of data from file into memory.
size_t pst_ff_getID2block (pst_file *pf, uint64_t id2, pst_id2_ll *id2_head, char **buf)
size_t pst_ff_getID2data (pst_file *pf, pst_index_ll *ptr, pst_holder *h)
size_t pst_ff_compile_ID (pst_file *pf, uint64_t id, pst_holder *h, size_t size)
int pst_strincmp (char *a, char *b, size_t x)
int pst_stricmp (char *a, char *b)
size_t pst_fwrite (const void *ptr, size_t size, size_t nmemb, FILE *stream)
char * pst_wide_to_single (char *wt, size_t size)
char * pst_rfc2426_escape (char *str)
int pst_chr_count (char *str, char x)
char * pst_rfc2425_datetime_format (FILETIME *ft)
char * pst_rfc2445_datetime_format (FILETIME *ft)
void pst_printDptr (pst_file *pf, pst_desc_ll *ptr)
void pst_printIDptr (pst_file *pf)
void pst_printID2ptr (pst_id2_ll *ptr)
const char * pst_codepage (int cp)
const char * pst_default_charset (pst_item *item)
 get the default character set for this item
void pst_convert_utf8_null (pst_item *item, pst_string *str)
 Convert str to utf8 if possible; null strings are preserved.
void pst_convert_utf8 (pst_item *item, pst_string *str)
 Convert str to utf8 if possible; null strings are converted into empty strings.


Define Documentation

#define PST_APP_LABEL_ANNIVERSARY   9
 

Definition at line 67 of file libpst.h.

Referenced by write_appointment().

#define PST_APP_LABEL_BIRTHDAY   8
 

Definition at line 66 of file libpst.h.

Referenced by write_appointment().

#define PST_APP_LABEL_BUSINESS   2
 

Definition at line 60 of file libpst.h.

Referenced by write_appointment().

#define PST_APP_LABEL_IMPORTANT   1
 

Definition at line 59 of file libpst.h.

Referenced by write_appointment().

#define PST_APP_LABEL_MUST_ATTEND   5
 

Definition at line 63 of file libpst.h.

Referenced by write_appointment().

#define PST_APP_LABEL_NEEDS_PREP   7
 

Definition at line 65 of file libpst.h.

Referenced by write_appointment().

#define PST_APP_LABEL_NONE   0
 

Definition at line 58 of file libpst.h.

Referenced by write_appointment().

#define PST_APP_LABEL_PERSONAL   3
 

Definition at line 61 of file libpst.h.

Referenced by write_appointment().

#define PST_APP_LABEL_PHONE_CALL   10
 

Definition at line 68 of file libpst.h.

Referenced by write_appointment().

#define PST_APP_LABEL_TRAVEL_REQ   6
 

Definition at line 64 of file libpst.h.

Referenced by write_appointment().

#define PST_APP_LABEL_VACATION   4
 

Definition at line 62 of file libpst.h.

Referenced by write_appointment().

#define PST_APP_RECUR_DAILY   1
 

Definition at line 72 of file libpst.h.

#define PST_APP_RECUR_MONTHLY   3
 

Definition at line 74 of file libpst.h.

#define PST_APP_RECUR_NONE   0
 

Definition at line 71 of file libpst.h.

#define PST_APP_RECUR_WEEKLY   2
 

Definition at line 73 of file libpst.h.

#define PST_APP_RECUR_YEARLY   4
 

Definition at line 75 of file libpst.h.

#define PST_ATTRIB_HEADER   -1
 

Definition at line 49 of file libpst.h.

Referenced by pst_process().

#define PST_COMP_ENCRYPT   1
 

Definition at line 41 of file libpst.h.

Referenced by main().

#define PST_ENC   1
 

Definition at line 37 of file libpst.h.

#define PST_ENCRYPT   2
 

Definition at line 42 of file libpst.h.

#define PST_FREEBUSY_BUSY   2
 

Definition at line 54 of file libpst.h.

Referenced by write_appointment().

#define PST_FREEBUSY_FREE   0
 

Definition at line 52 of file libpst.h.

Referenced by write_appointment().

#define PST_FREEBUSY_OUT_OF_OFFICE   3
 

Definition at line 55 of file libpst.h.

Referenced by write_appointment().

#define PST_FREEBUSY_TENTATIVE   1
 

Definition at line 53 of file libpst.h.

Referenced by write_appointment().

#define PST_MAP_ATTRIB   (uint32_t)1
 

Definition at line 45 of file libpst.h.

#define PST_MAP_HEADER   (uint32_t)2
 

Definition at line 46 of file libpst.h.

#define PST_NO_ENC   0
 

Definition at line 36 of file libpst.h.

#define PST_NO_ENCRYPT   0
 

Definition at line 40 of file libpst.h.

#define PST_TYPE_APPOINTMENT   8
 

Definition at line 27 of file libpst.h.

Referenced by mk_recurse_dir().

#define PST_TYPE_CONTACT   9
 

Definition at line 28 of file libpst.h.

Referenced by mk_recurse_dir().

#define PST_TYPE_JOURNAL   10
 

Definition at line 29 of file libpst.h.

Referenced by mk_recurse_dir().

#define PST_TYPE_NOTE   1
 

Definition at line 26 of file libpst.h.

Referenced by mk_recurse_dir(), and process().

#define PST_TYPE_OTHER   13
 

Definition at line 32 of file libpst.h.

Referenced by mk_recurse_dir().

#define PST_TYPE_REPORT   14
 

Definition at line 33 of file libpst.h.

Referenced by mk_recurse_dir().

#define PST_TYPE_STICKYNOTE   11
 

Definition at line 30 of file libpst.h.

Referenced by mk_recurse_dir().

#define PST_TYPE_TASK   12
 

Definition at line 31 of file libpst.h.

Referenced by mk_recurse_dir().


Typedef Documentation

typedef struct pst_binary pst_binary
 

typedef struct pst_block_offset pst_block_offset
 

typedef struct pst_block_offset_pointer pst_block_offset_pointer
 

typedef struct pst_block_recorder pst_block_recorder
 

typedef struct pst_desc_struct32 pst_desc32
 

Referenced by pst_decode_desc().

typedef struct pst_desc_tree pst_desc_ll
 

Referenced by add_descriptor_to_list(), dump_desc(), dumper(), main(), process(), pst_build_desc_ptr(), pst_free_desc(), pst_getDptr(), pst_getNextDptr(), pst_getTopOfFolders(), pst_load_extended_attributes(), pst_parse_item(), pst_printDptr(), record_descriptor(), and write_embedded_message().

typedef struct pst_desc_structn pst_descn
 

Referenced by pst_build_desc_ptr(), and pst_decode_desc().

typedef struct pst_entryid_struct pst_entryid
 

typedef struct pst_file pst_file
 

typedef struct pst_holder pst_holder
 

typedef struct pst_id2_tree pst_id2_ll
 

Referenced by deep_copy(), pst_build_id2(), pst_ff_getID2block(), pst_free_id2(), pst_getBlockOffsetPointer(), pst_getID2(), pst_load_extended_attributes(), pst_parse_block(), pst_parse_item(), and pst_printID2ptr().

typedef struct pst_index_struct pst_index
 

Referenced by pst_build_id_ptr(), and pst_decode_index().

typedef struct pst_index_struct32 pst_index32
 

Referenced by pst_decode_index().

typedef struct pst_index_tree pst_index_ll
 

Referenced by main(), pst_attach_to_file(), pst_attach_to_file_base64(), pst_attach_to_mem(), pst_build_id2(), pst_build_id_ptr(), pst_ff_getID2data(), pst_ff_getIDblock(), pst_free_id(), pst_getID(), pst_printIDptr(), write_embedded_message(), write_inline_attachment(), and write_separate_attachment().

typedef struct pst_index_tree32 pst_index_ll32
 

typedef struct pst_item pst_item
 

Referenced by pst_parse_item().

typedef struct pst_item_appointment pst_item_appointment
 

This struct defines an appointment.

typedef struct pst_item_attach pst_item_attach
 

Referenced by pst_parse_item(), and write_normal_email().

typedef struct pst_item_contact pst_item_contact
 

This struct defines a contact.

typedef struct pst_item_email pst_item_email
 

This struct defines an email message.

typedef struct pst_item_extra_field pst_item_extra_field
 

Referenced by pst_process().

typedef struct pst_item_folder pst_item_folder
 

typedef struct pst_item_journal pst_item_journal
 

This struct defines a journal entry.

typedef struct pst_item_message_store pst_item_message_store
 

typedef struct pst_mapi_element pst_mapi_element
 

Referenced by pst_parse_block().

typedef struct pst_mapi_object pst_mapi_object
 

Referenced by pst_parse_block().

typedef struct pst_misc_6_struct pst_misc_6
 

typedef struct pst_string pst_string
 

typedef struct pst_subblock pst_subblock
 

typedef struct pst_subblocks pst_subblocks
 

typedef struct pst_x_attrib_ll pst_x_attrib_ll
 


Function Documentation

size_t pst_attach_to_file pst_file pf,
pst_item_attach attach,
FILE *  fp
 

Definition at line 429 of file libpst.c.

References pst_binary::data, pst_item_attach::data, DEBUG_ENT, DEBUG_RET, DEBUG_WARN, pst_item_attach::i_id, pst_ff_getID2data(), pst_fwrite(), pst_getID(), pst_index_ll, and pst_binary::size.

Referenced by write_separate_attachment().

Here is the call graph for this function:

size_t pst_attach_to_file_base64 pst_file pf,
pst_item_attach attach,
FILE *  fp
 

Definition at line 452 of file libpst.c.

References base64_encode(), pst_binary::data, pst_item_attach::data, DEBUG_ENT, DEBUG_RET, DEBUG_WARN, pst_item_attach::i_id, pst_ff_getID2data(), pst_fwrite(), pst_getID(), pst_index_ll, and pst_binary::size.

Referenced by write_inline_attachment().

Here is the call graph for this function:

size_t pst_attach_to_mem pst_file pf,
pst_item_attach attach,
char **  b
 

Definition at line 407 of file libpst.c.

References pst_item_attach::data, DEBUG_ENT, DEBUG_RET, DEBUG_WARN, pst_item_attach::i_id, pst_ff_getID2data(), pst_getID(), pst_index_ll, and pst_binary::size.

Here is the call graph for this function:

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
 

Process the index2 b-tree from the pst file and create the pf->d_head tree from it.

This tree holds descriptions of the higher level objects (email, contact, etc) in the pst file.

Definition at line 949 of file libpst.c.

References pst_desc_tree::assoc_tree, BACKLINK_OFFSET, pst_desc_tree::d_id, DEBUG_ENT, DEBUG_HEXDUMPC, DEBUG_INDEX, DEBUG_RET, DEBUG_WARN, pst_desc_tree::desc, DESC_BLOCK_SIZE, DESC_COUNT_MAX, DESC_SIZE32, INDEX_COUNT_MAX, ITEM_SIZE32, pst_table_ptr_structn::offset, pst_desc_tree::parent_d_id, pst_decode_desc(), pst_decode_table(), pst_desc_ll, pst_descn, pst_getID(), pst_getIntAt(), pst_read_block_size(), record_descriptor(), pst_table_ptr_structn::start, pst_table_ptr_structn::u1, and xmalloc().

Referenced by pst_load_index().

Here is the call graph for this function:

pst_id2_ll* pst_build_id2 pst_file pf,
pst_index_ll list
 

Definition at line 3081 of file libpst.c.

References pst_id2_tree::child, pst_id2_assoc::child_id, DEBUG_ENT, DEBUG_HEXDUMPC, DEBUG_INDEX, DEBUG_RET, DEBUG_WARN, pst_file::do_read64, pst_index_tree::i_id, pst_id2_tree::id, pst_id2_assoc::id, pst_id2_tree::id2, pst_id2_assoc::id2, LE16_CPU, pst_id2_tree::next, pst_index_tree::offset, pst_decode_assoc(), pst_getID(), pst_id2_ll, pst_index_ll, pst_read_block_size(), pst_index_tree::size, pst_index_tree::u1, WARN, and xmalloc().

Referenced by pst_load_extended_attributes(), and pst_parse_item().

Here is the call graph for this function:

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
 

Process the index1 b-tree from the pst file and create the pf->i_head linked list from it.

This tree holds the location (offset and size) of lower level objects (0xbcec descriptor blocks, etc) in the pst file.

Definition at line 832 of file libpst.c.

References BACKLINK_OFFSET, BLOCK_SIZE, DEBUG_ENT, DEBUG_HEXDUMPC, DEBUG_INDEX, DEBUG_RET, DEBUG_WARN, pst_file::i_head, pst_file::i_tail, pst_index_struct::id, INDEX_COUNT_MAX, ITEM_SIZE32, pst_index_tree::next, pst_table_ptr_structn::offset, pst_index_struct::offset, pst_decode_index(), pst_decode_table(), pst_getIntAt(), pst_index, pst_index_ll, pst_read_block_size(), pst_index_struct::size, pst_table_ptr_structn::start, pst_table_ptr_structn::u1, pst_index_struct::u1, and xmalloc().

Referenced by pst_load_index().

Here is the call graph for this function:

int pst_chr_count char *  str,
char  x
 

Definition at line 4090 of file libpst.c.

Referenced by pst_rfc2426_escape().

int pst_close pst_file pf  ) 
 

Definition at line 245 of file libpst.c.

References pst_file::d_head, DEBUG_ENT, DEBUG_RET, pst_file::fp, pst_file::i_head, pst_free_desc(), pst_free_id(), pst_free_xattrib(), WARN, and pst_file::x_head.

Referenced by main().

Here is the call graph for this function:

const char* pst_codepage int  cp  ) 
 

void pst_convert_utf8 pst_item item,
pst_string str
 

Convert str to utf8 if possible; null strings are converted into empty strings.

Parameters:
item pointer to the mapi item of interest
str pointer to the mapi string of interest

Definition at line 4201 of file libpst.c.

References varbuf::b, DEBUG_EMAIL, DEBUG_ENT, DEBUG_RET, pst_string::is_utf8, pst_default_charset(), pst_string::str, vb_8bit2utf8(), vballoc(), and vbuf.

Referenced by create_enter_dir(), process(), pst_convert_utf8_null(), and write_normal_email().

Here is the call graph for this function:

void pst_convert_utf8_null pst_item item,
pst_string str
 

Convert str to utf8 if possible; null strings are preserved.

Parameters:
item pointer to the mapi item of interest
str pointer to the mapi string of interest

Definition at line 4189 of file libpst.c.

References pst_convert_utf8(), and pst_string::str.

Referenced by write_appointment(), write_normal_email(), and write_vcard().

Here is the call graph for this function:

int pst_decrypt uint64_t  id,
char *  buf,
size_t  size,
unsigned char  type
 

Definition at line 3598 of file libpst.c.

References comp_enc, comp_high1, comp_high2, DEBUG_ENT, DEBUG_RET, and WARN.

Referenced by main(), pst_ff_compile_ID(), and pst_ff_getIDblock_dec().

const char* pst_default_charset pst_item item  ) 
 

get the default character set for this item

Parameters:
item pointer to the mapi item of interest
Returns:
default character set

Definition at line 4175 of file libpst.c.

References pst_item::body_charset, codepage(), pst_item::internet_cpid, pst_item::message_codepage, and pst_string::str.

Referenced by pst_convert_utf8(), and write_normal_email().

Here is the call graph for this function:

size_t pst_ff_compile_ID pst_file pf,
uint64_t  id,
pst_holder h,
size_t  size
 

Definition at line 3821 of file libpst.c.

References pst_holder::base64, base64_encode(), base64_encode_multiple(), pst_holder::buf, DEBUG_EMAIL, DEBUG_ENT, DEBUG_HEXDUMPC, DEBUG_READ, DEBUG_RET, DEBUG_WARN, pst_file::encryption, pst_holder::fp, pst_table3_rec::id, LE16_CPU, LE32_CPU, pst_decode_type3(), pst_decrypt(), pst_ff_getIDblock(), pst_ff_getIDblock_dec(), and pst_fwrite().

Referenced by pst_ff_getID2data().

Here is the call graph for this function:

size_t pst_ff_getID2block pst_file pf,
uint64_t  id2,
pst_id2_ll id2_head,
char **  buf
 

Definition at line 3771 of file libpst.c.

References DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_id2_tree::id, pst_ff_getID2data(), pst_getID2(), and pst_id2_ll.

Referenced by pst_getBlockOffsetPointer(), and pst_parse_block().

Here is the call graph for this function:

size_t pst_ff_getID2data pst_file pf,
pst_index_ll ptr,
pst_holder h
 

Definition at line 3789 of file libpst.c.

References pst_holder::base64, base64_encode(), pst_holder::buf, DEBUG_ENT, DEBUG_READ, DEBUG_RET, pst_holder::fp, pst_index_tree::i_id, pst_ff_compile_ID(), pst_ff_getIDblock_dec(), pst_fwrite(), and pst_index_ll.

Referenced by pst_attach_to_file(), pst_attach_to_file_base64(), pst_attach_to_mem(), and pst_ff_getID2block().

Here is the call graph for this function:

size_t pst_ff_getIDblock pst_file pf,
uint64_t  id,
char **  buf
 

Read a block of data from file into memory.

Parameters:
pf PST file
id identifier of block to read
buf reference to pointer to buffer. If this pointer is non-NULL, it will first be free()d
Returns:
size of block read into memory

Definition at line 3754 of file libpst.c.

References DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_index_tree::offset, pst_getID(), pst_index_ll, pst_read_block_size(), and pst_index_tree::size.

Referenced by main(), pst_ff_compile_ID(), and pst_ff_getIDblock_dec().

Here is the call graph for this function:

size_t pst_ff_getIDblock_dec pst_file pf,
uint64_t  id,
char **  buf
 

Get an ID block from file using _pst_ff_getIDblock and decrypt if necessary.

Parameters:
pf PST file structure
id ID of block to retrieve
buf Reference to pointer that will be set to new block. Any memory pointed to by buffer will be free()d beforehand
Returns:
Size of block pointed to by *b

Definition at line 3731 of file libpst.c.

References DEBUG_ENT, DEBUG_HEXDUMPC, DEBUG_INDEX, DEBUG_RET, pst_file::encryption, pst_decrypt(), and pst_ff_getIDblock().

Referenced by dumper(), main(), pst_ff_compile_ID(), pst_ff_getID2data(), and pst_parse_block().

Here is the call graph for this function:

void pst_free_desc pst_desc_ll head  ) 
 

Definition at line 3044 of file libpst.c.

References pst_desc_tree::child, DEBUG_ENT, DEBUG_RET, DIE, pst_desc_tree::next, pst_desc_tree::parent, and pst_desc_ll.

Referenced by pst_close().

void pst_free_id pst_index_ll head  ) 
 

Definition at line 3032 of file libpst.c.

References DEBUG_ENT, DEBUG_RET, pst_index_tree::next, and pst_index_ll.

Referenced by pst_close().

void pst_free_id2 pst_id2_ll head  ) 
 

Definition at line 3019 of file libpst.c.

References pst_id2_tree::child, DEBUG_ENT, DEBUG_RET, pst_id2_tree::next, and pst_id2_ll.

Referenced by pst_free_attach(), pst_load_extended_attributes(), and pst_parse_item().

void pst_free_list pst_mapi_object list  ) 
 

Definition at line 2997 of file libpst.c.

References pst_mapi_element::data, DEBUG_ENT, DEBUG_RET, pst_mapi_object::elements, pst_mapi_object::next, and pst_mapi_object::orig_count.

Referenced by pst_load_extended_attributes(), pst_parse_block(), and pst_parse_item().

void pst_free_xattrib pst_x_attrib_ll x  ) 
 

Definition at line 3068 of file libpst.c.

References pst_x_attrib_ll::data, DEBUG_ENT, DEBUG_RET, and pst_x_attrib_ll::next.

Referenced by pst_close().

void pst_freeItem pst_item item  ) 
 

Definition at line 3165 of file libpst.c.

References pst_item_contact::access_method, pst_item_contact::account_name, pst_item_contact::address1, pst_item_contact::address1_desc, pst_item_contact::address1_transport, pst_item_contact::address1a, pst_item_contact::address2, pst_item_contact::address2_desc, pst_item_contact::address2_transport, pst_item_contact::address2a, pst_item_contact::address3, pst_item_contact::address3_desc, pst_item_contact::address3_transport, pst_item_contact::address3a, pst_item_appointment::alarm_filename, pst_item::appointment, pst_item_email::arrival_date, pst_item::ascii_type, pst_item_contact::assistant_name, pst_item_contact::assistant_phone, pst_item::attach, pst_item_email::bcc_address, pst_item_contact::billing_information, pst_item_contact::birthday, pst_item::body, pst_item::body_charset, pst_item_contact::business_address, pst_item_contact::business_city, pst_item_contact::business_country, pst_item_contact::business_fax, pst_item_contact::business_homepage, pst_item_contact::business_phone, pst_item_contact::business_phone2, pst_item_contact::business_po_box, pst_item_contact::business_postal_code, pst_item_contact::business_state, pst_item_contact::business_street, pst_item_contact::callback_phone, pst_item_contact::car_phone, pst_item_email::cc_address, pst_item::comment, pst_item_contact::common_name, pst_item_message_store::common_view_folder, pst_item_contact::company_main_phone, pst_item_contact::company_name, pst_item_contact::computer_name, pst_item::contact, pst_item_email::conversation_index, pst_item::create_date, pst_item_contact::customer_id, DEBUG_ENT, DEBUG_RET, pst_item_contact::def_postal_address, pst_item_message_store::default_outbox_folder, pst_item_message_store::deleted_items_folder, pst_item_contact::department, pst_item_contact::display_name_prefix, pst_item::email, pst_item_email::encrypted_body, pst_item_email::encrypted_htmlbody, pst_item_appointment::end, pst_item_journal::end, pst_item::extra_fields, pst_item_extra_field::field_name, pst_item::file_as, pst_item_contact::first_name, pst_item::folder, pst_item_contact::followup, pst_item_contact::free_busy_address, pst_item_contact::ftp_site, pst_item_contact::fullname, pst_item_contact::gov_id, pst_item_email::header, pst_item_contact::hobbies, pst_item_contact::home_address, pst_item_contact::home_city, pst_item_contact::home_country, pst_item_contact::home_fax, pst_item_contact::home_phone, pst_item_contact::home_phone2, pst_item_contact::home_po_box, pst_item_contact::home_postal_code, pst_item_contact::home_state, pst_item_contact::home_street, pst_item_email::htmlbody, pst_item_email::in_reply_to, pst_item_contact::initials, pst_item_contact::isdn_phone, pst_item_contact::job_title, pst_item::journal, pst_item_contact::keyword, pst_item_contact::language, pst_item_appointment::location, pst_item_contact::location, pst_item_contact::manager_name, pst_item::message_store, pst_item_email::messageid, pst_item_contact::middle_name, pst_item_contact::mileage, pst_item_contact::mobile_phone, pst_item::modify_date, pst_item_extra_field::next, pst_item_contact::nickname, pst_item_contact::office_loc, pst_item_contact::org_id, pst_item_email::original_bcc, pst_item_email::original_cc, pst_item_email::original_to, pst_item_contact::other_address, pst_item_contact::other_city, pst_item_contact::other_country, pst_item_contact::other_phone, pst_item_contact::other_po_box, pst_item_contact::other_postal_code, pst_item_contact::other_state, pst_item_contact::other_street, pst_item_email::outlook_recipient, pst_item_email::outlook_recipient2, pst_item_email::outlook_recipient_name, pst_item_email::outlook_sender, pst_item_email::outlook_sender2, pst_item_email::outlook_sender_name, pst_item::outlook_version, pst_item_contact::pager_phone, pst_item_contact::personal_homepage, pst_item::predecessor_change, pst_item_contact::pref_name, pst_item_contact::primary_fax, pst_item_contact::primary_phone, pst_item_email::processed_subject, pst_item_contact::profession, pst_free_attach(), pst_item_contact::radio_phone, pst_item_email::recip2_access, pst_item_email::recip2_address, pst_item_email::recip_access, pst_item_email::recip_address, pst_item::record_key, pst_item_appointment::recurrence, pst_item_appointment::recurrence_end, pst_item_appointment::recurrence_start, pst_item_appointment::reminder, pst_item_email::reply_to, pst_item_email::report_text, pst_item_email::report_time, pst_item_email::return_path_address, pst_item_email::rtf_body_tag, pst_item_email::rtf_compressed, SAFE_FREE, SAFE_FREE_BIN, SAFE_FREE_STR, pst_item_message_store::search_root_folder, pst_item_email::sender2_access, pst_item_email::sender2_address, pst_item_email::sender_access, pst_item_email::sender_address, pst_item_email::sent_date, pst_item_message_store::sent_items_folder, pst_item_email::sentmail_folder, pst_item_email::sentto_address, pst_item_contact::spouse_name, pst_item_appointment::start, pst_item_journal::start, pst_item::subject, pst_item_contact::suffix, pst_item_email::supplementary_info, pst_item_contact::surname, pst_item_contact::telex, pst_item_appointment::timezonestring, pst_item_message_store::top_of_folder, pst_item_message_store::top_of_personal_folder, pst_item_contact::transmittable_display_name, pst_item_contact::ttytdd_phone, pst_item_journal::type, pst_item_message_store::user_views_folder, pst_item_extra_field::value, pst_item_contact::wedding_anniversary, pst_item_contact::work_address_city, pst_item_contact::work_address_country, pst_item_contact::work_address_postalcode, pst_item_contact::work_address_postofficebox, pst_item_contact::work_address_state, and pst_item_contact::work_address_street.

Referenced by dumper(), main(), process(), pst_parse_item(), and write_embedded_message().

Here is the call graph for this function:

size_t pst_fwrite const void *  ptr,
size_t  size,
size_t  nmemb,
FILE *  stream
 

Definition at line 4000 of file libpst.c.

References DEBUG_ENT, DEBUG_RET, and DEBUG_WARN.

Referenced by main(), print_pdf(), pst_attach_to_file(), pst_attach_to_file_base64(), pst_ff_compile_ID(), pst_ff_getID2data(), write_email_body(), write_inline_attachment(), and write_separate_attachment().

size_t pst_getAtPos pst_file pf,
int64_t  pos,
void *  buf,
size_t  size
 

Read part of the pst file.

Parameters:
pf PST file structure
pos offset of the data in the pst file
buf buffer to contain the data
size size of the buffer and the amount of data to be read
Returns:
actual read size, 0 if seek error

Definition at line 3687 of file libpst.c.

References DEBUG_ENT, DEBUG_RET, and pst_file::fp.

Referenced by pst_getIntAtPos(), pst_open(), and pst_read_block_size().

int pst_getBlockOffset char *  buf,
size_t  read_size,
uint32_t  i_offset,
uint32_t  offset,
pst_block_offset p
 

Definition at line 3423 of file libpst.c.

References DEBUG_ENT, DEBUG_RET, DEBUG_WARN, pst_block_offset::from, LE16_CPU, and pst_block_offset::to.

Referenced by pst_getBlockOffsetPointer().

int pst_getBlockOffsetPointer pst_file pf,
pst_id2_ll i2_head,
pst_subblocks subblocks,
uint32_t  offset,
pst_block_offset_pointer p
 

The offset might be zero, in which case we have no data, so return a pair of null pointers.

Or, the offset might end in 0xf, so it is an id2 pointer, in which case we read the id2 block. Otherwise, the high order 16 bits of offset is the index into the subblocks, and the (low order 16 bits of offset)>>4 is an index into the table of offsets in the subblock.

Definition at line 3376 of file libpst.c.

References pst_subblock::buf, DEBUG_ENT, DEBUG_RET, DEBUG_WARN, pst_block_offset::from, pst_block_offset_pointer::from, pst_subblock::i_offset, pst_block_offset_pointer::needfree, pst_ff_getID2block(), pst_getBlockOffset(), pst_id2_ll, pst_subblock::read_size, pst_subblocks::subblock_count, pst_subblocks::subs, pst_block_offset::to, and pst_block_offset_pointer::to.

Referenced by pst_parse_block().

Here is the call graph for this function:

pst_desc_ll* pst_getDptr pst_file pf,
uint64_t  d_id
 

find the id in the descriptor tree rooted at pf->d_head

Parameters:
pf global pst file pointer
d_id the id we are looking for
Returns:
pointer to the pst_desc_ll node in the descriptor tree

Definition at line 3505 of file libpst.c.

References pst_desc_tree::child, pst_file::d_head, pst_desc_tree::d_id, DEBUG_ENT, DEBUG_RET, pst_desc_tree::next, pst_desc_tree::parent, and pst_desc_ll.

Referenced by pst_getTopOfFolders(), pst_load_extended_attributes(), and record_descriptor().

pst_index_ll* pst_getID pst_file pf,
uint64_t  i_id
 

Definition at line 3447 of file libpst.c.

References DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_file::i_head, pst_index_tree::i_id, pst_index_tree::next, and pst_index_ll.

Referenced by dumper(), pst_attach_to_file(), pst_attach_to_file_base64(), pst_attach_to_mem(), pst_build_desc_ptr(), pst_build_id2(), pst_ff_getIDblock(), write_embedded_message(), write_inline_attachment(), and write_separate_attachment().

pst_id2_ll* pst_getID2 pst_id2_ll ptr,
uint64_t  id
 

Definition at line 3471 of file libpst.c.

References pst_id2_tree::child, DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_index_tree::i_id, pst_id2_tree::id, pst_id2_tree::id2, pst_id2_tree::next, and pst_id2_ll.

Referenced by pst_ff_getID2block(), and pst_parse_item().

uint64_t pst_getIntAt pst_file pf,
char *  buf
 

Definition at line 3646 of file libpst.c.

References pst_file::do_read64, LE32_CPU, and LE64_CPU.

Referenced by pst_build_desc_ptr(), and pst_build_id_ptr().

uint64_t pst_getIntAtPos pst_file pf,
int64_t  pos
 

Definition at line 3662 of file libpst.c.

References pst_file::do_read64, LE32_CPU, LE64_CPU, and pst_getAtPos().

Referenced by pst_open().

Here is the call graph for this function:

pst_item* pst_getItem pst_file pf,
pst_desc_ll d_ptr
 

pst_desc_ll* pst_getNextDptr pst_desc_ll d  ) 
 

Definition at line 500 of file libpst.c.

References pst_desc_tree::child, DEBUG_ENT, DEBUG_RET, pst_desc_tree::next, pst_desc_tree::parent, and pst_desc_ll.

Referenced by dumper().

pst_desc_ll* pst_getTopOfFolders pst_file pf,
pst_item root
 

Definition at line 375 of file libpst.c.

References pst_desc_tree::assoc_tree, pst_desc_tree::d_id, DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_desc_tree::desc, pst_entryid_struct::id, pst_item::message_store, pst_desc_tree::parent_d_id, pst_desc_ll, pst_getDptr(), record_descriptor(), pst_item_message_store::top_of_personal_folder, and xmalloc().

Referenced by main().

Here is the call graph for this function:

int pst_load_extended_attributes pst_file pf  ) 
 

Definition at line 521 of file libpst.c.

References pst_desc_tree::assoc_tree, pst_mapi_object::count_elements, pst_mapi_element::data, DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, DEBUG_WARN, pst_desc_tree::desc, pst_mapi_object::elements, pst_x_attrib::extended, pst_index_tree::i_id, LE16_CPU, LE32_CPU, pst_x_attrib::map, pst_mapi_element::mapi_id, pst_x_attrib_ll::next, pst_build_id2(), pst_desc_ll, pst_free_id2(), pst_free_list(), pst_getDptr(), pst_id2_ll, PST_LE_GET_UINT16, PST_LE_GET_UINT32, pst_parse_block(), pst_printID2ptr(), pst_wide_to_single(), pst_mapi_element::size, pst_x_attrib_ll::type, pst_x_attrib::type, pst_file::x_head, and xmalloc().

Referenced by main().

Here is the call graph for this function:

int pst_load_index pst_file pf  ) 
 

Definition at line 479 of file libpst.c.

References pst_file::d_head, DEBUG_CODE, DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_file::index1, pst_file::index1_back, pst_file::index2, pst_file::index2_back, pst_build_desc_ptr(), pst_build_id_ptr(), pst_printDptr(), and WARN.

Referenced by main().

Here is the call graph for this function:

int pst_open pst_file pf,
char *  name
 

Definition at line 172 of file libpst.c.

References DEBUG_ENT, DEBUG_INFO, DEBUG_RET, ENC_TYPE, FILE_SIZE_POINTER, INDEX_BACK, INDEX_POINTER, INDEX_TYPE32, INDEX_TYPE32A, INDEX_TYPE64, INDEX_TYPE64A, INDEX_TYPE_OFFSET, LE32_CPU, pst_getAtPos(), pst_getIntAtPos(), SECOND_BACK, SECOND_POINTER, unicode_init(), and WARN.

Referenced by main().

Here is the call graph for this function:

pst_mapi_object* pst_parse_block pst_file pf,
uint64_t  block_id,
pst_id2_ll i2_head
 

Process a low level descriptor block (0x0101, 0xbcec, 0x7cec) into a list of MAPI objects, each of which contains a list of MAPI elements.

Returns:
list of MAPI objects

Definition at line 1253 of file libpst.c.

References varbuf::b, pst_subblock::buf, pst_mapi_object::count_elements, pst_mapi_object::count_objects, pst_mapi_element::data, pst_x_attrib_ll::data, DEBUG_EMAIL, DEBUG_ENT, DEBUG_HEXDUMPC, DEBUG_INDEX, DEBUG_RET, DEBUG_WARN, varbuf::dlen, pst_mapi_object::elements, pst_mapi_element::extra, freeall(), pst_block_offset_pointer::from, pst_subblock::i_offset, pst_table3_rec::id, LE16_CPU, LE32_CPU, pst_x_attrib_ll::map, pst_mapi_element::mapi_id, pst_x_attrib_ll::mytype, pst_block_offset_pointer::needfree, pst_x_attrib_ll::next, pst_mapi_object::next, pst_mapi_object::orig_count, pst_decode_type3(), pst_ff_getID2block(), pst_ff_getIDblock_dec(), pst_free_list(), pst_getBlockOffsetPointer(), pst_id2_ll, pst_mapi_element, pst_mapi_object, pst_subblock::read_size, pst_mapi_element::size, pst_subblocks::subblock_count, pst_subblocks::subs, pst_block_offset_pointer::to, pst_x_attrib_ll::type, pst_mapi_element::type, vb_utf16to8(), vballoc(), vbappend(), vbset(), vbuf, WARN, pst_file::x_head, and xmalloc().

Referenced by pst_load_extended_attributes(), and pst_parse_item().

Here is the call graph for this function:

pst_item* pst_parse_item pst_file pf,
pst_desc_ll d_ptr,
pst_id2_ll m_head
 

Process a high level object from the pst file.

Definition at line 1066 of file libpst.c.

References pst_desc_tree::assoc_tree, pst_item::attach, pst_id2_tree::child, pst_mapi_object::count_objects, DEBUG_EMAIL, DEBUG_ENT, DEBUG_RET, DEBUG_WARN, deep_copy(), pst_desc_tree::desc, pst_item_attach::i_id, pst_index_tree::i_id, pst_id2_tree::id, pst_item_attach::id2_head, pst_item_attach::id2_val, pst_item_attach::next, pst_build_id2(), pst_desc_ll, pst_free_id2(), pst_free_list(), pst_freeItem(), pst_getID2(), pst_id2_ll, pst_item, pst_item_attach, pst_parse_block(), pst_printID2ptr(), pst_process(), and xmalloc().

Referenced by dumper(), main(), process(), and write_embedded_message().

Here is the call graph for this function:

void pst_printDptr pst_file pf,
pst_desc_ll ptr
 

Definition at line 3524 of file libpst.c.

References pst_desc_tree::assoc_tree, pst_desc_tree::child, pst_desc_tree::d_id, DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_desc_tree::desc, pst_index_tree::i_id, pst_desc_tree::next, pst_desc_tree::no_child, and pst_desc_ll.

Referenced by pst_load_index().

void pst_printID2ptr pst_id2_ll ptr  ) 
 

Definition at line 3550 of file libpst.c.

References pst_id2_tree::child, DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_index_tree::i_id, pst_id2_tree::id, pst_id2_tree::id2, pst_id2_tree::next, and pst_id2_ll.

Referenced by pst_load_extended_attributes(), and pst_parse_item().

void pst_printIDptr pst_file pf  ) 
 

Definition at line 3539 of file libpst.c.

References DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_file::i_head, pst_index_tree::i_id, pst_index_tree::next, pst_index_tree::offset, pst_index_ll, and pst_index_tree::size.

int pst_process pst_mapi_object list,
pst_item item,
pst_item_attach attach
 

process the list of MAPI objects produced from parse_block()

Parameters:
list pointer to the list of MAPI objects from parse_block()
item pointer to the high level item to be updated from the list. this item may be an email, contact or other sort of item. the type of this item is generally set by the MAPI elements from the list.
attach pointer to the list of attachment records. If this is non-null, the length of the this attachment list must be at least as large as the length of the MAPI objects list.
Returns:
0 for ok, -1 for error.

Definition at line 1972 of file libpst.c.

References pst_item_contact::account_name, pst_item_contact::address1, pst_item_contact::address1_desc, pst_item_contact::address1_transport, pst_item_contact::address1a, pst_item_contact::address2, pst_item_contact::address2_desc, pst_item_contact::address2_transport, pst_item_contact::address2a, pst_item_contact::address3, pst_item_contact::address3_desc, pst_item_contact::address3_transport, pst_item_contact::address3a, pst_item_appointment::alarm, pst_item_appointment::alarm_filename, pst_item_appointment::alarm_minutes, pst_item_appointment::all_day, pst_item::appointment, pst_item_email::arrival_date, pst_item::ascii_type, pst_item_contact::assistant_name, pst_item_contact::assistant_phone, pst_item_folder::assoc_count, pst_item_email::autoforward, pst_item_email::bcc_address, pst_item_contact::billing_information, pst_item_contact::birthday, pst_item::body, pst_item::body_charset, pst_item_contact::business_address, pst_item_contact::business_city, pst_item_contact::business_country, pst_item_contact::business_fax, pst_item_contact::business_homepage, pst_item_contact::business_phone, pst_item_contact::business_phone2, pst_item_contact::business_po_box, pst_item_contact::business_postal_code, pst_item_contact::business_state, pst_item_contact::business_street, pst_item_contact::callback_phone, pst_item_contact::car_phone, pst_item_email::cc_address, pst_item::comment, pst_item_contact::common_name, pst_item_message_store::common_view_folder, pst_item_contact::company_main_phone, pst_item_contact::company_name, pst_item_contact::computer_name, pst_item::contact, pst_item_email::conversation_index, pst_item_email::conversion_prohibited, pst_mapi_object::count_elements, pst_item::create_date, pst_item_contact::customer_id, pst_binary::data, pst_item_attach::data, pst_mapi_element::data, DEBUG_EMAIL, DEBUG_EMAIL_HEXPRINT, DEBUG_ENT, DEBUG_HEXDUMP, DEBUG_RET, pst_item_contact::def_postal_address, pst_item_message_store::default_outbox_folder, pst_item_email::delete_after_submit, pst_item_message_store::deleted_items_folder, pst_item_email::delivery_report, pst_item_contact::department, pst_item_journal::description, pst_item_contact::display_name_prefix, pst_mapi_object::elements, pst_item::email, pst_item_email::encrypted_body, pst_item_email::encrypted_htmlbody, pst_item_journal::end, pst_item_appointment::end, pst_mapi_element::extra, pst_item::extra_fields, pst_item_extra_field::field_name, pst_item::file_as, pst_item_attach::filename1, pst_item_attach::filename2, fileTimeToAscii(), pst_item_contact::first_name, pst_item::flags, pst_item::folder, pst_item_contact::followup, pst_item_contact::free_busy_address, pst_item_contact::ftp_site, pst_item_contact::fullname, pst_item_contact::gender, pst_item_contact::gov_id, pst_item_email::header, pst_item_contact::hobbies, pst_item_contact::home_address, pst_item_contact::home_city, pst_item_contact::home_country, pst_item_contact::home_fax, pst_item_contact::home_phone, pst_item_contact::home_phone2, pst_item_contact::home_po_box, pst_item_contact::home_postal_code, pst_item_contact::home_state, pst_item_contact::home_street, pst_item_email::htmlbody, pst_item_attach::id2_val, pst_item_email::importance, pst_item_email::in_reply_to, pst_item_contact::initials, pst_item::internet_cpid, pst_string::is_utf8, pst_item_contact::isdn_phone, pst_item_folder::item_count, pst_item_contact::job_title, pst_item::journal, pst_item_contact::keyword, pst_item_appointment::label, pst_item_contact::language, LE32_CPU, LIST_COPY_APPT_BOOL, LIST_COPY_APPT_ENUM, LIST_COPY_APPT_INT32, LIST_COPY_APPT_STR, LIST_COPY_APPT_TIME, LIST_COPY_BIN, LIST_COPY_BOOL, LIST_COPY_CONTACT_BOOL, LIST_COPY_CONTACT_ENUM16, LIST_COPY_CONTACT_STR, LIST_COPY_CONTACT_TIME, LIST_COPY_CSTR, LIST_COPY_EMAIL_BIN, LIST_COPY_EMAIL_BOOL, LIST_COPY_EMAIL_ENTRYID, LIST_COPY_EMAIL_ENUM, LIST_COPY_EMAIL_INT32, LIST_COPY_EMAIL_STR, LIST_COPY_EMAIL_TIME, LIST_COPY_ENUM, LIST_COPY_FOLDER_INT32, LIST_COPY_INT32, LIST_COPY_JOURNAL_STR, LIST_COPY_JOURNAL_TIME, LIST_COPY_STORE_ENTRYID, LIST_COPY_STORE_INT32, LIST_COPY_STR, LIST_COPY_TIME, pst_item_appointment::location, pst_item_contact::location, pst_item_contact::mail_permission, MALLOC_FOLDER, pst_item_contact::manager_name, pst_mapi_element::mapi_id, pst_item_email::message_cc_me, pst_item::message_codepage, pst_item_email::message_recip_me, pst_item::message_size, pst_item::message_store, pst_item_email::message_to_me, pst_item_email::messageid, pst_item_attach::method, pst_item_contact::middle_name, pst_item_contact::mileage, pst_item_attach::mimetype, pst_item_contact::mobile_phone, pst_item::modify_date, pst_item_email::ndr_diag_code, pst_item_email::ndr_reason_code, pst_item_email::ndr_status_code, pst_item_attach::next, pst_mapi_object::next, pst_item_extra_field::next, pst_item_contact::nickname, NULL_CHECK, pst_item_contact::office_loc, pst_item_contact::org_id, pst_item_email::original_bcc, pst_item_email::original_cc, pst_item_email::original_sensitivity, pst_item_email::original_to, pst_item_contact::other_address, pst_item_contact::other_city, pst_item_contact::other_country, pst_item_contact::other_phone, pst_item_contact::other_po_box, pst_item_contact::other_postal_code, pst_item_contact::other_state, pst_item_contact::other_street, pst_item_email::outlook_recipient, pst_item_email::outlook_recipient2, pst_item_email::outlook_recipient_name, pst_item_email::outlook_sender, pst_item_email::outlook_sender2, pst_item_email::outlook_sender_name, pst_item::outlook_version, pst_item_contact::pager_phone, pst_item_contact::personal_homepage, pst_item_attach::position, pst_item::predecessor_change, pst_item_contact::pref_name, pst_item_contact::primary_fax, pst_item_contact::primary_phone, pst_item_email::priority, pst_item::private_member, pst_item_email::processed_subject, pst_item_contact::profession, PST_ATTRIB_HEADER, pst_item_extra_field, pst_stricmp(), pst_strincmp(), pst_item_message_store::pwd_chksum, pst_item_contact::radio_phone, pst_item_email::read_receipt, pst_item_email::recip2_access, pst_item_email::recip2_address, pst_item_email::recip_access, pst_item_email::recip_address, pst_item::record_key, pst_item_appointment::recurrence, pst_item_appointment::recurrence_end, pst_item_appointment::recurrence_start, pst_item_appointment::recurrence_type, pst_item_appointment::reminder, pst_item_email::reply_requested, pst_item_email::reply_to, pst_item_email::report_text, pst_item_email::report_time, pst_item::response_requested, pst_item_email::return_path_address, pst_item_contact::rich_text, pst_item_email::rtf_body_char_count, pst_item_email::rtf_body_crc, pst_item_email::rtf_body_tag, pst_item_email::rtf_compressed, pst_item_email::rtf_in_sync, pst_item_email::rtf_ws_prefix_count, pst_item_email::rtf_ws_trailing_count, pst_item_message_store::search_root_folder, pst_item_email::sender2_access, pst_item_email::sender2_address, pst_item_email::sender_access, pst_item_email::sender_address, pst_item_email::sensitivity, pst_item_email::sent_date, pst_item_message_store::sent_items_folder, pst_item_email::sentmail_folder, pst_item_email::sentto_address, pst_item_attach::sequence, pst_item_appointment::showas, pst_binary::size, pst_mapi_element::size, pst_item_contact::spouse_name, pst_item_journal::start, pst_item_appointment::start, pst_string::str, pst_item_folder::subfolder, pst_item::subject, pst_item_contact::suffix, pst_item_email::supplementary_info, pst_item_contact::surname, pst_item_contact::telex, pst_item_appointment::timezonestring, pst_item_message_store::top_of_folder, pst_item_message_store::top_of_personal_folder, pst_item_contact::transmittable_display_name, pst_item_contact::ttytdd_phone, pst_item_journal::type, pst_item::type, pst_mapi_element::type, pst_item_folder::unseen_item_count, pst_item_message_store::user_views_folder, pst_item_message_store::valid_mask, pst_item_extra_field::value, pst_item_contact::wedding_anniversary, pst_item_contact::work_address_city, pst_item_contact::work_address_country, pst_item_contact::work_address_postalcode, pst_item_contact::work_address_postofficebox, pst_item_contact::work_address_state, pst_item_contact::work_address_street, and xmalloc().

Referenced by pst_parse_item().

Here is the call graph for this function:

size_t pst_read_block_size pst_file pf,
int64_t  offset,
size_t  size,
char **  buf
 

Read a block of data from file into memory.

Parameters:
pf PST file
offset offset in the pst file of the data
size size of the block to be read
buf reference to pointer to buffer. If this pointer is non-NULL, it will first be free()d
Returns:
size of block read into memory

Definition at line 3570 of file libpst.c.

References DEBUG_ENT, DEBUG_READ, DEBUG_RET, DEBUG_WARN, pst_file::fp, pst_getAtPos(), and xmalloc().

Referenced by pst_build_desc_ptr(), pst_build_id2(), pst_build_id_ptr(), and pst_ff_getIDblock().

Here is the call graph for this function:

char* pst_rfc2425_datetime_format FILETIME ft  ) 
 

Definition at line 4100 of file libpst.c.

References DEBUG_ENT, DEBUG_INFO, DEBUG_RET, and fileTimeToStructTM().

Referenced by write_vcard().

Here is the call graph for this function:

char* pst_rfc2426_escape char *  str  ) 
 

Definition at line 4032 of file libpst.c.

References DEBUG_ENT, DEBUG_RET, and pst_chr_count().

Referenced by process(), write_appointment(), and write_vcard().

Here is the call graph for this function:

char* pst_rfc2445_datetime_format FILETIME ft  ) 
 

Definition at line 4113 of file libpst.c.

References DEBUG_ENT, DEBUG_INFO, DEBUG_RET, and fileTimeToStructTM().

Referenced by process(), and write_appointment().

Here is the call graph for this function:

int pst_stricmp char *  a,
char *  b
 

Definition at line 3968 of file libpst.c.

Referenced by pst_process().

int pst_strincmp char *  a,
char *  b,
size_t  x
 

Definition at line 3983 of file libpst.c.

Referenced by pst_process().

char* pst_wide_to_single char *  wt,
size_t  size
 

Definition at line 4014 of file libpst.c.

References DEBUG_ENT, DEBUG_RET, and xmalloc().

Referenced by pst_load_extended_attributes().

Here is the call graph for this function:


Generated on Thu Mar 19 16:39:41 2009 for 'LibPst' by  doxygen 1.3.9.1