On Tue, 2015-12-01 at 10:35 +0100, julian.rehb...@de.gbs.com wrote: > Here is the patch file with your recommended changed.
Hi, thanks for the patch. I do not know why you resent it multiple times, I do not see any changes in it. I also prefer (and require) patches as attachments, not as text/plain body. The patch looks fine, except it doesn't build here with an error: --------------------------------------------------------------------- [ 5%] Building CXX object src/CMakeFiles/podofo_static.dir/base/PdfInputStream.cpp.o /data/develop/dila/podofo/trunk/src/base/PdfInputStream.cpp: In member function ‘PoDoFo::PdfDate PoDoFo::PdfFileInputStream::GetModifiedDate()’: /data/develop/dila/podofo/trunk/src/base/PdfInputStream.cpp:105:17: error: aggregate ‘PoDoFo::PdfFileInputStream::GetModifiedDate()::stat file_stat’ has incomplete type and cannot be defined struct stat file_stat; ^ /data/develop/dila/podofo/trunk/src/base/PdfInputStream.cpp:107:25: error: ‘fstat’ was not declared in this scope fstat(fp, &file_stat); ^ /data/develop/dila/podofo/trunk/src/base/PdfInputStream.cpp: In member function ‘PoDoFo::PdfDate PoDoFo::PdfFileInputStream::GetCreationDate()’: /data/develop/dila/podofo/trunk/src/base/PdfInputStream.cpp:114:17: error: aggregate ‘PoDoFo::PdfFileInputStream::GetCreationDate()::stat file_stat’ has incomplete type and cannot be defined struct stat file_stat; ^ /data/develop/dila/podofo/trunk/src/base/PdfInputStream.cpp:116:25: error: ‘fstat’ was not declared in this scope fstat(fp, &file_stat); ^ src/CMakeFiles/podofo_static.dir/build.make:470: recipe for target 'src/CMakeFiles/podofo_static.dir/base/PdfInputStream.cpp.o' failed make[2]: *** [src/CMakeFiles/podofo_static.dir/base/PdfInputStream.cpp.o] Error 1 CMakeFiles/Makefile2:117: recipe for target 'src/CMakeFiles/podofo_static.dir/all' failed make[1]: *** [src/CMakeFiles/podofo_static.dir/all] Error 2 Makefile:127: recipe for target 'all' failed make: *** [all] Error 2 --------------------------------------------------------------------- The change should be cross-platform, or conditionally compiled. I compile on a Linux machine here. Apart of this build failure, I've couple cosmetic queries on the patch itself, see below (pity your patch doesn't use -up argument for diff). > Index: src/base/PdfInputStream.cpp > =================================================================== > --- src/base/PdfInputStream.cpp (revision 1697) > +++ src/base/PdfInputStream.cpp (working copy) > @@ -35,6 +35,7 @@ > > #include "PdfInputDevice.h" > #include "PdfDefinesPrivate.h" > +#include "PdfDate.h" > > #include <stdio.h> > #include <string.h> > @@ -98,6 +99,24 @@ > return lLen; > } > > +PdfDate PdfFileInputStream::GetModifiedDate() > +{ > + coding style: extra empty line above > + struct stat file_stat; > + int fp = fileno(m_hFile); > + fstat(fp, &file_stat); > + return PdfDate(file_stat.st_mtime); > +} > + > + coding style: extra empty line above > +PdfDate PdfFileInputStream::GetCreationDate() > +{ > + struct stat file_stat; > + int fp = fileno(m_hFile); > + fstat(fp, &file_stat); > + return PdfDate(file_stat.st_ctime); > +} > + > FILE* > PdfFileInputStream::GetHandle() > { > Index: src/base/PdfInputStream.h > =================================================================== > --- src/base/PdfInputStream.h (revision 1697) > +++ src/base/PdfInputStream.h (working copy) > @@ -35,6 +35,7 @@ > #define _PDF_INPUT_STREAM_H_ > > #include "PdfDefines.h" > +#include "PdfDate.h" > > namespace PoDoFo { > > @@ -103,6 +104,16 @@ > */ > pdf_long GetFileLength(); > > + /** Get the modified date of the file. > + * \return the file modified date > + */ > + PdfDate GetModifiedDate(); > + > + /** Get the creation date of the file. > + * \return the file creation date > + */ > + PdfDate GetCreationDate(); > + > /** Get the internal FILE handle. > * \return the internal FILE handle > */ > Index: src/doc/PdfFileSpec.cpp > =================================================================== > --- src/doc/PdfFileSpec.cpp (revision 1697) > +++ src/doc/PdfFileSpec.cpp (working copy) > @@ -39,6 +39,7 @@ > #include "base/PdfInputStream.h" > #include "base/PdfObject.h" > #include "base/PdfStream.h" > +#include "base/PdfDate.h" > > #include <sstream> > > @@ -182,7 +183,7 @@ > // Add additional information about the embedded file to the > stream > PdfDictionary params; > params.AddKey( "Size", > static_cast<pdf_int64>(stream.GetFileLength()) ); > - // TODO: CreationDate and ModDate > + AddDateParams(params, stream.GetCreationDate(), > stream.GetModifiedDate()); > pStream->GetDictionary().AddKey("Params", params ); > } > > @@ -291,7 +292,7 @@ > // Add additional information about the embedded file to the > stream > PdfDictionary params; > params.AddKey( "Size", > static_cast<pdf_int64>(stream.GetFileLength()) ); > - // TODO: CreationDate and ModDate > + AddDateParams(params, stream.GetCreationDate(), > stream.GetModifiedDate()); > pStream->GetDictionary().AddKey("Params", params ); > } > > @@ -320,7 +321,7 @@ > return lastFrom; > } > > -void PdfFileSpec::EmbeddFileFromMem( PdfObject* pStream, const > unsigned char* data, ptrdiff_t size ) const > +void PdfFileSpec::EmbeddFileFromMem( PdfObject* pStream, const > unsigned char* data, ptrdiff_t size, const PdfDate* creation_date, > const PdfDate* mod_date ) const > { > PdfMemoryInputStream memstream(reinterpret_cast<const > char*>(data),size); > pStream->GetStream()->Set( &memstream ); > @@ -328,6 +329,17 @@ > // Add additional information about the embedded file to the > stream > PdfDictionary params; > params.AddKey( "Size", static_cast<pdf_int64>(size) ); > + PdfDate creation_date_internal; > + PdfDate mod_date_internal; > + if (creation_date != NULL) > + { > + creation_date_internal = *creation_date; > + } > + if (mod_date != NULL) > + { > + mod_date_internal = *mod_date; > + } > + AddDateParams( params, creation_date_internal, mod_date_internal > ); > pStream->GetDictionary().AddKey("Params", params ); > } > > @@ -346,5 +358,15 @@ > PODOFO_RAISE_ERROR( ePdfError_InvalidDataType ); > } > > +void PdfFileSpec::AddDateParams(PdfDictionary ¶ms, const PdfDate > &creation_date, const PdfDate &mod_date) const > +{ > + PdfString mod_date_string; > + mod_date.ToString(mod_date_string); > + params.AddKey("ModDate", mod_date_string); > + PdfString creation_date_string; > + creation_date.ToString(creation_date_string); > + params.AddKey("CreationDate", creation_date_string); > +} > > + coding style: extra empty line above > }; > Index: src/doc/PdfFileSpec.h > =================================================================== > --- src/doc/PdfFileSpec.h (revision 1697) > +++ src/doc/PdfFileSpec.h (working copy) > @@ -38,6 +38,8 @@ > > #include "podofo/base/PdfString.h" > > +#include "base/PdfDate.h" See how PdfString is included here. why not do it the same (and not add the empty gap between PdfString.h and PdfDate.h)? > + > #include "PdfElement.h" > > namespace PoDoFo { > @@ -125,8 +127,15 @@ > /* Petr P. Petrov 17 September 2009*/ > /** Embeds the file from memory > */ > - void EmbeddFileFromMem( PdfObject* pStream, const unsigned char* > data, ptrdiff_t size ) const; > + void EmbeddFileFromMem( PdfObject* pStream, const unsigned char* > data, ptrdiff_t size, const PdfDate* creation_date = NULL, const > PdfDate* mod_date = NULL ) const; > > + /** Add creation date and modified date params to the given > dictonary. > + * \param params add the dates to this dictionary > + * \param creation_date the creation date that will be added > + * \param mod_date the modified date that will be added > + */ > + void AddDateParams( PdfDictionary ¶ms, const PdfDate > &creation_date, const PdfDate &mod_date ) const; > + > }; > > }; Thanks and bye, zyx P.S.: by the way, do you have any idea why your mailer breaks threading of the messages? -- http://www.litePDF.cz i...@litepdf.cz ------------------------------------------------------------------------------ Go from Idea to Many App Stores Faster with Intel(R) XDK Give your users amazing mobile app experiences with Intel(R) XDK. Use one codebase in this all-in-one HTML5 development environment. Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs. http://pubads.g.doubleclick.net/gampad/clk?id=254741911&iu=/4140 _______________________________________________ Podofo-users mailing list Podofo-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/podofo-users