diff options
author | sb <sb@openoffice.org> | 2010-02-08 09:18:14 +0100 |
---|---|---|
committer | sb <sb@openoffice.org> | 2010-02-08 09:18:14 +0100 |
commit | 080dcac62505e086c21227ed063b4bbefa94cee2 (patch) | |
tree | e770722a41decea8be87a1916247406f86052604 /sdext | |
parent | 0ee646e5f310b35f68b596798c42a3c580d4cc7b (diff) | |
parent | 6163dce52f006f6f5a390eebd000caeaa1c70854 (diff) |
sb118: merged in 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 |