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

readpst.c File Reference

#include "define.h"
#include "libstrfunc.h"
#include "libpst.h"
#include "common.h"
#include "timeconv.h"
#include "lzfu.h"

Include dependency graph for readpst.c:

Include dependency graph

Go to the source code of this file.

Data Structures

struct  file_ll

Defines

#define OUTPUT_TEMPLATE   "%s"
#define OUTPUT_KMAIL_DIR_TEMPLATE   ".%s.directory"
#define KMAIL_INDEX   ".%s.index"
#define SEP_MAIL_FILE_TEMPLATE   "%i"
#define C_TIME_SIZE   500
#define MODE_NORMAL   0
#define MODE_KMAIL   1
#define MODE_RECURSE   2
#define MODE_SEPARATE   3
#define MODE_DECSPEW   4
#define OUTPUT_NORMAL   0
#define OUTPUT_QUIET   1
#define MIME_TYPE_DEFAULT   "application/octet-stream"
#define CMODE_VCARD   0
#define CMODE_LIST   1
#define DMODE_EXCLUDE   0
#define DMODE_INCLUDE   1
#define RTF_ATTACH_NAME   "rtf-body.rtf"
#define RTF_ATTACH_TYPE   "application/rtf"

Functions

void process (pst_item *outeritem, pst_desc_ll *d_ptr)
void write_email_body (FILE *f, char *body)
char * removeCR (char *c)
int usage ()
int version ()
char * mk_kmail_dir (char *)
int close_kmail_dir ()
char * mk_recurse_dir (char *)
int close_recurse_dir ()
char * mk_separate_dir (char *dir)
int close_separate_dir ()
int mk_separate_file (struct file_ll *f)
char * my_stristr (char *haystack, char *needle)
void check_filename (char *fname)
char * skip_header_prologue (char *headers)
void write_separate_attachment (char f_name[], pst_item_attach *current_attach, int attach_num, pst_file *pst)
void write_inline_attachment (FILE *f_output, pst_item_attach *current_attach, char boundary[], pst_file *pst)
void write_normal_email (FILE *f_output, char f_name[], pst_item *item, int mode, int mode_MH, pst_file *pst, int save_rtf)
void write_vcard (FILE *f_output, pst_item_contact *contact, char comment[])
void write_appointment (FILE *f_output, pst_item_appointment *appointment, pst_item_email *email, FILETIME *create_date, FILETIME *modify_date)
void create_enter_dir (struct file_ll *f, pst_item *item)
void close_enter_dir (struct file_ll *f)
int main (int argc, char **argv)

Variables

char * prog_name
char * output_dir = "."
char * kmail_chdir = NULL
int mode = 0
int mode_MH = 0
int output_mode = 0
int contact_mode = 0
int deleted_mode = 0
int overwrite = 0
int save_rtf_body = 1
pst_file pstfile


Define Documentation

#define C_TIME_SIZE   500
 

Definition at line 20 of file readpst.c.

Referenced by write_normal_email().

#define CMODE_LIST   1
 

Definition at line 92 of file readpst.c.

#define CMODE_VCARD   0
 

Definition at line 91 of file readpst.c.

#define DMODE_EXCLUDE   0
 

Definition at line 95 of file readpst.c.

#define DMODE_INCLUDE   1
 

Definition at line 96 of file readpst.c.

#define KMAIL_INDEX   ".%s.index"
 

Definition at line 16 of file readpst.c.

Referenced by mk_kmail_dir().

#define MIME_TYPE_DEFAULT   "application/octet-stream"
 

Definition at line 88 of file readpst.c.

Referenced by write_inline_attachment().

#define MODE_DECSPEW   4
 

Definition at line 78 of file readpst.c.

#define MODE_KMAIL   1
 

Definition at line 66 of file readpst.c.

#define MODE_NORMAL   0
 

Definition at line 62 of file readpst.c.

#define MODE_RECURSE   2
 

Definition at line 70 of file readpst.c.

#define MODE_SEPARATE   3
 

Definition at line 75 of file readpst.c.

Referenced by write_normal_email().

#define OUTPUT_KMAIL_DIR_TEMPLATE   ".%s.directory"
 

Definition at line 15 of file readpst.c.

Referenced by mk_kmail_dir().

#define OUTPUT_NORMAL   0
 

Definition at line 82 of file readpst.c.

#define OUTPUT_QUIET   1
 

Definition at line 85 of file readpst.c.

#define OUTPUT_TEMPLATE   "%s"
 

Definition at line 14 of file readpst.c.

Referenced by mk_kmail_dir().

#define RTF_ATTACH_NAME   "rtf-body.rtf"
 

Definition at line 100 of file readpst.c.

Referenced by write_normal_email().

#define RTF_ATTACH_TYPE   "application/rtf"
 

Definition at line 102 of file readpst.c.

Referenced by write_normal_email().

#define SEP_MAIL_FILE_TEMPLATE   "%i"
 

Definition at line 17 of file readpst.c.

Referenced by mk_separate_dir(), and mk_separate_file().


Function Documentation

void check_filename char *  fname  ) 
 

Referenced by mk_kmail_dir(), mk_recurse_dir(), mk_separate_dir(), mk_separate_file(), and write_separate_attachment().

void close_enter_dir struct file_ll f  ) 
 

Definition at line 51 of file lspst.c.

References file_ll::dname.

Referenced by process().

int close_kmail_dir  ) 
 

Definition at line 499 of file readpst.c.

References DEBUG_ENT, DEBUG_RET, DIE, and kmail_chdir.

int close_recurse_dir  ) 
 

Definition at line 542 of file readpst.c.

References DEBUG_ENT, DEBUG_RET, and DIE.

int close_separate_dir  ) 
 

Definition at line 612 of file readpst.c.

References DEBUG_ENT, DEBUG_RET, and DIE.

void create_enter_dir struct file_ll f,
pst_item item
 

Definition at line 40 of file lspst.c.

References file_ll::dname, pst_item_folder::email_count, file_ll::email_count, pst_item::file_as, pst_item::folder, file_ll::skip_count, file_ll::stored_count, pst_item::type, file_ll::type, and xmalloc().

Referenced by process().

Here is the call graph for this function:

int main int  argc,
char **  argv
 

Definition at line 221 of file readpst.c.

References pst_desc_tree::child, contact_mode, pst_file::d_head, DEBUG_ENT, DEBUG_INIT, DEBUG_MAIN, DEBUG_REGISTER_CLOSE, DEBUG_RET, deleted_mode, DIE, pst_item::file_as, getopt(), pst_item::message_store, mode, mode_MH, optarg, output_dir, output_mode, overwrite, process(), prog_name, pst_close(), PST_COMP_ENCRYPT, pst_decrypt(), pst_desc_ll, pst_freeItem(), pst_fwrite(), pst_getTopOfFolders(), pst_load_extended_attributes(), pst_load_index(), pst_open(), pst_parse_item(), pstfile, RET_DERROR, save_rtf_body, usage(), version(), and xmalloc().

Here is the call graph for this function:

char * mk_kmail_dir char *   ) 
 

Definition at line 460 of file readpst.c.

References check_filename(), DEBUG_ENT, DEBUG_RET, DIE, kmail_chdir, KMAIL_INDEX, OUTPUT_KMAIL_DIR_TEMPLATE, and OUTPUT_TEMPLATE.

Here is the call graph for this function:

char * mk_recurse_dir char *   ) 
 

Definition at line 520 of file readpst.c.

References check_filename(), DEBUG_ENT, DEBUG_RET, and DIE.

Here is the call graph for this function:

char * mk_separate_dir char *  dir  ) 
 

Definition at line 554 of file readpst.c.

References check_filename(), DEBUG_ENT, DEBUG_MAIN, DEBUG_RET, DIE, overwrite, SEP_MAIL_FILE_TEMPLATE, and WARN.

Here is the call graph for this function:

int mk_separate_file struct file_ll f  ) 
 

Definition at line 624 of file readpst.c.

References check_filename(), DEBUG_ENT, DEBUG_MAIN, DEBUG_RET, DIE, file_ll::email_count, file_ll::name, file_ll::output, and SEP_MAIL_FILE_TEMPLATE.

Here is the call graph for this function:

char * my_stristr char *  haystack,
char *  needle
 

Definition at line 643 of file readpst.c.

References DEBUG_ENT, and DEBUG_RET.

Referenced by write_normal_email().

void process pst_item outeritem,
pst_desc_ll d_ptr
 

Definition at line 57 of file lspst.c.

References pst_desc_tree::child, close_enter_dir(), create_enter_dir(), DEBUG_ENT, DEBUG_MAIN, DEBUG_RET, DEBUG_WARN, pst_desc_tree::desc, DIE, pst_desc_tree::id, pst_index_tree::id, pst_desc_tree::next, pst_desc_ll, pst_freeItem(), pst_parse_item(), pst_rfc2426_escape(), pst_rfc2445_datetime_format(), PST_TYPE_NOTE, PST_TYPE_REPORT, pstfile, and file_ll::skip_count.

Referenced by main(), and process().

Here is the call graph for this function:

char * removeCR char *  c  ) 
 

Definition at line 401 of file readpst.c.

References DEBUG_ENT, and DEBUG_RET.

Referenced by write_normal_email().

char * skip_header_prologue char *  headers  ) 
 

Definition at line 689 of file readpst.c.

Referenced by write_normal_email().

int usage  ) 
 

int version  ) 
 

void write_appointment FILE *  f_output,
pst_item_appointment appointment,
pst_item_email email,
FILETIME create_date,
FILETIME modify_date
 

Definition at line 1240 of file readpst.c.

References pst_item_email::body, pst_item_appointment::end, pst_item_appointment::label, pst_item_appointment::location, PST_APP_LABEL_ANNIVERSARY, PST_APP_LABEL_BIRTHDAY, PST_APP_LABEL_BUSINESS, PST_APP_LABEL_IMPORTANT, PST_APP_LABEL_MUST_ATTEND, PST_APP_LABEL_NEEDS_PREP, PST_APP_LABEL_NONE, PST_APP_LABEL_PERSONAL, PST_APP_LABEL_PHONE_CALL, PST_APP_LABEL_TRAVEL_REQ, PST_APP_LABEL_VACATION, PST_FREEBUSY_BUSY, PST_FREEBUSY_FREE, PST_FREEBUSY_OUT_OF_OFFICE, PST_FREEBUSY_TENTATIVE, pst_rfc2426_escape(), pst_rfc2445_datetime_format(), pst_item_appointment::showas, pst_item_appointment::start, pst_item_email_subject::subj, and pst_item_email::subject.

Here is the call graph for this function:

void write_email_body FILE *  f,
char *  body
 

Definition at line 383 of file readpst.c.

References DEBUG_ENT, DEBUG_RET, and pst_fwrite().

Referenced by write_normal_email().

Here is the call graph for this function:

void write_inline_attachment FILE *  f_output,
pst_item_attach current_attach,
char  boundary[],
pst_file pst
 

Definition at line 747 of file readpst.c.

References base64_encode(), pst_item_attach::data, DEBUG_EMAIL, DEBUG_ENT, DEBUG_RET, pst_item_attach::filename1, pst_item_attach::filename2, MIME_TYPE_DEFAULT, pst_item_attach::mimetype, pst_attach_to_file_base64(), pst_fwrite(), and pst_item_attach::size.

Referenced by write_normal_email().

Here is the call graph for this function:

void write_normal_email FILE *  f_output,
char  f_name[],
pst_item item,
int  mode,
int  mode_MH,
pst_file pst,
int  save_rtf
 

Definition at line 795 of file readpst.c.

References pst_item::attach, base64_encode(), pst_item_email::bcc_address, pst_item_email::body, C_TIME_SIZE, pst_item_email::cc_address, pst_item_attach::data, DEBUG_EMAIL, DEBUG_ENT, DEBUG_RET, DEBUG_WARN, pst_item::email, pst_item_email::encrypted_body, pst_item_email::encrypted_body_size, pst_item_email::encrypted_htmlbody, pst_item_email::encrypted_htmlbody_size, pst_item_attach::filename2, fileTimeToUnixTime(), pst_item_email::header, pst_item_email::htmlbody, lzfu_decompress(), pst_item_attach::mimetype, mode, MODE_SEPARATE, my_stristr(), pst_item_attach::next, pst_item_email::outlook_sender, pst_item_email::outlook_sender_name, pst_item_attach, pst_strincmp(), removeCR(), RTF_ATTACH_NAME, RTF_ATTACH_TYPE, pst_item_email::rtf_compressed, pst_item_email::rtf_compressed_size, pst_item_email::sent_date, pst_item_email::sentto_address, pst_item_attach::size, skip_header_prologue(), pst_item_email_subject::subj, pst_item_email::subject, write_email_body(), write_inline_attachment(), write_separate_attachment(), and xmalloc().

Here is the call graph for this function:

void write_separate_attachment char  f_name[],
pst_item_attach current_attach,
int  attach_num,
pst_file pst
 

Definition at line 700 of file readpst.c.

References check_filename(), pst_item_attach::data, DEBUG_EMAIL, DEBUG_ENT, DEBUG_RET, DIE, pst_item_attach::filename1, pst_item_attach::filename2, pst_attach_to_file(), pst_fwrite(), pst_item_attach::size, WARN, and xmalloc().

Referenced by write_normal_email().

Here is the call graph for this function:

void write_vcard FILE *  f_output,
pst_item_contact contact,
char  comment[]
 

Definition at line 1144 of file readpst.c.

References pst_item_contact::address1, pst_item_contact::address2, pst_item_contact::address3, pst_item_contact::assistant_name, pst_item_contact::assistant_phone, pst_item_contact::birthday, pst_item_contact::business_address, pst_item_contact::business_city, pst_item_contact::business_country, pst_item_contact::business_fax, 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::car_phone, pst_item_contact::company_name, DEBUG_ENT, DEBUG_RET, pst_item_contact::display_name_prefix, pst_item_contact::first_name, pst_item_contact::fullname, 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_contact::isdn_phone, pst_item_contact::job_title, pst_item_contact::middle_name, pst_item_contact::mobile_phone, pst_item_contact::nickname, 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_contact::pager_phone, pst_item_contact::primary_fax, pst_item_contact::primary_phone, pst_item_contact::profession, pst_rfc2425_datetime_format(), pst_rfc2426_escape(), pst_item_contact::radio_phone, pst_item_contact::suffix, pst_item_contact::surname, and pst_item_contact::telex.

Here is the call graph for this function:


Variable Documentation

int contact_mode = 0
 

Definition at line 108 of file readpst.c.

Referenced by main().

int deleted_mode = 0
 

Definition at line 109 of file readpst.c.

Referenced by main().

char* kmail_chdir = NULL
 

Definition at line 58 of file readpst.c.

Referenced by close_kmail_dir(), and mk_kmail_dir().

int mode = 0
 

Definition at line 105 of file readpst.c.

Referenced by main(), and write_normal_email().

int mode_MH = 0
 

Definition at line 106 of file readpst.c.

Referenced by main().

char* output_dir = "."
 

Definition at line 57 of file readpst.c.

Referenced by main().

int output_mode = 0
 

Definition at line 107 of file readpst.c.

Referenced by main().

int overwrite = 0
 

Definition at line 110 of file readpst.c.

Referenced by main(), and mk_separate_dir().

char* prog_name
 

Definition at line 56 of file readpst.c.

pst_file pstfile
 

Definition at line 112 of file readpst.c.

int save_rtf_body = 1
 

Definition at line 111 of file readpst.c.

Referenced by main().


Generated on Thu Dec 11 11:59:11 2008 for 'LibPst' by  doxygen 1.3.9.1