# HG changeset patch # User Carl Byington # Date 1233640548 28800 # Node ID bdb38b434c0a93bf59837d3a1b10f511694e6456 # Parent 8399ef94c11b9fba0c6d6bc709bd82f4a200af3a more changes from Fridrich Strba to avoid installing our config.h diff -r 8399ef94c11b -r bdb38b434c0a ChangeLog --- a/ChangeLog Sun Feb 01 19:21:47 2009 -0800 +++ b/ChangeLog Mon Feb 02 21:55:48 2009 -0800 @@ -1,4 +1,4 @@ -LibPST 0.6.26 (2009-02-01) +LibPST 0.6.26 (2009-02-02) =============================== * patch from Fridrich Strba for building on mingw and general cleanup of autoconf files diff -r 8399ef94c11b -r bdb38b434c0a Makefile.am --- a/Makefile.am Sun Feb 01 19:21:47 2009 -0800 +++ b/Makefile.am Mon Feb 02 21:55:48 2009 -0800 @@ -1,14 +1,11 @@ -SUBDIRS = src man html info debian libpst +SUBDIRS = src man html info debian htmldir = ${datadir}/doc/@PACKAGE@-@VERSION@ html_DATA = AUTHORS COPYING ChangeLog NEWS README CLEANFILES = xml/libpst xml/Makefile -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = libpst.pc - EXTRA_DIST = Doxyfile libpst.html.tar.gz libpst.spec $(wildcard xml/M*) $(wildcard xml/h*) $(wildcard xml/lib*) if !STATIC_TOOLS - libpstincludedir = $(includedir)/libpst - libpstinclude_HEADERS = config.h + pkgconfigdir = $(libdir)/pkgconfig + pkgconfig_DATA = libpst.pc endif diff -r 8399ef94c11b -r bdb38b434c0a configure.in --- a/configure.in Sun Feb 01 19:21:47 2009 -0800 +++ b/configure.in Mon Feb 02 21:55:48 2009 -0800 @@ -13,10 +13,6 @@ *-mingw*) os_win32=yes ;; - *cygwin*) - os_win32=yes - enable_dii=no # cygwin would find windir/system32/convert, not image magick convert - ;; *) os_win32=no ;; @@ -24,6 +20,19 @@ AC_MSG_RESULT($os_win32) AM_CONDITIONAL(OS_WIN32, [test "$os_win32" = "yes"]) +# Check for Win32 platform +AC_MSG_CHECKING([for Win32 platform in general]) +case "$host" in + *-cygwin*) + platform_win32=yes + ;; + *) + platform_win32=$os_win32 + ;; +esac +AC_MSG_RESULT($platform_win32) +AM_CONDITIONAL(PLATFORM_WIN32, [test "$platform_win32" = "yes"]) + # Checks for programs. # The following lines adds the --enable-dii option to configure: @@ -241,7 +250,6 @@ info/Makefile \ libpst.pc \ libpst.spec \ - libpst/Makefile \ man/Makefile \ src/Makefile \ src/pst2dii.cpp \ diff -r 8399ef94c11b -r bdb38b434c0a libpst.spec.in --- a/libpst.spec.in Sun Feb 01 19:21:47 2009 -0800 +++ b/libpst.spec.in Mon Feb 02 21:55:48 2009 -0800 @@ -47,7 +47,7 @@ %changelog -* Sun Feb 01 2009 Carl Byington - 0.6.26-1 +* Mon Feb 02 2009 Carl Byington - 0.6.26-1 - patch from Fridrich Strba for building on mingw and general - cleanup of autoconf files - add processing for pst files of type 0x0f diff -r 8399ef94c11b -r bdb38b434c0a libpst/Makefile.am --- a/libpst/Makefile.am Sun Feb 01 19:21:47 2009 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -EXTRA_DIST = config.h diff -r 8399ef94c11b -r bdb38b434c0a libpst/config.h --- a/libpst/config.h Sun Feb 01 19:21:47 2009 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -// -// this file only exists to allow including -// while building this package. The real config.h is at the -// top level, generated by ./configure, and installed into -// $includepath/libpst - -#include "../config.h" - diff -r 8399ef94c11b -r bdb38b434c0a src/Makefile.am --- a/src/Makefile.am Sun Feb 01 19:21:47 2009 -0800 +++ b/src/Makefile.am Mon Feb 02 21:55:48 2009 -0800 @@ -1,13 +1,15 @@ -if OS_WIN32 - ICONVLIB = -liconv +if PLATFORM_WIN32 + ICONVLIB = -liconv + NO_UNDEFINED = -no-undefined else - ICONVLIB = + ICONVLIB = + NO_UNDEFINED = endif if STATIC_TOOLS - PSTLIB=@PST_OBJDIR@/libpst.a + PSTLIB = @PST_OBJDIR@/libpst.a else - PSTLIB=libpst.la + PSTLIB = libpst.la endif common_header = common.h \ @@ -27,6 +29,7 @@ if NEED_XGETOPT common_source += XGetopt.c + common_header += XGetopt.h endif noinst_PROGRAMS = deltasearch dumpblocks getidblock @@ -59,12 +62,11 @@ libpstincludedir = $(includedir)/libpst libpstinclude_HEADERS = \ common.h \ - define.h \ libpst.h \ libstrfunc.h\ timeconv.h \ vbuf.h - libpst_la_LDFLAGS = -no-undefined -version-info 1:0:0 + libpst_la_LDFLAGS = $(NO_UNDEFINED) -version-info 1:0:0 endif libpst_la_SOURCES = $(common_source) $(common_header) @@ -72,6 +74,9 @@ EXTRA_DIST = testdebug.c +if !NEED_XGETOPT + EXTRA_DIST += XGetopt.c XGetopt.h +endif # set the include path found by configure INCLUDES= -I$(srcdir)/.. $(all_includes) diff -r 8399ef94c11b -r bdb38b434c0a src/common.h --- a/src/common.h Sun Feb 01 19:21:47 2009 -0800 +++ b/src/common.h Mon Feb 02 21:55:48 2009 -0800 @@ -2,22 +2,41 @@ #ifndef __COMMON_H #define __COMMON_H +#include +#include +#include + + +#ifndef _MSC_VER + #include + #include +#else + typedef signed char int8_t; + typedef unsigned char uint8_t; + typedef unsigned short uint16_t; + typedef short int16_t; + typedef unsigned int uint32_t; + typedef int int32_t; + typedef unsigned long long uint64_t; + typedef long long int64_t; +#endif + + #ifndef _WIN32 typedef uint32_t DWORD; typedef uint16_t WORD; typedef uint8_t BYTE; typedef uint32_t UINT32; - -# pragma pack (1) - -#ifndef FILETIME_DEFINED - #define FILETIME_DEFINED - /*Win32 Filetime struct - copied from WINE*/ - typedef struct { + typedef struct { // copied from wine DWORD dwLowDateTime; DWORD dwHighDateTime; } FILETIME; -#endif // FILETIME_DEFINED + // According to Jan Wolter, sys/param.h is the most portable source of endian + // information on UNIX systems. see http://www.unixpapa.com/incnote/byteorder.html + #include +#else + #define BYTE_ORDER LITTLE_ENDIAN +#endif -#endif // _WIN32 -#endif // __COMMON_H + +#endif diff -r 8399ef94c11b -r bdb38b434c0a src/debug.c --- a/src/debug.c Sun Feb 01 19:21:47 2009 -0800 +++ b/src/debug.c Mon Feb 02 21:55:48 2009 -0800 @@ -1,6 +1,5 @@ - +#include "common.h" #include "define.h" -//#include struct pst_debug_item { int type; diff -r 8399ef94c11b -r bdb38b434c0a src/define.h --- a/src/define.h Sun Feb 01 19:21:47 2009 -0800 +++ b/src/define.h Mon Feb 02 21:55:48 2009 -0800 @@ -9,7 +9,7 @@ #define DEFINEH_H #ifdef HAVE_CONFIG_H - #include + #include "config.h" #endif #ifdef _WIN32 @@ -45,18 +45,6 @@ #define DEBUG_FUNCRET_NO 10 #define DEBUG_HEXDUMP_NO 11 -#ifdef HAVE_STDIO_H - #include -#endif - -#ifdef HAVE_STDLIB_H - #include -#endif - -#ifdef HAVE_STDARG_H - #include -#endif - #ifdef HAVE_TIME_H #include #endif @@ -93,7 +81,7 @@ #define D_MKDIR(x) mkdir(x) #define chdir _chdir - + #define strcasecmp _stricmp #define vsnprintf _vsnprintf #define snprintf _snprintf #ifdef _MSC_VER @@ -105,19 +93,10 @@ #else #error Only MSC and mingw supported for Windows #endif - #define strcasecmp _stricmp #ifndef __MINGW32__ #define off_t __int64 #define size_t __int64 #endif - #define int64_t __int64 - #define uint64_t unsigned __int64 - #define int32_t __int32 - #define uint32_t unsigned int - #define int16_t short int - #define uint16_t unsigned short int - #define int8_t signed char - #define uint8_t unsigned char #ifndef UINT64_MAX #define UINT64_MAX ((uint64_t)0xffffffffffffffff) #endif @@ -133,12 +112,6 @@ #include #else - #ifdef HAVE_STDINT_H - #include - #endif - #ifdef HAVE_INTTYPES_H - #include - #endif #ifdef HAVE_UNISTD_H #include #define D_MKDIR(x) mkdir(x, PERM_DIRS) diff -r 8399ef94c11b -r bdb38b434c0a src/dumpblocks.c --- a/src/dumpblocks.c Sun Feb 01 19:21:47 2009 -0800 +++ b/src/dumpblocks.c Mon Feb 02 21:55:48 2009 -0800 @@ -1,8 +1,10 @@ -#include "define.h" #include "common.h" #include "libpst.h" +#include "define.h" + #define OUT_BUF 20 + int main(int argc, char* const* argv) { pst_file pstfile; diff -r 8399ef94c11b -r bdb38b434c0a src/getidblock.c --- a/src/getidblock.c Sun Feb 01 19:21:47 2009 -0800 +++ b/src/getidblock.c Mon Feb 02 21:55:48 2009 -0800 @@ -1,7 +1,8 @@ + +#include "common.h" +#include "libpst.h" #include "define.h" -#include "common.h" -#include "libpst.h" static void usage(); diff -r 8399ef94c11b -r bdb38b434c0a src/libpst.c --- a/src/libpst.c Sun Feb 01 19:21:47 2009 -0800 +++ b/src/libpst.c Mon Feb 02 21:55:48 2009 -0800 @@ -5,19 +5,21 @@ * dave.s@earthcorp.com */ -#include "define.h" #include "common.h" #include "libpst.h" #include "timeconv.h" #include "libstrfunc.h" #include "vbuf.h" +#include "define.h" + #define ASSERT(x) { if(!(x)) raise( SIGSEGV ); } #define INDEX_TYPE32 0x0E #define INDEX_TYPE32A 0x0F // unknown, but assumed to be similar for now #define INDEX_TYPE64 0x17 +#define INDEX_TYPE64A 0x15 // http://sourceforge.net/projects/libpff/ #define INDEX_TYPE_OFFSET (off_t)0x0A #define FILE_SIZE_POINTER32 (off_t)0xA8 @@ -203,6 +205,7 @@ pf->do_read64 = 0; break; case INDEX_TYPE64 : + case INDEX_TYPE64A : pf->do_read64 = 1; break; default: diff -r 8399ef94c11b -r bdb38b434c0a src/libpst.h --- a/src/libpst.h Sun Feb 01 19:21:47 2009 -0800 +++ b/src/libpst.h Mon Feb 02 21:55:48 2009 -0800 @@ -10,15 +10,6 @@ #ifndef LIBPST_H #define LIBPST_H -// According to Jan Wolter, sys/param.h is the most portable source of endian -// information on UNIX systems. see http://www.unixpapa.com/incnote/byteorder.html -#ifdef _WIN32 - #define BYTE_ORDER LITTLE_ENDIAN -#else - #ifdef HAVE_SYS_PARAM_H - #include - #endif -#endif // defined _WIN32 #if BYTE_ORDER == BIG_ENDIAN # define LE64_CPU(x) \ diff -r 8399ef94c11b -r bdb38b434c0a src/lspst.c --- a/src/lspst.c Sun Feb 01 19:21:47 2009 -0800 +++ b/src/lspst.c Mon Feb 02 21:55:48 2009 -0800 @@ -6,11 +6,12 @@ * */ -#include "define.h" #include "common.h" #include "libpst.h" #include "timeconv.h" +#include "define.h" + struct file_ll { char *dname; int32_t stored_count; diff -r 8399ef94c11b -r bdb38b434c0a src/lzfu.c --- a/src/lzfu.c Sun Feb 01 19:21:47 2009 -0800 +++ b/src/lzfu.c Mon Feb 02 21:55:48 2009 -0800 @@ -9,9 +9,10 @@ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ -#include "define.h" #include "common.h" #include "libpst.h" + +#include "define.h" #include "lzfu.h" #ifdef HAVE_SYS_TYPES_H diff -r 8399ef94c11b -r bdb38b434c0a src/pst2ldif.cpp --- a/src/pst2ldif.cpp Sun Feb 01 19:21:47 2009 -0800 +++ b/src/pst2ldif.cpp Mon Feb 02 21:55:48 2009 -0800 @@ -16,13 +16,14 @@ #include extern "C" { - #include "define.h" #include "common.h" #include "libpst.h" #include "timeconv.h" - #include "lzfu.h" #include "libstrfunc.h" #include "vbuf.h" + + #include "define.h" + #include "lzfu.h" } void usage(void); diff -r 8399ef94c11b -r bdb38b434c0a src/readpst.c --- a/src/readpst.c Sun Feb 01 19:21:47 2009 -0800 +++ b/src/readpst.c Mon Feb 02 21:55:48 2009 -0800 @@ -4,14 +4,15 @@ * Written by David Smith * dave.s@earthcorp.com */ -#include "define.h" #include "common.h" #include "libpst.h" #include "timeconv.h" -#include "lzfu.h" #include "libstrfunc.h" #include "vbuf.h" +#include "define.h" +#include "lzfu.h" + #ifdef HAVE_REGEX_H #include #endif diff -r 8399ef94c11b -r bdb38b434c0a src/readpstlog.c --- a/src/readpstlog.c Sun Feb 01 19:21:47 2009 -0800 +++ b/src/readpstlog.c Mon Feb 02 21:55:48 2009 -0800 @@ -1,3 +1,6 @@ + +#include "common.h" + #include "define.h" #define BUF_SIZE 4096 diff -r 8399ef94c11b -r bdb38b434c0a src/timeconv.c --- a/src/timeconv.c Sun Feb 01 19:21:47 2009 -0800 +++ b/src/timeconv.c Mon Feb 02 21:55:48 2009 -0800 @@ -14,10 +14,12 @@ #ifndef _WIN32 #include -#include "define.h" + #include "common.h" #include "timeconv.h" +#include "define.h" + char * fileTimeToAscii (const FILETIME *filetime) { time_t t1; diff -r 8399ef94c11b -r bdb38b434c0a xml/libpst.in --- a/xml/libpst.in Sun Feb 01 19:21:47 2009 -0800 +++ b/xml/libpst.in Mon Feb 02 21:55:48 2009 -0800 @@ -23,12 +23,17 @@ for import to an LDAP server. + The libpff project + has some excellent documentation of the pst file format. + + - 2009-01-25 + 2009-02-01 @@ -228,7 +233,7 @@ - 2009-01-25 + 2009-02-01 @@ -331,7 +336,7 @@ - 2009-01-25 + 2009-02-01 @@ -515,7 +520,7 @@ - 2009-01-25 + 2009-02-01 @@ -691,7 +696,7 @@ - 2009-01-25 + 2009-02-01 @@ -825,7 +830,7 @@ - 2009-01-25 + 2009-02-01 @@ -905,14 +910,17 @@ 00bc offsetIndex2 [4 bytes] 0x0c7e00 in this case ]]> - We only support index types 0x0e, 0x0f, and 0x17, and encryption types - 0x00, 0x01 and 0x02. Index type 0x0e is the older 32 bit Outlook format. - Index type 0x0f seems to be rare, and so far the data seems to be - identical to that in type 0x0e files. - Index type 0x17 is the newer 64 bit Outlook format. Encryption - type 0x00 is no encryption, type 0x01 is "compressible" encryption - which is a simple substitution cipher, and type 0x02 is "strong" - encryption, which is a simple three rotor Enigma cipher from WWII. + We only support index types 0x0e, 0x0f, 0x15, and 0x17, and encryption + types 0x00, 0x01 and 0x02. Index type 0x0e is the older 32 bit Outlook + format. Index type 0x0f seems to be rare, and so far the data seems + to be identical to that in type 0x0e files. Index type 0x17 is the + newer 64 bit Outlook format. Index type 0x15 seems to be rare, and + according to the libpff project should have the same format as type + 0x17 files. It was found in a 64-bit pst file created by Visual + Recovery. Encryption type 0x00 is no encryption, type 0x01 is + "compressible" encryption which is a simple substitution cipher, and + type 0x02 is "strong" encryption, which is a simple three rotor Enigma + cipher from WWII. offsetIndex1 is the file offset of the root of the