diff --git a/.gitignore b/.gitignore index 959ef72..4983641 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /libmwaw-0.1.11.tar.xz /libmwaw-0.2.0.tar.xz /libmwaw-0.3.1.tar.xz +/libmwaw-0.3.2.tar.xz diff --git a/0001-librevenge-stream-is-optional-don-t-depend-on-it.patch b/0001-librevenge-stream-is-optional-don-t-depend-on-it.patch deleted file mode 100644 index a328810..0000000 --- a/0001-librevenge-stream-is-optional-don-t-depend-on-it.patch +++ /dev/null @@ -1,266 +0,0 @@ -From 7b7cf183a7ad454706aa0f1657c851c578ec476e Mon Sep 17 00:00:00 2001 -From: David Tardon -Date: Sun, 25 May 2014 15:51:54 +0200 -Subject: [PATCH 1/2] 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 -+#include -+ -+#include -+ -+#include "MWAWStringStream.hxx" -+ -+class MWAWStringStreamPrivate -+{ -+public: -+ MWAWStringStreamPrivate(const unsigned char *data, unsigned dataSize); -+ ~MWAWStringStreamPrivate(); -+ std::vector 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 -+ -+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.am b/src/lib/Makefile.am -index eb17bad..f7934b4 100644 ---- a/src/lib/Makefile.am -+++ b/src/lib/Makefile.am -@@ -223,6 +223,8 @@ libmwaw_@MWAW_MAJOR_VERSION@_@MWAW_MINOR_VERSION@_la_SOURCES = \ - MWAWSpreadsheetEncoder.hxx \ - MWAWSpreadsheetListener.cxx \ - MWAWSpreadsheetListener.hxx \ -+ MWAWStringStream.cxx \ -+ MWAWStringStream.hxx \ - MWAWSubDocument.cxx \ - MWAWSubDocument.hxx \ - MWAWTable.cxx \ -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 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 - diff --git a/0002-librevenge-stream-is-optional-don-t-depend-on-it.patch b/0002-librevenge-stream-is-optional-don-t-depend-on-it.patch deleted file mode 100644 index 8c1a47c..0000000 --- a/0002-librevenge-stream-is-optional-don-t-depend-on-it.patch +++ /dev/null @@ -1,54 +0,0 @@ -From ead2223f2d3d4742df84f37c6cea9c73b71257c5 Mon Sep 17 00:00:00 2001 -From: David Tardon -Date: Sun, 25 May 2014 16:07:21 +0200 -Subject: [PATCH 2/2] librevenge-stream is optional: don't depend on it - ---- - src/lib/MWAWInputStream.cxx | 9 +++++---- - 1 file changed, 5 insertions(+), 4 deletions(-) - -diff --git a/src/lib/MWAWInputStream.cxx b/src/lib/MWAWInputStream.cxx -index 91b713b..0d60f67 100644 ---- a/src/lib/MWAWInputStream.cxx -+++ b/src/lib/MWAWInputStream.cxx -@@ -43,6 +43,7 @@ - #include "MWAWDebug.hxx" - - #include "MWAWInputStream.hxx" -+#include "MWAWStringStream.hxx" - - MWAWInputStream::MWAWInputStream(shared_ptr inp, bool inverted) - : m_stream(inp), m_streamSize(0), m_inverseRead(inverted), m_readLimit(-1), m_prevLimits(), -@@ -517,7 +518,7 @@ bool MWAWInputStream::unBinHex() - MWAW_DEBUG_MSG(("MWAWInputStream::unBinHex: can not read the resource fork\n")); - } - else { -- shared_ptr rsrc(new librevenge::RVNGStringStream(data, (unsigned int)numBytesRead)); -+ shared_ptr rsrc(new MWAWStringStream(data, (unsigned int)numBytesRead)); - m_resourceFork.reset(new MWAWInputStream(rsrc,false)); - } - } -@@ -532,7 +533,7 @@ bool MWAWInputStream::unBinHex() - MWAW_DEBUG_MSG(("MWAWInputStream::unBinHex: can not read the data fork\n")); - return false; - } -- m_stream.reset(new librevenge::RVNGStringStream(data, (unsigned int)numBytesRead)); -+ m_stream.reset(new MWAWStringStream(data, (unsigned int)numBytesRead)); - } - - return true; -@@ -692,9 +693,9 @@ bool MWAWInputStream::unMacMIME(MWAWInputStream *inp, - return false; - } - if (wh==1) -- dataInput.reset(new librevenge::RVNGStringStream(data, (unsigned int)numBytesRead)); -+ dataInput.reset(new MWAWStringStream(data, (unsigned int)numBytesRead)); - else if (wh==2) -- rsrcInput.reset(new librevenge::RVNGStringStream(data, (unsigned int)numBytesRead)); -+ rsrcInput.reset(new MWAWStringStream(data, (unsigned int)numBytesRead)); - else { // the finder info - if (entrySize < 8) { - MWAW_DEBUG_MSG(("MWAWInputStream::unMacMIME: finder info size is odd\n")); --- -1.9.0 - diff --git a/libmwaw.spec b/libmwaw.spec index 6620535..c5ca9bf 100644 --- a/libmwaw.spec +++ b/libmwaw.spec @@ -1,23 +1,19 @@ %global apiversion 0.3 Name: libmwaw -Version: 0.3.1 -Release: 2%{?dist} +Version: 0.3.2 +Release: 1%{?dist} Summary: A library for import of many old Mac document formats License: LGPLv2+ or MPLv2.0 URL: http://sourceforge.net/projects/libmwaw/ Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.xz -BuildRequires: automake BuildRequires: boost-devel BuildRequires: doxygen BuildRequires: help2man BuildRequires: pkgconfig(librevenge-0.0) -Patch0: 0001-librevenge-stream-is-optional-don-t-depend-on-it.patch -Patch1: 0002-librevenge-stream-is-optional-don-t-depend-on-it.patch - %description {name} is a library for import of old Mac documents. It supports many kinds of text documents, spreadsheets, databases, vector and bitmap @@ -53,8 +49,6 @@ Supported output formats are CSV, HTML, SVG, plain text and raw. %autosetup -p1 %build -aclocal -automake --add-missing %configure --disable-static --disable-werror --disable-zip --enable-docs sed -i \ -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \ @@ -110,6 +104,9 @@ install -m 0644 mwaw2*.1 %{buildroot}/%{_mandir}/man1 %{_mandir}/man1/mwaw2text.1* %changelog +* Wed Aug 13 2014 David Tardon - 0.3.2-1 +- new upstream release + * Sat Jun 07 2014 Fedora Release Engineering - 0.3.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild diff --git a/sources b/sources index bb6ff6f..8e62a20 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -0f5d08a835145c599c900b7b6cef1e3b libmwaw-0.3.1.tar.xz +b1847d4befd4e0e6a297101f0e28ad99 libmwaw-0.3.2.tar.xz