TODO
* export handle
  add function to handle prefered and available message body
  change text message body export of item types into prefered/available message body
* error tollerabilty
  add flag value to inidicate:
    fragments (partial),
    decryption forced
    CRC mismatch
* pffexport: add support for recovery method

* reduce impact of duplicate MAPI entry types

* validate table entry identifiers of level >= 1 with those of lower levels?
* add support for multiple level 8c tables (check)
* data array entry cache
  - if data fits within the cache size, cache it whole remove slack space ?
* item
  - add read in buffers functions for entry values like message body?

* name to id map
  - API access to entire name to id map ?
  - add libpff_file_get_name_to_id_map to include file?
* refactor
  - create 7c table read entry definitions function
  - create ac table read entry definitions function
  - have multi type work with data reference (in libpff_item) ?
  - rewrite libpff_table_free to take pointer pointer as argument
  - tree type implement use of initialize function (grep sizeof( libpff_tree_node_t ) )

* check former local descriptor list functions (for what ? search of local descriptors )
  - libpff_item_values_local_read

API
* message store
  - add functions to retrieve sub folder items
* email
  - get different time stamps
* add utf16le item/message/message body string functions ?

* add function to retrieve:
  - the file offset ranges used by an item ?

* libfmapi
  - create SID to string function
  - create security descriptor structure
  - create entry identifier structure
  - create entries structure (entry identifier array)
  - use the new property type identifiers instead of the old ones
* debug output
  - extended folder flags
  - entryid data
  - conversation index
  - add support for 0x00008201 (PidLidAppointmentSequence)
  - add support for 0x00008214
  - add support for 0x00008218
  - add support for 0x3900 (PidTagDisplayType)
  - add support for 0x3905 (PidTagDisplayTypeEx)
  - add support for 0x36ee (PR_AGING_GRANULARITY)
  - add support for 0x3fe7 (PidTagResolveMethod)
  - add support for 0x6621 (PidTagContactAddressBookStoreSupportMasks)
  - fix 0x7c07 support when it contains XML instead of an entry identifier
  - add support for security descriptor transfer header
  - PR_CREATOR_SID and PR_LAST_MODIFIER_SID (contain NT SID)
  - remove print code from libfmapi_security_identifier_from_byte_stream
  - determine codepage of plain text and HTML body text
  - print time periods correctly

libpff
* Allow NULL value in list and tree _value functions?
* rename value (type) to table entry value (type)
* check node values ranges in index tree
* what about item references after the file is closed?
  CLEAR LIST or WAIT UNTIL last reference is freed?
* move libfmapi debug to pfftools?
* improve solution of pre-reading items which use local descriptors?
* add a function to retrieve the number of items?
  - maintain the total number of items?
  - maintain the total number of folder items?
* codepage support
  - implement codepage mapping function
* refactor direct use of list number of elements and array number of entries

pfftools
* pffinfo
* pffexport
  - add flag to overwrite export directory?
  - export the data in the pff file (embedded objects)
  - use identifier numbering for traceability?
  - add support for export to mbox, eml (ole2)
  - support control code in subject
  - provide export summary
  - allow to set date format
* create pffcrack
  - implement password cracking
  - implement password reset (requires write)
* create pffconvert
  - convert pst into ost and vice versa (requires write functionality)
* create pffsearch/pfffind
* export handle
  - handle duplicate attachment names (add suffix number)
  - export attachment to separate subdirectory
  - improve filename sanitation - do a sanity test
  - use close related character replacements to improve readability
  - check into unable to export attachment not being notified in export log
  - correctly handle skipping an item without class name
  - implement support for IPM.DistList
  - implement support for IPM.StickyNote
  - check if 0x0e1f (PidTagRtfInSync) is set and export alternating RTF body
* handle url as filename
  - improve sanitize filename function
* export attachment in small sized buffers
  - do not read entire item before its needed?
  - move item value debug to higher levels than table?
* contact
  - export rtf body

item support
* IPM.Activity
* IPM.Microsoft.ScheduleData.FreeBusy
* IPM.Microsoft.FolderDesign.NamedView
* IPM.Sharing
* IPM.Sharing.Binding.In
* IPM.Configuration.RssRule
* IPM.Configuration.HomeTimeZone
* IPM.Configuration.AvailabilityOptions
* IPM.Configuration.Calendar
* IPM.Configuration.CategoryList
* IPM.Configuration.WorkHours
* IPM.Configuration.RssRule

Multi language/locale support
* library data returns UTF-8 (done)
* input filenames remain system string (done)
* move character_t functionality to system_character_t (done)
* remove string conversion code (done)
* print output convert to system string
* to reduce conversions use as much as possible the system string type in
  the tools (have error use system string? or convert before print?)

Check/Validate
* parse code with slint

Debug
* check windows debug output
* do not error return on debug error?
  - do not fail item if debug print was unsuccessful
  - only fail on serious errors

Recovery and error tollerance:
* item scan: implement item carving based recovery
  - block scan support
* analyze remaining/deleted content
* reconstruct original structure for recovered items?
* allow fragments/partial items (add upper level reporting)
* allow items without/with invalid local descriptors?
  - fragment handling

Documentation:
* add mingw compilation document
* add 'getting started with programming libpff' document

Optimizations:
* build index and item hierarchy on demand
* read item values on demand?
* read item values directly into external buffer?
* read attachment data directly into external buffer?
* read the table entries array and sub arrays on demand?

Deployment:
* have configure set the default codepage ? also for debug
* create debian package files

Beta release
* remove deprecated functions in libpff_legacy.[ch]
* remove deprecated definition in include/libpff/mapi.h
* check if libpff.3 manual file is up to date

Test:
* add autoconf/make test suite

File Format:
* handle missing message store (check)
* handle missing name to id map attributes (check)
* handle encryption type none, but data is still encrypted (check)
* add support for cell existence
* add support for cc table type
* add support for the free maps
* add support for the density list
* what is the reason for empty (NULL) attachment data, however attachment has a size value !?
* Unknown reason for additional padding in external values array entries data
* What do some binary data item values contain?
* value '/' in (64-bit pst) UTF-16 eml filename is replaced by 0xff 0xf8 but not in subject
* PR_HTML seems to contain 7-bit ASCII with HTML encoding of extended characters
* Is there multiple level table entries support for bc, a5 and 9c tables?
* What is the relation between the 6c and 8c table and the secure id4

Notes:
* in the descriptor index a parent can have a child with a lower identifier value
* cannot create libpff_item_get_sub_item_by_utf8_name, only folders and messages have names

20100510
* export handle: additional characters for sanitation

20100506
* worked on configure.ac clean up

20100505
* updated configure.ac and added MAINTAINERCLEANFILES to Makefile.am files
* updated common, libcstring, liberror, libnotify, libsystem, libuna, libbfio,
  libfdatetime
* changed amount of in number of

20100504
* updated msvscpp and codegear files
* fix in debug output of local descriptors
* export handle added notification of unable to export sub folders and messages
* added error tollerance for table entry value reference outside of range of table index

20100503
* worked on improving libfmapi debug string codepage support
* refactored value type string handling code

20100501
* added mingw support to include type header
* updated common, libcstring, libbfio, libsystem
* worked on acinclude.m4 clean up

20100429
* libfmapi: added support for codepage 1200
* improved support for narrow string name-to-id map string (RIM)
  - support to handle trailing zero
  - removed trailing s in debug output
* added codepage 1200 support like in libesedb
* file content version check more tollernant <= 0x000f ANSI, >= 0x0015 Unicode
  other versions unknown
* updated libcstring
* fixed small leak cleaning up orphan items due to tree node change

20100427
* worked on data array caching

20100424
* worked on Windows extended filename support

20100419
* adjusted export handle error output
* fixed error in ignore data array cache flag

20100416
* updated libbfio, libuna, libfdatetime
* fixed bug in liberror
* removed restriction for recovering items with existing and duplicate identifiers

20100415
* worked on support for 'unencrypted' encrypted pst files
  added support for unencrypted values array entry
* worked on refactoring export handle to support writing
  prefered message body to stream

20100414
* worked on Windows extended filename support

20100412
* fixed 7c table 8 byte value issue
* worked on Windows extended filename support

20100411
* worked on Windows extended filename support

20100403
* worked on Windows extended filename support

20100330
* applied fix for non-linear values array

20100329
* fixed error in debug output
* added pffexport -m noatt option for testing export without attachments

20100328
* updated libstring, liberror, libuna, libbfio, libsystem, libfdatetime, libnotify
* updated pfftools for libcstring and libsystem update
* Email change
* updated msvscpp and codegear files
* updated macosx package files
* removed common/narrow_string.h common/wide_string.h
* updated common

20100327
* worked on libstring

20100324
* worked on libstring
* removed libpff_guid.[ch]
* updated libbfio

20100322
* improved debug/verbose output in data array

20100321
* fix in export handle for handling empty conversation indexes
* improved reading ac table
* added support for 64-bit local descriptor branch nodes
* updated libfdatetime

20100320
* fixed small memory leak in recovery functions, introduced by update
* fixed clean up issues in recovery functions, introduced by update
* refactored several memory allocate to initialize functions
* missing local descriptor values in recovered items are considered empty
* fixed recovery with no unallocated ranges
* added recovery sanity check: check if the local descriptors of a recoverable item are readable

20100319
* fix for stand-alone libfdatetime inclusion in pfftools
* fixed typo in acinclude.m4
* fixed error in handling LIBPFF_RECOVERY_FLAG_IGNORE_INDEX_DATA
* fixed error in handling table index introduced by MS-PST update for a5 table
* updated libuna, libbfio, libfdatetime

20100315
* updated libbfio
* small fixes in attached file io handle

20100304
* worked on support of unused table index values
* worked on support for 'unencrypted' encrypted pst files

20100221
* small changes

20100220
* worked on support for 'unencrypted' encrypted pst files

20100202
* worked on support for data blocks

20100130
* worked on support for data blocks

20100129
* worked on new file format findings from [MS-PST]
* API: changed index node blocks into page blocks
* removed deprecated libpff_email_get_internet_headers_size and libpff_email_get_internet_headers
* debug: added name-to-id-map identifiers
* libpfmapi: changed value type identifiers to newer definitions
* libpff not uses the sentinal to determine the file type of unknown PFF versions

20100128
* worked on error tollerabilty and recovery
  for PST file with invalid index and invalid allocation tables

20100127
* worked on error tollerabilty and recovery
  for PST file with invalid index and invalid allocation tables

20100126
* updated common, liberror, libbfio, libsystem
* worked on error tollerabilty and recovery
  for PST file with invalid index and invalid allocation tables

20100114
* small fixes
* updated common, libfmapi

20100111
* fixed typo

20100107
* added export of conversation index to separate file
* updated common, liberror, libsystem, libuna, libbfio, libfdatetime

20100106
* minor changes in libfmapi

20100105
* updated common, libbfio

20100103
* small changes
* updated common, liberror, libnotify, libuna, libbfio, libfdatetime
* 2010 update
* updated tree type
* updated include/types.h

20091225
* small changes
* removed unnecessary calls to libpff_item_detach

20091223
* worked on MAPI definitions

20091222
* worked on MAPI definitions
* renamed internet headers to message transport headers

20091220
* updated libuna

20091219
* changed default codepage
* updated manuals
* removed filetime from export handle using libfdatetime instead
* updated libuna
* worked on UTF-7 support

20091217
* updated libfdatetime

20091214
* updated libbfio, libfdatetime, libuna

20091211
* worked on accessing items by name
* updated libuna

20091210
* added local descriptors support for libpff_item_get_sub_item_by_identifier

20091209
* worked on libpff_file_get_item_by_identifier

20091208
* worked on libpff_file_get_item_by_identifier

20091207
* worked on libpff_name_to_id_map_entry_get_utf16_string

20091204
* updated libfdatetime
* worked on exporting IPM.Document
* added check for zero byte in HTML binary data
* worked on accessing items by name
* fix for 0 return in libpff_item_get_sub_item_by_identifier
* updated libuna, for compare functions

20091128
* fixed export of incorrect date and time values in OutlookHeaders.txt
  - bug in byte stream macros

20091122
* small changes

20091117
* worked on get value type function

20091115
* updated common
* removed item list element

20091114
* updated libbfio - open on demand
* added open on demand for cloned file io handles

20091113
* removed item_reference_list
* fix for cloning of file io handle for items
* removed handling of HTML body codepage because of possible conflict with html parser
* removed libpff_item_free_no_detach
* improved tree node clone function
* worked on moving data array file io handle to item layer
* updated libbfio, fix for file clone

20091112
* worked on moving io handle file io handle to item layer
* updated libbfio (fix for handle_clone)
* add cloning of file io handle for items
* fixed error in libpff_attached_file_io_handle_clone
* removed All rights reserved
* updated libsystem, liberror, libnotify

20091111
* worked on item clone function
* worked on improving asynchronous usage of sub items (attachment)
* moved stdout to notify_stream in export handle
* added definition for default export handle notify stream
* added support for LIBPFF_ITEM_TYPE_EMAIL_SMIME to export handle
* fixes for msvscpp and codegear compilation
* worked on moving file io handle to item layer

20091110
* worked on item clone function
* worked on local libpff and libfmapi

20091109
* worked on improving asynchronous usage of sub items (recipients, attachments)

20091029
* updated libbfio
* changed behavior of non-managed BFIO handle

20091028
* worked on attachment data libbfio object

20091026
* worked on refactoring endian.h into byte_stream.h
* updated libuna, libbfio, libfdatetime

20091024
* removed backwards compatibility macros from API
* added flags to get entry functions to ignore name to id map

20091023
* added multi value test code in export handle

20091022
* fixed typo in multiple error output string

20091019
* worked on API support for conversation index

20091016
* added missing set ascii codepage to pffexport
* refactored libpff handle out of extraction handle
* fixed error in set codepage function
* fixed 0 return in message string functions

20091014
* worked on ftk 'compatible' output of pffexport

20091013
* worked on ftk 'compatible' output of pffexport

20091008
* added failsave in libfmapi debug

20091003
* corrected license in list and array type and several of the pfftool handles
* updated libbfio
* updated acinclude

20091001
* updated array and list type
* code clean up for use of array and list type
* change function to libpff_list_get_value where better suited than libpff_list_get_element

20090930
* worked on generic b5 header indirection level support
* worked on code clean up
* added support for attachments with attachment method by reference
* fixed multiple memory leaks
* added a5 table array support, for this the a5 table gets a set per table array entry
  this is necessary because of table value references to the values in the a5 table

20090929
* Worked on CodeGear project files
  - disabled creation of precompiled headers
* Worked on MSVSCPP solution files
  - enabled DEP
  - enbled random base
* worked on UTF-7 support (libuna)
* worked on b5 header indirection level support for bc table
* worked on generic b5 header indirection level support
* worked on code clean up

20090928
* code clean up
* worked on reading attachment data buffer wise
* added support for incorrect message body codepage with missing message codepage
* updated libuna

20090927
* updated libbfio, libsystem
* worked on data array cache
* worked on reading attachment data buffer wise
* libpff_attachment_get_data is currently left in the code for backwards compatibility

20090921
* added LCID debug code
* moved codepage debug code to separate file

20090919
* worked on list and tree types

20090918
* added initial support for sticky notes
* remaining IPM.Note item classes are considered an e-mail e.g. IPM.Note.StorageQuotaWarning
* changed behavior of libpff_table_get_entry_value_by_entry_type to allow
  unmapped matching

20090917
* refactored creation of array out of libpff_table_read_index
* fixed name to id map boundary problem, also solves unnecessary rereads of
  name to identifier data from file
* worked on UTF-16 string support
* added support for handling invalid message body codepages
* fixed error in detection of encrypted data
* worked on multiple level array support

20090916
* worked on variating named properties
  - implemented support for IPM.Schedule.Meeting.Request
* pffexport now exports meetings, tasks and contacts to seperate directories

20090914
* added seek offset 0 when reading file header
* worked on functions to retreieve
  - the number of sub folders in a folder
  - a sub folder in a folder
  - the number of messages in a folder
  - a message in a folder
  - the number of associated items in a folder
  - an associated item in a folder
* fixed error in libpff_item_tree_get_child_node_by_identifier
* worked on exporting item values in debug mode
* pffexport now export the item values of unknown items in debug mode
* worked on export summary

20090911
* Added missing C++ closing statement in libsystem_support.h
* Fixed passing of incorrect size to data reference buffer initialize
* Worked on handling corrupt Exmerge pst files

20090910
* worked on implementation on reading data on demand
* pffexport no longer generates an error when e-mail does not contain a body text
* updated msvscpp solution
* worked on refactoring 7c table function
* worked on refactoring ac table function
* worked on handling attachment without attachment data

20090909
* worked on implementation on reading data on demand
* worked on refactoring 7c table function

20090907
* made corrections to configure.ac
* worked on libfdatetime integration
* changed libfmapi integration preperation for stand-alone version
* updated behavior of pffexport export mode to handle recover, debug and all
  export

20090905
* updated libpff Makefile.am
* updated pffinput codepage detection

20090904
* worked on orphan item support
* worked on integrating pffexport and pffrecover
* worked on exporting orphan items
* moved functionality of pffrecover into pffexport
* removed pffrecover
* updated common, libuna
* updated codpage definitions
* worked on removing notify stream, use functions instead
  necessary for integration of notify without stream (e.g. for glib)

20090903
* small fixes for BFIO API support
* small fixes in output of pfftools
* fixed error reading bc table due to behavior change of reading data on demand
* added support for ignoring item tree nodes with an invalid parent node

20090830
* small adjustment to configure.ac
* worked on data array read on demand
* worked on refactoring out some of the item_values functions
* worked on refactoring direct access to array type to use functions

20090829
* updated common, libnotify, libbfio, libuna
* update msvscpp and codegear files
* removed pffsignal deprecated by libsystem_signal
* worked in libbfio support
* added signature functions
* worked on detecting 'invalid' encrypted PFF's with encryption type none
* removed encryption key from library and API
* fixed incorrect addition to item hierarchy of related items for unknowns
  related items are now cached locally in item no longer globally in item hierarchy
* worked on local use of libpff
* fixed libbfio detection
* worked on generic support for 6c, 8c and 9c tables
* fixed leak in libfmapi_debug
* fixed error reading a5 table introduced by handling empty a5 table
* worked on data array read on demand

20090816
* implemented libsystem for pfftools

20090811
* fix in date and time

20090810
* fixed initial notify output to be verbose in pfftools
* fixed missing fclose in error handling in export handle 

20090808
* worked on handling empty a5 tables
* worked on multi values debug output
* multi value elements are now set to NULL if element has size of 0
* updated libbfio
* worked on Borland C++ compiler support
* removed deprecated API functions
* implemented libpff_message_get_string(_size) functions that handle
  message specific codepage handling
* refactored codepage handling code from libpff_message to libpff_value_type
* added debug support for 0x1013 (PidTagHtml)

20090807
* fixed error in debug of conversation index (error in MSDN documentation)
* fixed error in libpff_message_get_modification_time macro
* moved MAPI debug code to libfmapi
* added support for handling codepage 65001 (UTF-8) and 65000 (UTF-7)
* fixed several memory leaks in pfftools export handle
* fixed several memory leaks in libpff ac and 9c tables

20090803
* updated libbfio
* updated include/libpff/types.h.in
* small changes for MSVSCPP build

20090802
* updated libuna
* updated libbfio
* updated common code for Borland C++ compiler support
* added debug support for several definitions
* updated liberror
* updated libpff_error
* updated libbfio
* updated serveral of the code files in pfftools for Borland C++ compiler support
* added m4 directory support to autoconf/make files for libtool
* refactored plain text body macros to function to support message codepage
* fixed error in data array initialize, not resetting pointer to NULL on error
  (pointed out by B. Ganster)

20090801
* fixed missing error return in libpff_table
  (pointed out by Jim)
* small updates to configure.ac

20090724
* worked on runtime 6c, 8c and 9c table support

20090722
* worked on read data array entry on demand
* fixed incorrect addition to item hierarchy of related items
* fixed several memory leaks in pff tools export handle
  (in sub_folders, recipients and unknowns export functions)

20090721
* worked on read data array entry on demand

20090720
* worked on read data array entry on demand
  - added descriptor data layer
* fixed error regarding return value of message rtf and html body functions
* several small adjustments in libfmapi

20090719
* several small adjustments in libfmapi

20090718
* worked on read data array entry on demand

20090717
* worked on get sub item by identifier API function
* worked on read data array entry on demand

20090716
* several small adjustments in libfmapi
* added debug support for several definitions
* fixed error in debug output - the description of mapped numeric entries was
  not resolved correctly

20090715
* fixed in error in error output of export handle
* fixed error in retrieving mapped numeric entry types
* several small adjustments in libfmapi

20090711
* several small adjustments in libfmapi

20090710
* several small adjustments
* refactored class_identifier out of name to id map entry using GUID instead
* worked on sub messages support
* worked on sub associated contents support
* fixed missing mapping of named attributes in debug output

20090708
* applied table array aligment fix from earlier fixes on other platform

20090629
* small fixes to libpff_multi_value.h

20090628
* worked on sub folders support
* clone allows empty table
* implement fail safe for usupported table entries level
* export handle now handles duplicate folder names
* refactored attachments and recipients to libpff_message and unknowns to
  libpff_folder

20090627
* fixed Windows 64-bit ssize_t definition issue (pointerd out by Xavier Roche)
* fixed incorrect name of 32 and 64-bit in libpff_multi_value.h (pointed out
  by Warren Brown )
* fixed incorrect libpff_name_to_id_map_entry_get_name in
  libpff_name_to_id_map.h (pointed out by Warren Brown)
* worked on implementation of multi values
* fixed handling of multiple levels of local descriptors
* updated libbfio
* worked on 8c table support

20090625
* implemented multiple level table entries support for 7c and ac table
* fixed error table values array realignment
  no longer skips 0 value part of realignment value
* fixed typo in export handle
* fixed print of verbose data without verbose flag in libfmapi

20090624
* updated libbfio
* worked on multiple level table entries support

20090623
* worked on failure of handling embedded OLE attachment
* add missing C++ wrapped to libnotify
* worked on name to id map rewrite

20090622
* worked on libnotify
* small updated for liberror
* replaced libpff_notify by libnotify

20090621
* worked on libnotify it is the starting point of improved verbose and debug
  notification support
* added libfdatetime

20090620
* implemented the notification stream file (based on patch by wbrown)
* moved attachment and recipient functions from email to item
* added support exporting attachment and recipient in appointments

20090618
* added behavior to libpff_table_get_entry_value_by_entry_type to allow
  access to named properties using the entry_type value

20090617
* added support for ASCII Name-to-ID strings
* add named_property argument to libpff_item_get_entry_type
* removed libpff_item_get_item_type macro from include file

20090616
* fixed pffinfo not handling missing message store values
* fixed handling corrupted table index
  and correcting corrupted first table index
* the table definitions name to id map entry is now passed
  to prevent a second lookup

20090615
* worked on libfmapi and MAPI value debug output
* add GUID and multi value GUID support API functions

20090614
* worked on libfmapi and MAPI value debug output

20090613
* worked on libfmapi and MAPI value debug output

20090611
* worked on multi value support

20090528
* updated libbfio

20090527
* fixed 16-bit value reference to a 32-bit value in libpff_table_read
  this caused problems with table headers in table arrays entries other than
  the first
* fixed OLE attachment method in libpff_attachment_get_data_size
  - item now caches attachment embedded object data
* added embedded object debugging

20090526
* worked on multi value support
* refactored value type conversion to separate functions
* export handle now handles recipient type orginator and BCC
* fixed wide string issue regarding log handle output "Processing folder X in path Y"

20090525
* added libpff_item_get_entry_value_16bit to API based on patch of Warren Brown
* added libpff_item_get_entry_value_binary_data_size and
  libpff_item_get_entry_value_binary_data to API
* worked on multi value support

20090524
* fixed last offset inclusion in libpff_offset_list_range_is_present
* updated libbfio
* updated API for notify and error functions
* updated common/types.h to be generated by autoconf
* implemented libpff_table_initialize

20090522
* some minor changes
* worked on implementing support for local use of library
* updated libbfio
* updated array and list type with newer versions
* updated tree type
  - created initialize function
  - changed free node function
* updated item values
  - created initialize function
  - changed free function

20090521
* fixed typo in libpff.spec.in
* refactored libpff error functions into libpff_error.c

20090520
* worked on conversation index child blocks

20090519
* worked on conversation index child blocks

20090518
* worked on conversation index child blocks

20090517
* worked on debug output for X.400 object identifiers
* updated tree node value functions to have an error parameter
* implemented tree node clone function
* worked on local descriptor hierarchy support
* fixed issue in error handling in libpff_index_node_initialize
* removed remove list hierarchy quick hack (libpff_descriptor_read_local_descriptors_append)
* changed local descriptors node level into node type
* removed LIBPFF_CODEPAGE_WINDOWS_1250 in item values, codepage is now passed from handle

20090516
* worked on integrating the recipients patch by Krzysztof Mazur
* worked on clone functions
* updated list value functions to have an error parameter
* updated libbfio
* fixed error in libpff_list_insert_value and libpff_offset_list_add_offset
* the internet headers are now always exported to a separate file
* attachments are now stored in the subdirectory Attachments

20090514
* made libfmapi less dependent on libpff for libnk2
* worked on integrating the recipients patch by Krzysztof Mazur
* updated common/endian.h with libewf version

20090513
* worked on integrating the recipients patch by Krzysztof Mazur
* corrected fopen in export handle, on consideration only the attachment and
  e-mail files need to be opened in binary mode, not the contact and other
  output files

20090512
* updated liberror and libuna

20090509
* fixed missing C++ definition in log handle
* fixed fopen binary mode for WINAPI pointed out by krzysztofmazur (Krzysztof Mazur)
* fixed incorrect sizeof type in export handle pointed out by warrenthebrown (w brown)
* fixed missing default of system string ASCII codepage

20090427
* updated libuna for bug regarding UTF-16 <= 2

20090424
* several small updates

20090408
* updated libbfio
* added API functions to retrieve number of item values sets and entries (per set)
* added API function to retrieve the entry and value type of an item set/entry index
* changed API function libpff_item_get_entry_value to use value_type as input
  now matches the behavior of the MAPI properties, but still allows for any
  value type lookup
* fixed TODO in libpff_folder_get_content_type
* several MAPI definition changes
* libpff now remaps numbered entry types, this allows access to some of the
  mapi properties in the name to id map
* added float and double value type API functions
* renamed multiple API function to match MAPI
  - libpff_folder_get_content_type to libpff_folder_get_type
  - message_get_type_x to message_get_class_x
  - libpff_contact_get_file_as to libpff_address_get_file_under macro
  - email_get_x_body to message_get_x_body

20090404
* added static executable build

20090331
* Worked on initial version
* Updated WINAPI wide character support
* added wide character mkdir support
* moved class identifier debug code in name_to_id_map to libpff_debug
* added debug print of name to id map validation entries
* removed report item type, updated item type detection

20090330
* Worked on initial version
* Worked on support for UNICODE directive
* Updated libbfio with libewf 20090329 version
* Updated caseless compare functions with WINAPI support

20090328
* Worked on initial version
* Worked on security descriptor structure in libfmapi
* Worked on entry identifier structure in libfmapi
* Made libpff_debug_property_type_value_print item type aware

20090327
* Worked on initial version
* worked on libfmapi property type support
* added caseless compare functions to common string functions

20090326
* Worked on initial version
* Corrected Windows printf integer specifications
* implemented guid to class identifier conversion and class identifier compare functions in libfmapi
* Corrected some errors in debug output
* changed several unknowns to possible knowns

20090325
* Worked on initial version
* Fixed error in libpff_attachment_get_short_filename_size and libpff_attachment_get_short_filename
  pointed out by Igor Rogov
* Fixed strange issue in libfmapi_filetime_to_string
  sprintf_s crashes when string is too small - which is unexpected behavior
* implement class identifier aware property debug

20090322
* Worked on initial version
* working on MAPI type debugging
* worked on unknowns

20090321
* Worked on initial version
* Implemented libpff_attachment_get_data_size as a function due to attachment
  size mismatch with size of data and size in the attachment item table
* Changed comment in .pc .spec and library manual page
* update glob.[ch] with version of libewf - glob is currently not used, but
  will remain in the code for now
* refactored _allocate( to _initialize( - except for table entries allocation function
* added support for the 0x0f pst version type
* worked on renaming list to local_descriptors and change it into a tree
* working on MAPI type debugging

20090313
* Worked on initial version
* updates msvscpp files

20090312
* Worked on initial version
* added support for separate libbfio
* updated libbfio to 20090312 version

20090307
* Worked on initial version
* Updated libbfio - removed libbfio_interface

20090302
* Worked on initial version
* Fixed error creating recovery directory

20090224
* Worked on initial version
* Fixed error regarding export of small attachment names (introduced by export handle)

20090223
* Worked on initial version
* Fixed errors in path creation (introduced by export handle)
* Fixed error in log handle

20090222
* Worked on initial version
* Updated msvscpp files
* Worked on full locale support
  - removed character_t
  - updated charset detection

20090221
* Worked on initial version
* Worked on full locale support
* moved file_io_handle creation to libpff_file

20090220
* Worked on initial version
* Small fixes
* ascii codepage now passed to debug function
* fixed month 13 in filetime string
* worked on export handle

20090219
* Worked on initial version
* Update of error output

20090204
* Worked on initial version
* Updated msvcpp files

20090202
* Worked on initial version
* Worked on libfmapi (synced with msdn)

20090201
* Worked on initial version
* Worked on libfmapi (synced with libmapi 0.8 mapi-properties)

20090131
* Worked on initial version
* fixed codepage 1258 restriction in libpff_file_set_ascii_codepage
* moved MAPI and codepage definitions to separate header file
* moved MAPI code to libfmapi (file MAPI library) intended for local use only

20090128
* Worked on initial version
* fixed small bugs in distribution files

20090125
* Worked on initial version
* Worked on RTF uncompress buffer too small
* Worked on false HTML body export
* Worked on name to id map

20090124
* Worked on initial version
* Updated libuna and liberror
* Added support for libbfio
* Implemented crc check on 64 bit file header data
* Worked on named properties
* Implemented big endian GUID support
* Worked on RTF uncompress buffer 2 bytes off
  the uncompressed size does not equal the actual number of resulting rtf bytes
  the uncompressed size does not entail the 2 trailing zero bytes
* Worked on name to id map

20090118
* Worked on initial version
* Worked on HTML body functions
* Updated configure to conform to cache value naming schema
* Output format now allows txt and htm also as type definitions
* Worked on all output format type definition
* Moved html, rtf and plain text body export to separate functions

20090116
* Worked on initial version
* Fixed debug output of file header values to match other
* Created an unambiguous filetime string
* Added debug values for password and attachment descriptor item
* Worked on changing output format into preferred output format
* An non empty body is preferred above an empty

20090115
* Worked on initial version
* Updates headers
* Fixed missing debug definition for non debug compilation
* limited debug output to verbose output mode

20081221
* Worked on initial version
* Worked on filetime string error
* Worked on integrating basic file IO library (libbfio)

20081218
* Worked on initial version

20081217
* Worked on initial version
* Changed pst_file_signature to pff_file_signature
* Fixed potential segfault in array type

20081216
* Worked on initial version
* Fixed buffer size for file header data debug

20081213
* Worked on initial version
* Worked on property types
* Renamed extended attributes to name to id map
* Worked on name to id map
* Separated name to id map table debug function from (default) item debug function

20081212
* Worked on initial version
* Worked on property types

20081209
* Worked on initial version
* Worked on extended attributes
* Worked on file header
* Added support for data version (NDB version) 0x15

20081208
* Worked on initial version
* Worked on extended attributes
* Worked on file header

20081207
* Worked on initial version
* Worked on extended attributes
* Worked on file header
* Fix for GUID representation
* Updated item value types (property types) debug strings

20081206
* Worked on initial version
* Worked on extended attributes
* Worked on file header

20081202
* Worked on initial version
* Fixed error in usage output of pffexport

20081201
* Worked on initial version
* Fixed error in debug output of 64-bit list unknown1 value
* Changed 64-bit index unknown2 to hexadecimal output
* Fixed bug in recovery not cleaning items on missing data identifiers

20081128
* Worked on initial version
* Worked on recovery failure on ost file

20081127
* Worked on initial version
* Worked on extended attributes
* Changed list type into type and level

20081031
* Worked on initial version
* added print for item type

20081030
* Worked on initial version
* Fixed error in debug print of list type

20081029
* Worked on initial version
* worked on support on content type
* Fixed leak in pffcommon
* Fixed list element size calculation for 64bit list

20081028
* Worked on initial version
* added support for list type 0x0102
* added support for file content type

20081026
* Worked on initial version
* Worked on rtf export mode
* Fixed correct handling of string_snprintf return value
* Fixed error in pffexport_determine_export_mode
* Updated libpff header file
* Worked on extended attributes

20081024
* Worked on initial version
* Added more detailed error output for unsupported pff data
* Fixed error in sanitize filename
* Fixed 1 off in filetime_to_string
* Updated README
* Fixed leak on error in libpff_index_read_node
* Looked into index node type 0x85 0x85

20081023
* Worked on initial version
* added attachment method to libpff_attachment_get_type to detect embedded OLE2 attachments

20081022
* Worked on initial version
* pffcommon_export_attachment no longer export attachment for unknown type

20081021
* Worked on initial version
* Added basic support for value type 0x1048
* pfftools now sanitize \ and /
* fixed error in pffcommon_export_attachment

20081020
* Worked on initial version
* made pffexport more tollerant for missing transport headers and plain text body

20081019
* Worked on initial version
* Worked on embedded object in attachments
* Fixed missing list type in libpff_file_io_handle.h
* Multiple fixes regarding user output in pffcommon
* Made export tollerant of attachment without name
* Removed newline in error strings
* Fixed offset read list for debug

20081018
* Worked on initial version
* worked on adding error handling
* Worked on man pages
* Added description of functionality of tools in usage information
* Added flag to show allocation information to pffinfo
* Added target directory option to pffrecover
* Added logfile option to pffrecover
* Updated rpm spec file
* Updated AUTHORS
* Fixed leaks in libpff item recovery
* Added MSVS CPP solution files
* Changes for MSVS CPP compilation
* pffexport now tests if file exists before creating target directory

20081017
* Worked on initial version
* Fixed leaks in pffcommon
* Fixed missing liberror makefile for deployment
* worked on adding error handling

20081015
* Worked on initial version
* Worked on signal handling

20081014
* Worked on initial version
* worked on adding error handling

20081013
* Worked on initial version
* worked on adding error handling

20081011
* Worked on initial version
* worked on adding error handling
* Worked on refactoring common

20081009
* Worked on initial version
* worked on adding error handling

20081007
* Worked on initial version
* worked on adding error handling

20081005
* Worked on initial version
* worked on adding error handling
* worked on refactoring common

20080923
* Worked on initial version
* worked on adding error handling

20080922
* Worked on initial version
* replaced libuca by libuna
* added liberror
* worked on adding error handling
* separated Makefiles
* moved base64 to tools
* renamed HAVE_WINDOWS_API to WINAPI (in libpff)

20080905
* Worked on initial version
* added list type prepend

20080904
* Worked on initial version
* Updated libuca

20080831
* Worked on initial version
* Replaced unistring with libuca

20080830
* Worked on initial version
* Improved common and configure.ac

20080829
* Worked on initial version
* Now supports dynamic folder length in pffcommon_export_folder

20080828
* Worked on initial version
* Worked on improving Unicode conversion routines

20080827
* Worked on initial version
* Worked on improving Unicode conversion routines
* Moved unicode conversion routines into libunistring

20080826
* Worked on initial version
* Worked on improving Unicode conversion routines

20080825
* Worked on initial version
* Worked on improving Unicode conversion routines
* Added maximum allowed UTF 0x110000 in strict mode
* Worked on support for converting extended ASCII stream into UTF

20080824
* Worked on initial version
* Worked on improving Unicode conversion routines

20080823
* Worked on initial version
* Worked on improving Unicode conversion routines

20080821
* Worked on initial version
* Worked on export of appointment

20080819
* Worked on initial version
* Rewrote item specific function to be macros that use the generic item functions

20080818
* Worked on initial version
* Implemented 9c table entries (guid, item descriptor)

20080817
* Worked on initial version
* worked on ac and a5 table type support
* Added item entry values table instance to the table entry definition
* Handle empty table number of index items
* Added fix for non 4 bytes aligned padding in external values array entries data
* Changed libpff_notify_dump_data format

20080816
* Worked on initial version
* Removed libpff_item_tree_allocate
* Refactor item tree to use item descriptor instead of item tree values
* Made remaining descriptor list part of the item tree
* Added support for external values array entries data
* Added fix for additional padding in external values array entries data
* Worked on ac table type support, found additional a5 table type

20080815
* Worked on initial version
* removed item values from item tree
* Worked on libpff_file_get_message_store
* refactored item tree values to item descriptor
* Adjusted libpff_list_insert to return 0 if value exists

20080814
* Worked on initial version
* Fixed error in retrieve unallocated block function
* refactored item values to separate structure

20080813
* Worked on initial version
* Item functions can now handle recovered items
* Implemented print value on "last table index values end offset"
* Rewritten libpff_folder_get_content_type to use string compare for Unicode string support
* refactored common code in item and item tree
* fixed issue exporting recovered attachments
  recovery now only analyzes leaf index nodes

20080812
* Worked on initial version
* Worked on recovering deleted content and pffrecover
* Made parent identifier 32 bit
* Made item tree descriptor identifier 32 bit

20080811
* Worked on initial version
* Moved item export code from pffexport to pffcommon
* Worked on recovering deleted content and pffrecover

20080810
* Worked on initial version
* Worked on recovering deleted content
* Created pffrecover

20080809
* Worked on initial version
* Worked on high encryption

20080807
* Worked on initial version
* Worked on reducing memory usage
* Fixed strange output directory name
* refactored most table usage to item to reduce memory usage for large files

20080806
* Worked on initial version
* Fixed 0-byte set memory corruption in libpff_item_tree_get_entry_value_string

20080805
* Worked on initial version
* Worked on item API

20080804
* Worked on initial version
* Worked on item API

20080725
* Worked on initial version
* Worked on item API

20080724
* Worked on initial version
* refactored item and item reference

20080720
* Worked on initial version
* Worked on 64-bit pff and ost
* Worked on basic unicode conversion
* Fixed make dist

20080719
* Worked on initial version
* allow reading ahead index nodes before the a reading ahead index node
* Worked on 64-bit pff and ost
* Worked on basic unicode conversion

20080718
* Worked on initial version
* Found pst without message store and extended attributes
  The actual file could not be opened in Outlook, made libpff not dependent on both
* Worked on 64-bit pff and ost

20080717
* Worked on initial version
* Worked on recovering deleted content
* Worked on 64-bit pff and ost

20080716
* Worked on initial version
* Worked on recovering deleted content

20080715
* Worked on initial version
* Worked on recovering deleted content

20080714
* Worked on initial version
* Worked on recovering deleted content

20080713
* Worked on initial version
* Worked on recovering deleted content

20080711
* Worked on initial version
* Worked on recovering deleted content

20080710
* Worked on initial version
* Worked on recovering deleted content

20080709
* Worked on initial version
* Worked on recovering deleted content

20080708
* Worked on initial version
* Fixed error in encrypted flag for offset identifier
* Worked on stricter item entry value check and reduced memory finger print
  for values < 32-bit

20080707
* Worked on initial version

20080706
* Worked on initial version

20080705
* Worked on initial version
* Worked on pffexport
* fixed small memory leak
* removed dependency on zlib

20080704
* Worked on initial version
* Worked on attachments
* Worked on pffexport

20080703
* Worked on initial version
* Worked on attachments

20080702
* Worked on initial version
* Worked on attachments

20080701
* Worked on initial version
* Worked on attachments

20080630
* Worked on initial version
* Worked on attachments

20080628
* Worked on initial version
* Worked on attachments

20080627
* Worked on initial version
* Refactoring of io
* Worked on attachments

20080626
* Worked on initial version
* Moved libpff_io_handle_read_table_descriptor to libpff_item_values_read
* Refactoring of io_handle/table/item
* Removed libpff_array

20080625
* Worked on initial version
* Worked on attachments
* Fixed multiple memory leaks
* Refactoring of io_handle/table/item

20080624
* Worked on initial version
* Worked on email

20080623
* Worked on initial version
* Worked on item reference

20080619
* Worked on initial version

20080615
* Worked on initial version
* Worked on high encryption support
* Fixed index value offset for array tables

20080614
* Worked on initial version
* Worked on handling table in array

20080613
* Worked on initial version

20080612
* Worked on initial version
* Worked on io handle, fixed memory issue
* Worked on folder, fixed folder reference list issue

20080611
* Worked on initial version
* Worked on item values
* Worked on io handle

20080610
* Worked on initial version
* Worked on folder API

20080608
* Worked on initial version
* Worked on array handling
* Fixed 0 byte wrap around issue in LZFu
* renamed handle to file
* Worked on file API

20080607
* Worked on initial version
* Implemented LZFu uncompress function
* Implemented weak crc calculation for LZFu
* Implemented (file) offset no compression flag handling
* Worked on array handling

20080606
* Worked on initial version

20080605
* Worked on initial version

20080603
* Worked on initial version
* Worked on 7c table header and different b5 table headers

20080602
* Worked on initial version
* Worked on 7c table header and different b5 table headers

20080601
* Worked on initial version
* Worked on 7c table header and different b5 table headers

20080531
* Worked on initial version
* Worked on filetime conversion functions

20080529
* Worked on initial version
* Fixed 1-off error in ASCII values of hexdump

20080528
* Worked on initial version

20080527
* Worked on initial version

20080526
* Worked on initial version

20080522
* Worked on initial version

20080521
* Worked on initial version
* Worked on readable encode base64 function

20080520
* Worked on initial version
* rename descriptor to table

20080516
* Worked on initial version

20080515
* Worked on initial version

20080514
* Worked on initial version

20080513
* Worked on initial version
* implemented offset list

20080512
* Worked on initial version

20080511
* Created initial version based on libpst-0.6.8 to analyze the pst file format
  and libtableau for the library structure

