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_entryid
struct  pst_index_ll
struct  pst_id2_tree
struct  pst_desc_tree
struct  pst_string
 The string is either utf8 encoded, or it is in the code page specified by the containing mapi object. More...
struct  pst_binary
 a simple wrapper for binary blobs More...
struct  pst_item_email
 This contains the email related mapi elements. More...
struct  pst_item_folder
 This contains the folder related mapi elements. More...
struct  pst_item_message_store
 This contains the message store related mapi elements. More...
struct  pst_item_contact
 This contains the contact related mapi elements. More...
struct  pst_item_attach
 This contains the attachment related mapi elements. More...
struct  pst_item_extra_field
 linked list of extra header fields More...
struct  pst_item_journal
 This contains the journal related mapi elements. More...
struct  pst_recurrence
 This contains the recurrence data separated into fields. More...
struct  pst_item_appointment
 This contains the appointment related mapi elements. More...
struct  pst_item
 This contains the common mapi elements, and pointers to structures for each major mapi item type. More...
struct  pst_x_attrib_ll
 Linked list of extended attributes. More...
struct  pst_block_recorder
 this is only used for internal debugging More...
struct  pst_file

Defines

#define PST_TYPE_NOTE   1
#define PST_TYPE_SCHEDULE   2
#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_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
#define PST_ATTACH_NONE   0
#define PST_ATTACH_BY_VALUE   1
#define PST_ATTACH_BY_REF   2
#define PST_ATTACH_BY_REF_RESOLV   3
#define PST_ATTACH_BY_REF_ONLY   4
#define PST_ATTACH_EMBEDDED   5
#define PST_ATTACH_OLE   6

Typedefs

typedef pst_entryid pst_entryid
typedef pst_index_ll pst_index_ll
typedef pst_id2_tree pst_id2_tree
typedef pst_desc_tree pst_desc_tree
typedef pst_string pst_string
 The string is either utf8 encoded, or it is in the code page specified by the containing mapi object.
typedef pst_binary pst_binary
 a simple wrapper for binary blobs
typedef pst_item_email pst_item_email
 This contains the email related mapi elements.
typedef pst_item_folder pst_item_folder
 This contains the folder related mapi elements.
typedef pst_item_message_store pst_item_message_store
 This contains the message store related mapi elements.
typedef pst_item_contact pst_item_contact
 This contains the contact related mapi elements.
typedef pst_item_attach pst_item_attach
 This contains the attachment related mapi elements.
typedef pst_item_extra_field pst_item_extra_field
 linked list of extra header fields
typedef pst_item_journal pst_item_journal
 This contains the journal related mapi elements.
typedef pst_recurrence pst_recurrence
 This contains the recurrence data separated into fields.
typedef pst_item_appointment pst_item_appointment
 This contains the appointment related mapi elements.
typedef pst_item pst_item
 This contains the common mapi elements, and pointers to structures for each major mapi item type.
typedef pst_x_attrib_ll pst_x_attrib_ll
 Linked list of extended attributes.
typedef pst_block_recorder pst_block_recorder
 this is only used for internal debugging
typedef pst_file pst_file

Functions

int pst_open (pst_file *pf, const char *name)
 Open a pst file.
int pst_reopen (pst_file *pf)
 Reopen the pst file after a fork.
int pst_load_index (pst_file *pf)
 Load the index entries from the pst file.
int pst_load_extended_attributes (pst_file *pf)
 Load the extended attribute mapping table from the pst file.
int pst_close (pst_file *pf)
 Close a pst file.
pst_desc_treepst_getTopOfFolders (pst_file *pf, const pst_item *root)
 Get the top of folders descriptor tree.
pst_binary pst_attach_to_mem (pst_file *pf, pst_item_attach *attach)
 Assemble the binary attachment into a single buffer.
size_t pst_attach_to_file (pst_file *pf, pst_item_attach *attach, FILE *fp)
 Write a binary attachment to a file.
size_t pst_attach_to_file_base64 (pst_file *pf, pst_item_attach *attach, FILE *fp)
 Write a binary attachment base64 encoded to a file.
pst_desc_treepst_getNextDptr (pst_desc_tree *d)
 Walk the descriptor tree.
pst_itempst_parse_item (pst_file *pf, pst_desc_tree *d_ptr, pst_id2_tree *m_head)
 Assemble a mapi object from a descriptor pointer.
void pst_freeItem (pst_item *item)
 Free the item returned by pst_parse_item().
pst_index_llpst_getID (pst_file *pf, uint64_t i_id)
 Lookup the i_id in the index linked list, and return a pointer to the element.
size_t pst_ff_getIDblock_dec (pst_file *pf, uint64_t i_id, char **buf)
 Get an ID block from the file using pst_ff_getIDblock() and decrypt if necessary.
size_t pst_fwrite (const void *ptr, size_t size, size_t nmemb, FILE *stream)
 fwrite with checking for null pointer.
char * pst_rfc2426_escape (char *str, char **result, size_t *resultlen)
 Add any necessary escape characters for rfc2426 vcard format.
char * pst_rfc2425_datetime_format (const FILETIME *ft, int buflen, char *result)
 Convert a FILETIME into rfc2425 date/time format 1953-10-15T23:10:00Z which is the same as one of the forms in the ISO3601 standard.
char * pst_rfc2445_datetime_format (const FILETIME *ft, int buflen, char *result)
 Convert a FILETIME into rfc2445 date/time format 19531015T231000Z.
char * pst_rfc2445_datetime_format_now (int buflen, char *result)
 Convert the current time rfc2445 date/time format 19531015T231000Z.
const char * pst_default_charset (pst_item *item, int buflen, char *result)
 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.
pst_recurrencepst_convert_recurrence (pst_item_appointment *appt)
 Decode raw recurrence data into a better structure.
void pst_free_recurrence (pst_recurrence *r)
 Free a recurrence structure.


Define Documentation

#define PST_APP_LABEL_ANNIVERSARY   9
 

Definition at line 64 of file libpst.h.

#define PST_APP_LABEL_BIRTHDAY   8
 

Definition at line 63 of file libpst.h.

#define PST_APP_LABEL_BUSINESS   2
 

Definition at line 57 of file libpst.h.

#define PST_APP_LABEL_IMPORTANT   1
 

Definition at line 56 of file libpst.h.

#define PST_APP_LABEL_MUST_ATTEND   5
 

Definition at line 60 of file libpst.h.

#define PST_APP_LABEL_NEEDS_PREP   7
 

Definition at line 62 of file libpst.h.

#define PST_APP_LABEL_NONE   0
 

Definition at line 55 of file libpst.h.

#define PST_APP_LABEL_PERSONAL   3
 

Definition at line 58 of file libpst.h.

#define PST_APP_LABEL_PHONE_CALL   10
 

Definition at line 65 of file libpst.h.

#define PST_APP_LABEL_TRAVEL_REQ   6
 

Definition at line 61 of file libpst.h.

#define PST_APP_LABEL_VACATION   4
 

Definition at line 59 of file libpst.h.

#define PST_APP_RECUR_DAILY   1
 

Definition at line 69 of file libpst.h.

#define PST_APP_RECUR_MONTHLY   3
 

Definition at line 71 of file libpst.h.

#define PST_APP_RECUR_NONE   0
 

Definition at line 68 of file libpst.h.

#define PST_APP_RECUR_WEEKLY   2
 

Definition at line 70 of file libpst.h.

#define PST_APP_RECUR_YEARLY   4
 

Definition at line 72 of file libpst.h.

#define PST_ATTACH_BY_REF   2
 

Definition at line 77 of file libpst.h.

#define PST_ATTACH_BY_REF_ONLY   4
 

Definition at line 79 of file libpst.h.

#define PST_ATTACH_BY_REF_RESOLV   3
 

Definition at line 78 of file libpst.h.

#define PST_ATTACH_BY_VALUE   1
 

Definition at line 76 of file libpst.h.

#define PST_ATTACH_EMBEDDED   5
 

Definition at line 80 of file libpst.h.

#define PST_ATTACH_NONE   0
 

Definition at line 75 of file libpst.h.

#define PST_ATTACH_OLE   6
 

Definition at line 81 of file libpst.h.

#define PST_ATTRIB_HEADER   -1
 

Definition at line 46 of file libpst.h.

#define PST_COMP_ENCRYPT   1
 

Definition at line 38 of file libpst.h.

#define PST_ENCRYPT   2
 

Definition at line 39 of file libpst.h.

#define PST_FREEBUSY_BUSY   2
 

Definition at line 51 of file libpst.h.

#define PST_FREEBUSY_FREE   0
 

Definition at line 49 of file libpst.h.

#define PST_FREEBUSY_OUT_OF_OFFICE   3
 

Definition at line 52 of file libpst.h.

#define PST_FREEBUSY_TENTATIVE   1
 

Definition at line 50 of file libpst.h.

#define PST_MAP_ATTRIB   (uint32_t)1
 

Definition at line 42 of file libpst.h.

#define PST_MAP_HEADER   (uint32_t)2
 

Definition at line 43 of file libpst.h.

#define PST_NO_ENCRYPT   0
 

Definition at line 37 of file libpst.h.

#define PST_TYPE_APPOINTMENT   8
 

Definition at line 28 of file libpst.h.

#define PST_TYPE_CONTACT   9
 

Definition at line 29 of file libpst.h.

#define PST_TYPE_JOURNAL   10
 

Definition at line 30 of file libpst.h.

#define PST_TYPE_NOTE   1
 

Definition at line 26 of file libpst.h.

#define PST_TYPE_OTHER   13
 

Definition at line 33 of file libpst.h.

#define PST_TYPE_REPORT   14
 

Definition at line 34 of file libpst.h.

#define PST_TYPE_SCHEDULE   2
 

Definition at line 27 of file libpst.h.

#define PST_TYPE_STICKYNOTE   11
 

Definition at line 31 of file libpst.h.

#define PST_TYPE_TASK   12
 

Definition at line 32 of file libpst.h.


Typedef Documentation

typedef struct pst_binary pst_binary
 

a simple wrapper for binary blobs

typedef struct pst_block_recorder pst_block_recorder
 

this is only used for internal debugging

typedef struct pst_desc_tree pst_desc_tree
 

Referenced by dumper().

typedef struct pst_entryid pst_entryid
 

typedef struct pst_file pst_file
 

typedef struct pst_id2_tree pst_id2_tree
 

typedef struct pst_index_ll pst_index_ll
 

typedef struct pst_item pst_item
 

This contains the common mapi elements, and pointers to structures for each major mapi item type.

It represents a complete mapi object.

Referenced by pst_parse_item().

typedef struct pst_item_appointment pst_item_appointment
 

This contains the appointment related mapi elements.

typedef struct pst_item_attach pst_item_attach
 

This contains the attachment related mapi elements.

Referenced by pst_parse_item().

typedef struct pst_item_contact pst_item_contact
 

This contains the contact related mapi elements.

typedef struct pst_item_email pst_item_email
 

This contains the email related mapi elements.

typedef struct pst_item_extra_field pst_item_extra_field
 

linked list of extra header fields

typedef struct pst_item_folder pst_item_folder
 

This contains the folder related mapi elements.

typedef struct pst_item_journal pst_item_journal
 

This contains the journal related mapi elements.

typedef struct pst_item_message_store pst_item_message_store
 

This contains the message store related mapi elements.

typedef struct pst_recurrence pst_recurrence
 

This contains the recurrence data separated into fields.

http://www.geocities.com/cainrandom/dev/MAPIRecurrence.html

typedef struct pst_string pst_string
 

The string is either utf8 encoded, or it is in the code page specified by the containing mapi object.

It can be forced into utf8 by calling pst_convert_utf8() or pst_convert_utf8_null().

typedef struct pst_x_attrib_ll pst_x_attrib_ll
 

Linked list of extended attributes.

This is used to convert mapi_id values in the pst file into cannonical mapi_id values to be used in this code. This list is kept in sorted order, where the key is the 'map' field. Some mapi_id values are converted to cannonical mapi_id values (PST_MAP_ATTRIB), and others are converted to a string (PST_ATTRIB_HEADER).


Function Documentation

size_t pst_attach_to_file pst_file pf,
pst_item_attach attach,
FILE *  fp
 

Write a binary attachment to a file.

Parameters:
pf pointer to the pst_file structure setup by pst_open().
attach pointer to the attachment record
fp pointer to an open FILE.

Definition at line 566 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(), 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
 

Write a binary attachment base64 encoded to a file.

Parameters:
pf pointer to the pst_file structure setup by pst_open().
attach pointer to the attachment record
fp pointer to an open FILE.

Definition at line 590 of file libpst.c.

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

Here is the call graph for this function:

pst_binary pst_attach_to_mem pst_file pf,
pst_item_attach attach
 

Assemble the binary attachment into a single buffer.

Parameters:
pf pointer to the pst_file structure setup by pst_open().
attach pointer to the attachment record
Returns:
structure containing size of and pointer to the buffer. the caller must free this buffer.

Definition at line 542 of file libpst.c.

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

Here is the call graph for this function:

int pst_close pst_file pf  ) 
 

Close a pst file.

Parameters:
pf pointer to the pst_file structure setup by pst_open().

Definition at line 380 of file libpst.c.

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

Referenced by main().

Here is the call graph for this function:

pst_recurrence* pst_convert_recurrence pst_item_appointment appt  ) 
 

Decode raw recurrence data into a better structure.

Parameters:
appt pointer to appointment structure
Returns:
pointer to decoded recurrence structure that must be free'd by the caller.

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 containing mapi item
str pointer to the mapi string of interest

Referenced by create_enter_dir(), and process().

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 containing mapi item
str pointer to the mapi string of interest

Referenced by write_normal_email().

const char* pst_default_charset pst_item item,
int  buflen,
char *  result
 

Get the default character set for this item.

This is used to find the charset for pst_string elements that are not already in utf8 encoding.

Parameters:
item pointer to the mapi item of interest
[in] buflen length of the output buffer
[out] result pointer to output buffer, must be at least 30 bytes
Returns:
default character set as a string useable by iconv()

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

Get an ID block from the file using pst_ff_getIDblock() and decrypt if necessary.

Parameters:
pf pointer to the pst_file structure setup by pst_open().
i_id ID of block to retrieve
buf reference to pointer to buffer that will contain the data block. If this pointer is non-NULL, it will first be free()d.
Returns:
Size of block read into memory

Referenced by dumper(), and main().

void pst_free_recurrence pst_recurrence r  ) 
 

Free a recurrence structure.

Parameters:
r input pointer to be freed

void pst_freeItem pst_item item  ) 
 

Free the item returned by pst_parse_item().

Parameters:
item pointer to item returned from pst_parse_item().

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

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

fwrite with checking for null pointer.

Parameters:
ptr pointer to the buffer
size size of each item
nmemb number of items
stream output file
Returns:
number of bytes written, zero if ptr==NULL

Referenced by main(), print_pdf(), pst_attach_to_file(), and pst_attach_to_file_base64().

pst_index_ll* pst_getID pst_file pf,
uint64_t  i_id
 

Lookup the i_id in the index linked list, and return a pointer to the element.

Parameters:
pf pointer to the pst_file structure setup by pst_open().
i_id key for the index linked list
Returns:
pointer to the element, or NULL if not found.

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

pst_desc_tree* pst_getNextDptr pst_desc_tree d  ) 
 

Walk the descriptor tree.

Parameters:
d pointer to the current item in the descriptor tree.
Returns:
pointer to the next item in the descriptor tree.

Definition at line 640 of file libpst.c.

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

Referenced by dumper().

pst_desc_tree* pst_getTopOfFolders pst_file pf,
const pst_item root
 

Get the top of folders descriptor tree.

This is the main descriptor tree that needs to be walked to look at every item in the pst file.

Parameters:
pf pointer to the pst_file structure setup by pst_open().
root root item, which can be obtained by pst_parse_item(pf, pf->d_head, NULL).

Definition at line 510 of file libpst.c.

References pst_desc_tree::assoc_tree, pst_desc_tree::d_id, DEBUG_ENT, DEBUG_INFO, DEBUG_RET, pst_desc_tree::desc, pst_entryid::id, pst_item::message_store, pst_desc_tree::parent_d_id, pst_getDptr(), pst_malloc(), record_descriptor(), and pst_item_message_store::top_of_personal_folder.

Referenced by main().

Here is the call graph for this function:

int pst_load_extended_attributes pst_file pf  ) 
 

Load the extended attribute mapping table from the pst file.

Returns:
true(1) or false(0) to indicate whether the extended attributes have been loaded

Definition at line 664 of file libpst.c.

References pst_desc_tree::assoc_tree, pst_mapi_object::count_elements, pst_mapi_element::data, DEBUG_ENT, DEBUG_HEXDUMPC, DEBUG_INFO, DEBUG_RET, DEBUG_WARN, pst_desc_tree::desc, pst_mapi_object::elements, pst_x_attrib::extended, pst_index_ll::i_id, LE32_CPU, pst_x_attrib_ll::map, pst_x_attrib::map, pst_mapi_element::mapi_id, pst_x_attrib_ll::next, pst_build_id2(), pst_free_id2(), pst_free_list(), pst_getDptr(), PST_LE_GET_UINT16, PST_LE_GET_UINT32, pst_malloc(), pst_parse_block(), pst_printID2ptr(), pst_wide_to_single(), pst_mapi_element::size, pst_x_attrib::type, pst_mapi_element::type, and pst_file::x_head.

Referenced by main().

Here is the call graph for this function:

int pst_load_index pst_file pf  ) 
 

Load the index entries from the pst file.

This loads both the i_id linked list, and the d_id tree, and should normally be the first call after pst_open().

Parameters:
pf pointer to the pst_file structure setup by pst_open().

Definition at line 618 of file libpst.c.

References pst_file::d_head, DEBUG_ENT, DEBUG_INFO, DEBUG_RET, DEBUG_WARN, pst_file::index1, pst_file::index1_back, pst_file::index2, pst_file::index2_back, pst_build_desc_ptr(), pst_build_id_ptr(), and pst_printDptr().

Referenced by main().

Here is the call graph for this function:

int pst_open pst_file pf,
const char *  name
 

Open a pst file.

Parameters:
pf pointer to uninitialized pst_file structure. This structure will be filled in by this function.
name name of the file, suitable for fopen().
Returns:
0 if ok, -1 if error

Definition at line 293 of file libpst.c.

References DEBUG_ENT, DEBUG_INFO, DEBUG_RET, DEBUG_WARN, 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(), pst_malloc(), pst_unicode_init(), SECOND_BACK, SECOND_POINTER, and WARN.

Referenced by main().

Here is the call graph for this function:

pst_item* pst_parse_item pst_file pf,
pst_desc_tree d_ptr,
pst_id2_tree m_head
 

Assemble a mapi object from a descriptor pointer.

append (buf,z) data to the output destination (h,size)

Parameters:
h specifies the output destination (buffer, file, encoding)
size number of bytes of data already sent to h
buf reference to a pointer to the buffer to be appended to the destination
z number of bytes in buf
Returns:
updated size of the output, buffer pointer possibly reallocated

finish cleanup for base64 encoding to a file with extra bytes left over

Parameters:
h specifies the output destination (buffer, file, encoding)
size number of bytes of data already sent to h
Returns:
updated size of the output

Convert a code page integer into a string suitable for iconv()

Parameters:
cp the code page integer used in the pst file
[in] buflen length of the output buffer
[out] result pointer to output buffer, must be at least 30 bytes
Returns:
pointer to a static buffer holding the string representation of the equivalent iconv character set

Get the default character set for this item. This is used to find the charset for pst_string elements that are not already in utf8 encoding.

Parameters:
item pointer to the mapi item of interest
[in] buflen length of the output buffer
[out] result pointer to output buffer, must be at least 30 bytes
Returns:
default character set as a string useable by iconv()

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

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

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

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

Decode raw recurrence data into a better structure.

Parameters:
appt pointer to appointment structure
Returns:
pointer to decoded recurrence structure that must be free'd by the caller.

Free a recurrence structure.

Parameters:
r input pointer to be freed

Definition at line 1209 of file libpst.c.

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

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

Here is the call graph for this function:

int pst_reopen pst_file pf  ) 
 

Reopen the pst file after a fork.

Parameters:
pf pointer to the pst_file structure setup by pst_open().
Returns:
0 if ok, -1 if error

Definition at line 370 of file libpst.c.

References pst_file::cwd, pst_file::fname, and pst_file::fp.

Referenced by try_fork().

char* pst_rfc2425_datetime_format const FILETIME ft,
int  buflen,
char *  result
 

Convert a FILETIME into rfc2425 date/time format 1953-10-15T23:10:00Z which is the same as one of the forms in the ISO3601 standard.

Parameters:
[in] ft time to be converted
[in] buflen length of the output buffer
[out] result pointer to output buffer, must be at least 30 bytes
Returns:
time in rfc2425 format

char* pst_rfc2426_escape char *  str,
char **  result,
size_t *  resultlen
 

Add any necessary escape characters for rfc2426 vcard format.

Parameters:
[in] str pointer to input string
[in,out] result pointer to a char* pointer that may be realloc'ed if needed
[in,out] resultlen size of the result buffer
Returns:
pointer to output string, either the input pointer if there are no characters that need escapes, or a pointer to a possibly realloc'ed result buffer.

Referenced by process().

char* pst_rfc2445_datetime_format const FILETIME ft,
int  buflen,
char *  result
 

Convert a FILETIME into rfc2445 date/time format 19531015T231000Z.

Parameters:
[in] ft time to be converted
[in] buflen length of the output buffer
[out] result pointer to output buffer, must be at least 30 bytes
Returns:
time in rfc2445 format

Referenced by process().

char* pst_rfc2445_datetime_format_now int  buflen,
char *  result
 

Convert the current time rfc2445 date/time format 19531015T231000Z.

Parameters:
[in] buflen length of the output buffer
[out] result pointer to output buffer, must be at least 30 bytes
Returns:
time in rfc2445 format


Generated on Sat Sep 12 13:37:46 2009 for 'LibPst' by  doxygen 1.3.9.1