[Libreoffice-commits] .: 2 commits - libwpd/libwpd.corruptedprefix.patch libwpd/libwpd.warnings.patch libwpd/makefile.mk

Fridrich Strba fridrich at kemper.freedesktop.org
Fri Apr 1 06:40:50 PDT 2011


 libwpd/libwpd.corruptedprefix.patch |  107 ++++++++++++++++++++++++++++++++++++
 libwpd/libwpd.warnings.patch        |   32 ++++++++++
 libwpd/makefile.mk                  |    4 +
 3 files changed, 142 insertions(+), 1 deletion(-)

New commits:
commit 58078cab653a7a553dcccd55500da5a15e88c6e2
Author: Fridrich Å trba <fridrich.strba at bluewin.ch>
Date:   Fri Apr 1 15:40:20 2011 +0200

    Silence some unreachable code warnings

diff --git a/libwpd/libwpd.warnings.patch b/libwpd/libwpd.warnings.patch
new file mode 100644
index 0000000..ebc86dc
--- /dev/null
+++ b/libwpd/libwpd.warnings.patch
@@ -0,0 +1,32 @@
+--- misc/libwpd-0.9.1/src/lib/libwpd_internal.cpp
++++ misc/build/libwpd-0.9.1/src/lib/libwpd_internal.cpp
+@@ -998,21 +998,25 @@ _WPXColumnProperties::_WPXColumnProperties()
+ // HACK: this function is really cheesey
+ int _extractNumericValueFromRoman(const char romanChar)
+ {
++	int retValue = 0;
+ 	switch (romanChar)
+ 	{
+ 	case 'I':
+ 	case 'i':
+-		return 1;
++		retValue = 1;
++		break;
+ 	case 'V':
+ 	case 'v':
+-		return 5;
++		retValue = 5;
++		break;
+ 	case 'X':
+ 	case 'x':
+-		return 10;
++		retValue = 10;
++		break;
+ 	default:
+ 		throw ParseException();
+ 	}
+-	return 1;
++	return retValue;
+ }
+ 
+ // _extractDisplayReferenceNumberFromBuf: given a nuWP6_DEFAULT_FONT_SIZEmber string in UCS2 represented
diff --git a/libwpd/makefile.mk b/libwpd/makefile.mk
index 717facb..6ecbbfa 100644
--- a/libwpd/makefile.mk
+++ b/libwpd/makefile.mk
@@ -44,7 +44,8 @@ TARGET=wpd
 TARFILE_NAME=libwpd-0.9.1
 TARFILE_MD5=5ff846847dab351604ad859e2fd4ed3c
 PATCH_FILES=libwpd.gcc460.patch \
-   libwpd.corruptedprefix.patch
+    libwpd.corruptedprefix.patch \
+    libwpd.warnings.patch
 BUILD_ACTION=dmake $(MFLAGS) $(CALLMACROS)
 BUILD_DIR=src$/lib
 
commit fa4d56eb733b1d21b688320e37f5ab0565398af4
Author: Fridrich Å trba <fridrich.strba at bluewin.ch>
Date:   Fri Apr 1 15:37:55 2011 +0200

    Handle corrupted WP6 prefixes graciously

diff --git a/libwpd/libwpd.corruptedprefix.patch b/libwpd/libwpd.corruptedprefix.patch
new file mode 100644
index 0000000..1fa051f
--- /dev/null
+++ b/libwpd/libwpd.corruptedprefix.patch
@@ -0,0 +1,107 @@
+--- misc/libwpd-0.9.1/src/lib/WP6PrefixDataPacket.cpp
++++ misc/build/libwpd-0.9.1/src/lib/WP6PrefixDataPacket.cpp
+@@ -46,45 +46,67 @@ WP6PrefixDataPacket::WP6PrefixDataPacket(WPXInputStream * /* input */, WPXEncryp
+ }
+
+ WP6PrefixDataPacket * WP6PrefixDataPacket::constructPrefixDataPacket(WPXInputStream * input, WPXEncryption *encryption, WP6PrefixIndice *prefixIndice)
+-{
+-	switch (prefixIndice->getType())
++{
++	WP6PrefixDataPacket *tmpPacket = 0;
++	try
++	{
++		switch (prefixIndice->getType())
++		{
++		case WP6_INDEX_HEADER_INITIAL_FONT:
++			tmpPacket = new WP6DefaultInitialFontPacket(input, encryption, prefixIndice->getID(),
++					prefixIndice->getDataOffset(), prefixIndice->getDataSize());
++			break;
++		case WP6_INDEX_HEADER_GENERAL_WORDPERFECT_TEXT:
++			tmpPacket = new WP6GeneralTextPacket(input, encryption, prefixIndice->getID(),
++					prefixIndice->getDataOffset(), prefixIndice->getDataSize());
++			break;
++		case WP6_INDEX_HEADER_DESIRED_FONT_DESCRIPTOR_POOL:
++			tmpPacket = new WP6FontDescriptorPacket(input, encryption, prefixIndice->getID(),
++					prefixIndice->getDataOffset(), prefixIndice->getDataSize());
++			break;
++		case WP6_INDEX_HEADER_FILL_STYLE:
++			tmpPacket = new WP6FillStylePacket(input, encryption, prefixIndice->getID(),
++					prefixIndice->getDataOffset(), prefixIndice->getDataSize());
++			break;
++		case WP6_INDEX_HEADER_EXTENDED_DOCUMENT_SUMMARY:
++			tmpPacket = new WP6ExtendedDocumentSummaryPacket(input, encryption, prefixIndice->getID(),
++					prefixIndice->getDataOffset(), prefixIndice->getDataSize());
++			break;
++		case WP6_INDEX_HEADER_OUTLINE_STYLE:
++			tmpPacket = new WP6OutlineStylePacket(input, encryption, prefixIndice->getID(),
++					prefixIndice->getDataOffset(), prefixIndice->getDataSize());
++			break;
++		case WP6_INDEX_HEADER_GRAPHICS_FILENAME:
++			tmpPacket = new WP6GraphicsFilenamePacket(input, encryption, prefixIndice->getID(), prefixIndice->getFlags(),
++					prefixIndice->getDataOffset(), prefixIndice->getDataSize());
++			break;
++		case WP6_INDEX_HEADER_GRAPHICS_CACHED_FILE_DATA:
++			tmpPacket = new WP6GraphicsCachedFileDataPacket(input, encryption, prefixIndice->getID(),
++					prefixIndice->getDataOffset(), prefixIndice->getDataSize());
++			break;
++		case WP6_INDEX_HEADER_GRAPHICS_BOX_STYLE:
++			tmpPacket = new WP6GraphicsBoxStylePacket(input, encryption, prefixIndice->getID(),
++					prefixIndice->getDataOffset(), prefixIndice->getDataSize());
++			break;
++		case WP6_INDEX_HEADER_TABLE_STYLE:
++			tmpPacket = new WP6TableStylePacket(input, encryption, prefixIndice->getID(),
++					prefixIndice->getDataOffset(), prefixIndice->getDataSize());
++			break;
++		case WP6_INDEX_HEADER_COMMENT_ANNOTATION:
++			tmpPacket = new WP6CommentAnnotationPacket(input, encryption, prefixIndice->getID(),
++					prefixIndice->getDataOffset(), prefixIndice->getDataSize());
++			break;
++		default:
++			break;;
++		}
++	}
++	catch (FileException)
+ 	{
+-	case WP6_INDEX_HEADER_INITIAL_FONT:
+-		return new WP6DefaultInitialFontPacket(input, encryption, prefixIndice->getID(),
+-				prefixIndice->getDataOffset(), prefixIndice->getDataSize());
+-	case WP6_INDEX_HEADER_GENERAL_WORDPERFECT_TEXT:
+-		return new WP6GeneralTextPacket(input, encryption, prefixIndice->getID(),
+-				prefixIndice->getDataOffset(), prefixIndice->getDataSize());
+-	case WP6_INDEX_HEADER_DESIRED_FONT_DESCRIPTOR_POOL:
+-		return new WP6FontDescriptorPacket(input, encryption, prefixIndice->getID(),
+-				prefixIndice->getDataOffset(), prefixIndice->getDataSize());
+-	case WP6_INDEX_HEADER_FILL_STYLE:
+-		return new WP6FillStylePacket(input, encryption, prefixIndice->getID(),
+-				prefixIndice->getDataOffset(), prefixIndice->getDataSize());
+-	case WP6_INDEX_HEADER_EXTENDED_DOCUMENT_SUMMARY:
+-		return new WP6ExtendedDocumentSummaryPacket(input, encryption, prefixIndice->getID(),
+-				prefixIndice->getDataOffset(), prefixIndice->getDataSize());
+-	case WP6_INDEX_HEADER_OUTLINE_STYLE:
+-		return new WP6OutlineStylePacket(input, encryption, prefixIndice->getID(),
+-				prefixIndice->getDataOffset(), prefixIndice->getDataSize());
+-	case WP6_INDEX_HEADER_GRAPHICS_FILENAME:
+-		return new WP6GraphicsFilenamePacket(input, encryption, prefixIndice->getID(), prefixIndice->getFlags(),
+-				prefixIndice->getDataOffset(), prefixIndice->getDataSize());
+-	case WP6_INDEX_HEADER_GRAPHICS_CACHED_FILE_DATA:
+-		return new WP6GraphicsCachedFileDataPacket(input, encryption, prefixIndice->getID(),
+-				prefixIndice->getDataOffset(), prefixIndice->getDataSize());
+-	case WP6_INDEX_HEADER_GRAPHICS_BOX_STYLE:
+-		return new WP6GraphicsBoxStylePacket(input, encryption, prefixIndice->getID(),
+-				prefixIndice->getDataOffset(), prefixIndice->getDataSize());
+-	case WP6_INDEX_HEADER_TABLE_STYLE:
+-		return new WP6TableStylePacket(input, encryption, prefixIndice->getID(),
+-				prefixIndice->getDataOffset(), prefixIndice->getDataSize());
+-	case WP6_INDEX_HEADER_COMMENT_ANNOTATION:
+-		return new WP6CommentAnnotationPacket(input, encryption, prefixIndice->getID(),
+-				prefixIndice->getDataOffset(), prefixIndice->getDataSize());
+-	default:
+-		return 0;
++		if (tmpPacket)
++			delete tmpPacket;
++		tmpPacket = 0;
+ 	}
++	return tmpPacket;
+ }
+
+ void WP6PrefixDataPacket::_read(WPXInputStream *input, WPXEncryption *encryption, uint32_t dataOffset, uint32_t dataSize)
diff --git a/libwpd/makefile.mk b/libwpd/makefile.mk
index 40b186d..717facb 100644
--- a/libwpd/makefile.mk
+++ b/libwpd/makefile.mk
@@ -43,7 +43,8 @@ TARGET=wpd
 
 TARFILE_NAME=libwpd-0.9.1
 TARFILE_MD5=5ff846847dab351604ad859e2fd4ed3c
-PATCH_FILES=libwpd.gcc460.patch
+PATCH_FILES=libwpd.gcc460.patch \
+   libwpd.corruptedprefix.patch
 BUILD_ACTION=dmake $(MFLAGS) $(CALLMACROS)
 BUILD_DIR=src$/lib
 


More information about the Libreoffice-commits mailing list