diff options
Diffstat (limited to 'external/libmwaw/0001-librevenge-stream-is-optional-don-t-depend-on-it.patch')
-rw-r--r-- | external/libmwaw/0001-librevenge-stream-is-optional-don-t-depend-on-it.patch | 293 |
1 files changed, 293 insertions, 0 deletions
diff --git a/external/libmwaw/0001-librevenge-stream-is-optional-don-t-depend-on-it.patch b/external/libmwaw/0001-librevenge-stream-is-optional-don-t-depend-on-it.patch new file mode 100644 index 000000000000..2b42f90ef14d --- /dev/null +++ b/external/libmwaw/0001-librevenge-stream-is-optional-don-t-depend-on-it.patch @@ -0,0 +1,293 @@ +From 7b7cf183a7ad454706aa0f1657c851c578ec476e Mon Sep 17 00:00:00 2001 +From: David Tardon <dtardon@redhat.com> +Date: Sun, 25 May 2014 15:51:54 +0200 +Subject: [PATCH] librevenge-stream is optional: don't depend on it + +--- + src/lib/MWAWStringStream.cxx | 153 +++++++++++++++++++++++++++++++++++++++++++ + src/lib/MWAWStringStream.hxx | 50 ++++++++++++++ + src/lib/Makefile.am | 2 + + src/lib/WingzParser.cxx | 3 +- + 4 files changed, 207 insertions(+), 1 deletion(-) + create mode 100644 src/lib/MWAWStringStream.cxx + create mode 100644 src/lib/MWAWStringStream.hxx + +diff --git a/src/lib/MWAWStringStream.cxx b/src/lib/MWAWStringStream.cxx +new file mode 100644 +index 0000000..efea071 +--- /dev/null ++++ b/src/lib/MWAWStringStream.cxx +@@ -0,0 +1,153 @@ ++/* -*- Mode: C++; c-default-style: "k&r"; indent-tabs-mode: nil; tab-width: 2; c-basic-offset: 2 -*- */ ++ ++/* libmwaw ++* Version: MPL 2.0 / LGPLv2+ ++* ++* The contents of this file are subject to the Mozilla Public License Version ++* 2.0 (the "License"); you may not use this file except in compliance with ++* the License or as specified alternatively below. You may obtain a copy of ++* the License at http://www.mozilla.org/MPL/ ++* ++* Software distributed under the License is distributed on an "AS IS" basis, ++* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ++* for the specific language governing rights and limitations under the ++* License. ++* ++* Alternatively, the contents of this file may be used under the terms of ++* the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"), ++* in which case the provisions of the LGPLv2+ are applicable ++* instead of those above. ++*/ ++ ++#include <cstring> ++#include <vector> ++ ++#include <librevenge-stream/librevenge-stream.h> ++ ++#include "MWAWStringStream.hxx" ++ ++class MWAWStringStreamPrivate ++{ ++public: ++ MWAWStringStreamPrivate(const unsigned char *data, unsigned dataSize); ++ ~MWAWStringStreamPrivate(); ++ std::vector<unsigned char> buffer; ++ long offset; ++private: ++ MWAWStringStreamPrivate(const MWAWStringStreamPrivate &); ++ MWAWStringStreamPrivate &operator=(const MWAWStringStreamPrivate &); ++}; ++ ++MWAWStringStreamPrivate::MWAWStringStreamPrivate(const unsigned char *data, unsigned dataSize) : ++ buffer(dataSize), ++ offset(0) ++{ ++ std::memcpy(&buffer[0], data, dataSize); ++} ++ ++MWAWStringStreamPrivate::~MWAWStringStreamPrivate() ++{ ++} ++ ++MWAWStringStream::MWAWStringStream(const unsigned char *data, const unsigned int dataSize) : ++ librevenge::RVNGInputStream(), ++ d(new MWAWStringStreamPrivate(data, dataSize)) ++{ ++} ++ ++MWAWStringStream::~MWAWStringStream() ++{ ++ delete d; ++} ++ ++const unsigned char *MWAWStringStream::read(unsigned long numBytes, unsigned long &numBytesRead) ++{ ++ numBytesRead = 0; ++ ++ if (numBytes == 0) ++ return 0; ++ ++ long numBytesToRead; ++ ++ if ((unsigned long)d->offset+numBytes < d->buffer.size()) ++ numBytesToRead = (long) numBytes; ++ else ++ numBytesToRead = (long) d->buffer.size() - d->offset; ++ ++ numBytesRead = (unsigned long) numBytesToRead; // about as paranoid as we can be.. ++ ++ if (numBytesToRead == 0) ++ return 0; ++ ++ long oldOffset = d->offset; ++ d->offset += numBytesToRead; ++ ++ return &d->buffer[size_t(oldOffset)]; ++ ++} ++ ++long MWAWStringStream::tell() ++{ ++ return d->offset; ++} ++ ++int MWAWStringStream::seek(long offset, librevenge::RVNG_SEEK_TYPE seekType) ++{ ++ if (seekType == librevenge::RVNG_SEEK_CUR) ++ d->offset += offset; ++ else if (seekType == librevenge::RVNG_SEEK_SET) ++ d->offset = offset; ++ else if (seekType == librevenge::RVNG_SEEK_END) ++ d->offset += d->buffer.size(); ++ ++ if (d->offset < 0) { ++ d->offset = 0; ++ return 1; ++ } ++ if ((long)d->offset > (long)d->buffer.size()) { ++ d->offset = (long) d->buffer.size(); ++ return 1; ++ } ++ ++ return 0; ++} ++ ++bool MWAWStringStream::isEnd() ++{ ++ if ((long)d->offset >= (long)d->buffer.size()) ++ return true; ++ ++ return false; ++} ++ ++bool MWAWStringStream::isStructured() ++{ ++ return false; ++} ++ ++unsigned MWAWStringStream::subStreamCount() ++{ ++ return 0; ++} ++ ++const char *MWAWStringStream::subStreamName(unsigned) ++{ ++ return 0; ++} ++ ++bool MWAWStringStream::existsSubStream(const char *) ++{ ++ return false; ++} ++ ++librevenge::RVNGInputStream *MWAWStringStream::getSubStreamById(unsigned) ++{ ++ return 0; ++} ++ ++librevenge::RVNGInputStream *MWAWStringStream::getSubStreamByName(const char *) ++{ ++ return 0; ++} ++ ++// vim: set filetype=cpp tabstop=2 shiftwidth=2 cindent autoindent smartindent noexpandtab: +diff --git a/src/lib/MWAWStringStream.hxx b/src/lib/MWAWStringStream.hxx +new file mode 100644 +index 0000000..9a6aa02 +--- /dev/null ++++ b/src/lib/MWAWStringStream.hxx +@@ -0,0 +1,50 @@ ++/* -*- Mode: C++; c-default-style: "k&r"; indent-tabs-mode: nil; tab-width: 2; c-basic-offset: 2 -*- */ ++ ++/* libmwaw ++* Version: MPL 2.0 / LGPLv2+ ++* ++* The contents of this file are subject to the Mozilla Public License Version ++* 2.0 (the "License"); you may not use this file except in compliance with ++* the License or as specified alternatively below. You may obtain a copy of ++* the License at http://www.mozilla.org/MPL/ ++* ++* Software distributed under the License is distributed on an "AS IS" basis, ++* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ++* for the specific language governing rights and limitations under the ++* License. ++* ++* Alternatively, the contents of this file may be used under the terms of ++* the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"), ++* in which case the provisions of the LGPLv2+ are applicable ++* instead of those above. ++*/ ++ ++#include <librevenge-stream/librevenge-stream.h> ++ ++class MWAWStringStreamPrivate; ++ ++class MWAWStringStream: public librevenge::RVNGInputStream ++{ ++public: ++ MWAWStringStream(const unsigned char *data, const unsigned int dataSize); ++ ~MWAWStringStream(); ++ ++ const unsigned char *read(unsigned long numBytes, unsigned long &numBytesRead); ++ long tell(); ++ int seek(long offset, librevenge::RVNG_SEEK_TYPE seekType); ++ bool isEnd(); ++ ++ bool isStructured(); ++ unsigned subStreamCount(); ++ const char *subStreamName(unsigned); ++ bool existsSubStream(const char *name); ++ librevenge::RVNGInputStream *getSubStreamByName(const char *name); ++ librevenge::RVNGInputStream *getSubStreamById(unsigned); ++ ++private: ++ MWAWStringStreamPrivate *d; ++ MWAWStringStream(const MWAWStringStream &); // copy is not allowed ++ MWAWStringStream &operator=(const MWAWStringStream &); // assignment is not allowed ++}; ++ ++// vim: set filetype=cpp tabstop=2 shiftwidth=2 cindent autoindent smartindent noexpandtab: +diff --git a/src/lib/Makefile.in b/src/lib/Makefile.in +index eb17bad..f7934b4 100644 +--- a/src/lib/Makefile.in ++++ b/src/lib/Makefile.in +@@ -162,12 +162,12 @@ am_libmwaw_@MWAW_MAJOR_VERSION@_@MWAW_MI + MWAWPrinter.lo MWAWPropertyHandler.lo MWAWRSRCParser.lo \ + MWAWSection.lo MWAWSpreadsheetDecoder.lo \ + MWAWSpreadsheetEncoder.lo MWAWSpreadsheetListener.lo \ +- MWAWSubDocument.lo MWAWTable.lo MWAWTextListener.lo \ +- NisusWrtGraph.lo NisusWrtParser.lo NisusWrtStruct.lo \ +- NisusWrtText.lo RagTimeParser.lo RagTimeSpreadsheet.lo \ +- RagTimeText.lo SuperPaintParser.lo TeachTxtParser.lo \ +- WingzParser.lo WriteNowParser.lo WriteNowText.lo \ +- WriterPlsParser.lo ZWrtParser.lo ZWrtText.lo ++ MWAWStringStream.lo MWAWSubDocument.lo MWAWTable.lo \ ++ MWAWTextListener.lo NisusWrtGraph.lo NisusWrtParser.lo \ ++ NisusWrtStruct.lo NisusWrtText.lo RagTimeParser.lo \ ++ RagTimeSpreadsheet.lo RagTimeText.lo SuperPaintParser.lo \ ++ TeachTxtParser.lo WingzParser.lo WriteNowParser.lo \ ++ WriteNowText.lo WriterPlsParser.lo ZWrtParser.lo ZWrtText.lo + libmwaw_@MWAW_MAJOR_VERSION@_@MWAW_MINOR_VERSION@_la_OBJECTS = $(am_libmwaw_@MWAW_MAJOR_VERSION@_@MWAW_MINOR_VERSION@_la_OBJECTS) + AM_V_lt = $(am__v_lt_@AM_V@) + am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +@@ -610,6 +610,8 @@ libmwaw_@MWAW_MAJOR_VERSION@_@MWAW_MINOR + MWAWSpreadsheetEncoder.hxx \ + MWAWSpreadsheetListener.cxx \ + MWAWSpreadsheetListener.hxx \ ++ MWAWStringStream.cxx \ ++ MWAWStringStream.hxx \ + MWAWSubDocument.cxx \ + MWAWSubDocument.hxx \ + MWAWTable.cxx \ +@@ -812,6 +814,7 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MWAWSpreadsheetDecoder.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MWAWSpreadsheetEncoder.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MWAWSpreadsheetListener.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MWAWStringStream.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MWAWSubDocument.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MWAWTable.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MWAWTextListener.Plo@am__quote@ +diff --git a/src/lib/WingzParser.cxx b/src/lib/WingzParser.cxx +index 4813816..93dde7d 100644 +--- a/src/lib/WingzParser.cxx ++++ b/src/lib/WingzParser.cxx +@@ -49,6 +49,7 @@ + #include "MWAWPictMac.hxx" + #include "MWAWPrinter.hxx" + #include "MWAWSpreadsheetListener.hxx" ++#include "MWAWStringStream.hxx" + #include "MWAWSubDocument.hxx" + + #include "WingzParser.hxx" +@@ -2496,7 +2497,7 @@ bool WingzParser::decodeEncrypted() + + // finally replace the actual input with a new input + shared_ptr<librevenge::RVNGInputStream> newInput +- (new librevenge::RVNGStringStream(buffer, (unsigned int)length)); ++ (new MWAWStringStream(buffer, (unsigned int)length)); + delete [] buffer; + getParserState()->m_input.reset(new MWAWInputStream(newInput, false)); + return true; +-- +1.9.0 + |