diff options
author | thb <thb@openoffice.org> | 2010-02-19 12:46:18 +0100 |
---|---|---|
committer | thb <thb@openoffice.org> | 2010-02-19 12:46:18 +0100 |
commit | a4c9aaff986ef280dffee68c101323d4369c8eea (patch) | |
tree | dae59e2cb5cad9fe32e504b27f907c0ca2c6a65d /sdext | |
parent | 130a04677ca80d530e3afdcc65b73c504ce708e8 (diff) | |
parent | 6163dce52f006f6f5a390eebd000caeaa1c70854 (diff) |
Merged with dev300_m71
Diffstat (limited to 'sdext')
-rw-r--r-- | sdext/source/pdfimport/config/description.xml | 2 | ||||
-rw-r--r-- | sdext/source/pdfimport/pdfparse/pdfparse.cxx | 30 |
2 files changed, 30 insertions, 2 deletions
diff --git a/sdext/source/pdfimport/config/description.xml b/sdext/source/pdfimport/config/description.xml index 9feff443b421..08e2f505653a 100644 --- a/sdext/source/pdfimport/config/description.xml +++ b/sdext/source/pdfimport/config/description.xml @@ -16,7 +16,7 @@ </simple-license> </registration> - <version value="1.0" /> + <version value="1.0.2" /> <platform value="UPDATED_SUPPORTED_PLATFORM" /> diff --git a/sdext/source/pdfimport/pdfparse/pdfparse.cxx b/sdext/source/pdfimport/pdfparse/pdfparse.cxx index c9b3b1522cc5..36734cfcbc84 100644 --- a/sdext/source/pdfimport/pdfparse/pdfparse.cxx +++ b/sdext/source/pdfimport/pdfparse/pdfparse.cxx @@ -51,6 +51,7 @@ #include <rtl/strbuf.hxx> #include <rtl/memory.h> +#include <rtl/alloc.h> // disable warnings again because someone along the line has enabled them #if defined __SUNPRO_CC @@ -573,6 +574,33 @@ PDFEntry* PDFReader::read( const char* pBuffer, unsigned int nLen ) PDFEntry* PDFReader::read( const char* pFileName ) { + #ifdef WIN32 + /* #i106583# + since converting to boost 1.39 file_iterator does not work anymore on all Windows systems + C++ stdlib istream_iterator does not allow "-" apparently + using spirit 2.0 doesn't work in our environment with the MSC + + So for the time being bite the bullet and read the whole file. + FIXME: give Spirit 2.x another try when we upgrade boost again. + */ + PDFEntry* pRet = NULL; + FILE* fp = fopen( pFileName, "rb" ); + if( fp ) + { + fseek( fp, 0, SEEK_END ); + unsigned int nLen = (unsigned int)ftell( fp ); + fseek( fp, 0, SEEK_SET ); + char* pBuf = (char*)rtl_allocateMemory( nLen ); + if( pBuf ) + { + fread( pBuf, 1, nLen, fp ); + pRet = read( pBuf, nLen ); + rtl_freeMemory( pBuf ); + } + fclose( fp ); + } + return pRet; + #else file_iterator<> file_start( pFileName ); if( ! file_start ) return NULL; @@ -629,8 +657,8 @@ PDFEntry* PDFReader::read( const char* pFileName ) } } #endif - return pRet; + #endif // WIN32 } #if defined __SUNPRO_CC |