update to 3.0.6 [release 3.0.6-1mamba;Mon Nov 25 2024]

This commit is contained in:
Silvan Calarco 2025-01-18 08:17:30 +01:00
parent e042fa9b4e
commit 0dcd872fdf
12 changed files with 72 additions and 732 deletions

View File

@ -1,11 +0,0 @@
diff -ru abiword-2.8.6.orig/src/af/util/xp/ut_go_file.h abiword-2.8.6/src/af/util/xp/ut_go_file.h
--- abiword-2.8.6.orig/src/af/util/xp/ut_go_file.h 2009-08-27 15:27:10.000000000 +0200
+++ abiword-2.8.6/src/af/util/xp/ut_go_file.h 2012-08-16 08:03:13.134073474 +0200
@@ -31,7 +31,6 @@
#include <glib.h>
#include <gsf/gsf.h>
-#include <glib/gerror.h>
#include <time.h>
G_BEGIN_DECLS

View File

@ -1,111 +0,0 @@
diff -up abiword-2.8.6/plugins/bmp/xp/ie_impGraphic_BMP.cpp.png15 abiword-2.8.6/plugins/bmp/xp/ie_impGraphic_BMP.cpp
--- abiword-2.8.6/plugins/bmp/xp/ie_impGraphic_BMP.cpp.png15 2012-02-27 15:39:39.258617605 -0500
+++ abiword-2.8.6/plugins/bmp/xp/ie_impGraphic_BMP.cpp 2012-02-27 15:48:37.830936901 -0500
@@ -191,7 +191,14 @@ UT_Error IE_ImpGraphic_BMP::_convertGrap
/* Clean Up Memory Used */
+#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
+ int num_palette;
+ png_colorp palette;
+ png_get_PLTE(m_pPNG, m_pPNGInfo, &palette, &num_palette);
+ FREEP(palette);
+#else
FREEP(m_pPNGInfo->palette);
+#endif
DELETEP(pBB);
png_destroy_write_struct(&m_pPNG, &m_pPNGInfo);
@@ -313,7 +320,11 @@ UT_Error IE_ImpGraphic_BMP::Initialize_P
* the normal method of doing things with libpng). REQUIRED unless you
* set up your own error handlers in the png_create_read_struct() earlier.
*/
+#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
+ if (setjmp(png_jmpbuf(m_pPNG)))
+#else
if (setjmp(m_pPNG->jmpbuf))
+#endif
{
/* Free all of the memory associated with the png_ptr and info_ptr */
png_destroy_write_struct(&m_pPNG, &m_pPNGInfo);
@@ -332,7 +343,11 @@ UT_Error IE_ImpGraphic_BMP::Initialize_P
UT_Error IE_ImpGraphic_BMP::Convert_BMP_Pallet(UT_ByteBuf* pBB)
{
/* Reset error handling for libpng */
+#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
+ if (setjmp(png_jmpbuf(m_pPNG)))
+#else
if (setjmp(m_pPNG->jmpbuf))
+#endif
{
png_destroy_write_struct(&m_pPNG, &m_pPNGInfo);
return UT_ERROR;
@@ -372,7 +387,11 @@ UT_Error IE_ImpGraphic_BMP::Initialize_P
UT_Error IE_ImpGraphic_BMP::Convert_BMP(UT_ByteBuf* pBB)
{
/* Reset error handling for libpng */
+#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
+ if (setjmp(png_jmpbuf(m_pPNG)))
+#else
if (setjmp(m_pPNG->jmpbuf))
+#endif
{
png_destroy_write_struct(&m_pPNG, &m_pPNGInfo);
return UT_ERROR;
diff -up abiword-2.8.6/plugins/garble/xp/abiword-garble-png.cpp.png15 abiword-2.8.6/plugins/garble/xp/abiword-garble-png.cpp
--- abiword-2.8.6/plugins/garble/xp/abiword-garble-png.cpp.png15 2012-02-27 15:31:30.178868169 -0500
+++ abiword-2.8.6/plugins/garble/xp/abiword-garble-png.cpp 2012-02-27 15:36:17.795368497 -0500
@@ -79,7 +79,11 @@ bool abiword_document::garble_png( void*
png_set_strip_alpha( png_ptr );
png_set_interlace_handling( png_ptr );
png_set_bgr( png_ptr );
+#if (PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4) && defined(PNG_EASY_ACCESS_SUPPORTED)
+ rowbytes = png_get_rowbytes( png_ptr, info_ptr );
+#else
rowbytes = info_ptr->rowbytes;
+#endif
png_destroy_read_struct( &png_ptr, &info_ptr, NULL );
}
diff -up abiword-2.8.6/src/af/util/xp/ut_png.cpp.png15 abiword-2.8.6/src/af/util/xp/ut_png.cpp
--- abiword-2.8.6/src/af/util/xp/ut_png.cpp.png15 2012-02-27 15:11:18.599397989 -0500
+++ abiword-2.8.6/src/af/util/xp/ut_png.cpp 2012-02-27 15:12:20.560859433 -0500
@@ -71,7 +71,11 @@ bool UT_PNG_getDimensions(const UT_ByteB
* the normal method of doing things with libpng). REQUIRED unless you
* set up your own error handlers in the png_create_read_struct() earlier.
*/
+#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
+ if (setjmp(png_jmpbuf(png_ptr)))
+#else
if (setjmp(png_ptr->jmpbuf))
+#endif
{
/* Free all of the memory associated with the png_ptr and info_ptr */
png_destroy_read_struct(&png_ptr, &info_ptr, static_cast<png_infopp>(NULL));
diff -up abiword-2.8.6/src/wp/impexp/gtk/ie_impGraphic_GdkPixbuf.cpp.png15 abiword-2.8.6/src/wp/impexp/gtk/ie_impGraphic_GdkPixbuf.cpp
--- abiword-2.8.6/src/wp/impexp/gtk/ie_impGraphic_GdkPixbuf.cpp.png15 2012-02-27 15:24:23.959572417 -0500
+++ abiword-2.8.6/src/wp/impexp/gtk/ie_impGraphic_GdkPixbuf.cpp 2012-02-27 15:26:42.549367943 -0500
@@ -185,7 +185,11 @@ UT_Error IE_ImpGraphic_GdkPixbuf::import
/** needed for the stejmp context */
UT_Error IE_ImpGraphic_GdkPixbuf::_png_write(GdkPixbuf * pixbuf)
{
+#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
+ if (setjmp(png_jmpbuf(m_pPNG)))
+#else
if (setjmp(m_pPNG->jmpbuf))
+#endif
{
DELETEP(m_pPngBB);
png_destroy_write_struct(&m_pPNG, &m_pPNGInfo);
@@ -446,7 +450,11 @@ UT_Error IE_ImpGraphic_GdkPixbuf::Initia
* the normal method of doing things with libpng). REQUIRED unless you
* set up your own error handlers in the png_create_read_struct() earlier.
*/
+#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
+ if (setjmp(png_jmpbuf(m_pPNG)))
+#else
if (setjmp(m_pPNG->jmpbuf))
+#endif
{
/* Free all of the memory associated with the png_ptr and info_ptr */
png_destroy_write_struct(&m_pPNG, &m_pPNGInfo);

View File

@ -1,391 +0,0 @@
--- plugins/wordperfect/xp/ie_imp_WordPerfect.cpp (revision 29401)
+++ plugins/wordperfect/xp/ie_imp_WordPerfect.cpp (revision 29403)
@@ -60,7 +60,7 @@
// Stream class
-#include <libwpd/WPXStream.h>
+#include <libwpd-stream/libwpd-stream.h>
#include <gsf/gsf-input.h>
#include <gsf/gsf-infile.h>
@@ -70,12 +70,7 @@
#include <libwps/libwps.h>
#endif
-class AbiWordperfectInputStream :
-#ifdef HAVE_LIBWPS
- public WPSInputStream
-#else
- public WPXInputStream
-#endif
+class AbiWordperfectInputStream : public WPXInputStream
{
public:
AbiWordperfectInputStream(GsfInput *input);
@@ -86,7 +81,7 @@
virtual WPXInputStream * getDocumentOLEStream(const char * name);
- virtual const uint8_t *read(size_t numBytes, size_t &numBytesRead);
+ virtual const unsigned char *read(unsigned long numBytes, unsigned long &numBytesRead);
virtual int seek(long offset, WPX_SEEK_TYPE seekType);
virtual long tell();
virtual bool atEOS();
@@ -98,11 +93,7 @@
};
AbiWordperfectInputStream::AbiWordperfectInputStream(GsfInput *input) :
-#ifdef HAVE_LIBWPS
- WPSInputStream(),
-#else
- WPXInputStream(true),
-#endif
+ WPXInputStream(),
m_input(input),
m_ole(NULL)
{
@@ -117,9 +108,9 @@
g_object_unref(G_OBJECT(m_input));
}
-const uint8_t * AbiWordperfectInputStream::read(size_t numBytes, size_t &numBytesRead)
+const unsigned char * AbiWordperfectInputStream::read(unsigned long numBytes, unsigned long &numBytesRead)
{
- const uint8_t *buf = gsf_input_read(m_input, numBytes, NULL);
+ const unsigned char *buf = gsf_input_read(m_input, numBytes, NULL);
if (buf == NULL)
numBytesRead = 0;
@@ -256,19 +247,12 @@
{
AbiWordperfectInputStream gsfInput(input);
- WPDConfidence confidence = WPDocument::isFileFormatSupported(&gsfInput, true);
+ WPDConfidence confidence = WPDocument::isFileFormatSupported(&gsfInput);
switch (confidence)
{
case WPD_CONFIDENCE_NONE:
- // libwpd > 0.7.1 reports POOR if the text file is plain text (that _could_ be a WP4x document)
- // however, we'll let the text importer handle such cases
- case WPD_CONFIDENCE_POOR:
return UT_CONFIDENCE_ZILCH;
- case WPD_CONFIDENCE_LIKELY:
- return UT_CONFIDENCE_SOSO;
- case WPD_CONFIDENCE_GOOD:
- return UT_CONFIDENCE_GOOD;
case WPD_CONFIDENCE_EXCELLENT:
return UT_CONFIDENCE_PERFECT;
default:
@@ -328,7 +312,7 @@
UT_Error IE_Imp_WordPerfect::_loadFile(GsfInput * input)
{
AbiWordperfectInputStream gsfInput(input);
- WPDResult error = WPDocument::parse(&gsfInput, static_cast<WPXHLListenerImpl *>(this));
+ WPDResult error = WPDocument::parse(&gsfInput, static_cast<WPXDocumentInterface *>(this), NULL);
if (error != WPD_OK)
{
@@ -381,9 +365,9 @@
float marginLeft = 1.0f, marginRight = 1.0f;
if (propList["fo:margin-left"])
- marginLeft = propList["fo:margin-left"]->getFloat();
+ marginLeft = propList["fo:margin-left"]->getDouble();
if (propList["fo:margin-right"])
- marginRight = propList["fo:margin-right"]->getFloat();
+ marginRight = propList["fo:margin-right"]->getDouble();
if (marginLeft != m_leftPageMargin || marginRight != m_rightPageMargin /* || */
/* marginTop != m_marginBottom || marginBottom != m_marginBottom */ )
@@ -456,15 +440,15 @@
float marginTop = 0.0f, marginBottom = 0.0f;
float marginLeft = 0.0f, marginRight = 0.0f, textIndent = 0.0f;
if (propList["fo:margin-top"])
- marginTop = propList["fo:margin-top"]->getFloat();
+ marginTop = propList["fo:margin-top"]->getDouble();
if (propList["fo:margin-bottom"])
- marginBottom = propList["fo:margin-bottom"]->getFloat();
+ marginBottom = propList["fo:margin-bottom"]->getDouble();
if (propList["fo:margin-left"])
- marginLeft = propList["fo:margin-left"]->getFloat();
+ marginLeft = propList["fo:margin-left"]->getDouble();
if (propList["fo:margin-right"])
- marginRight = propList["fo:margin-right"]->getFloat();
+ marginRight = propList["fo:margin-right"]->getDouble();
if (propList["fo:text-indent"])
- textIndent = propList["fo:text-indent"]->getFloat();
+ textIndent = propList["fo:text-indent"]->getDouble();
m_topMargin = marginTop;
m_bottomMargin = marginBottom;
@@ -487,7 +471,7 @@
float lineSpacing = 1.0f;
if (propList["fo:line-height"])
- lineSpacing = propList["fo:line-height"]->getFloat();
+ lineSpacing = propList["fo:line-height"]->getDouble();
UT_String tmpBuffer;
UT_String_sprintf(tmpBuffer, "; margin-top:%.4fin; margin-bottom:%.4fin; margin-left:%.4fin; margin-right:%.4fin; text-indent:%.4fin; line-height:%.4f",
@@ -504,7 +488,7 @@
propBuffer += tmpBuffer;
if (i()["style:position"])
{
- UT_String_sprintf(tmpBuffer, "%.4fin", i()["style:position"]->getFloat());
+ UT_String_sprintf(tmpBuffer, "%.4fin", i()["style:position"]->getDouble());
propBuffer += tmpBuffer;
}
@@ -520,10 +504,10 @@
else // Left aligned is default
propBuffer += "/L";
- if (i()["style:leader-char"])
- if (i()["style:leader-char"]->getStr() == "-")
+ if (i()["style:leader-text"])
+ if (i()["style:leader-text"]->getStr() == "-")
propBuffer += "2";
- else if (i()["style:leader-char"]->getStr() == "_")
+ else if (i()["style:leader-text"]->getStr() == "_")
propBuffer += "3";
else // default to dot leader if the given leader is dot or is not supported by AbiWord
propBuffer += "1";
@@ -586,12 +570,12 @@
propBuffer += "subscript";
}
- if (propList["style:text-underline"] || propList["style:text-crossing-out"])
+ if (propList["style:text-underline-type"] || propList["style:text-line-through-type"])
{
propBuffer += "; text-decoration:";
- if (propList["style:text-underline"])
+ if (propList["style:text-underline-type"])
propBuffer += "underline ";
- if (propList["style:text-crossing-out"])
+ if (propList["style:text-line-through-type"])
propBuffer += "line-through";
}
@@ -615,10 +599,10 @@
propBuffer += propList["fo:color"]->getStr().cstr();
}
- if (propList["style:text-background-color"])
+ if (propList["fo:background-color"])
{
propBuffer += "; bgcolor:";
- propBuffer += propList["style:text-background-color"]->getStr().cstr();
+ propBuffer += propList["fo:background-color"]->getStr().cstr();
}
UT_DEBUGMSG(("AbiWordPerfect: Appending span format: %s\n", propBuffer.c_str()));
@@ -639,10 +623,10 @@
int columnsCount = ((columns.count() == 0) ? 1 : columns.count());
// TODO: support spaceAfter
- if (propList["fo:margin-left"])
- marginLeft = propList["fo:margin-left"]->getFloat();
- if (propList["fo:margin-right"])
- marginRight = propList["fo:margin-right"]->getFloat();
+ if (propList["fo:start-indent"])
+ marginLeft = propList["fo:start-indent"]->getDouble();
+ if (propList["fo:end-indent"])
+ marginRight = propList["fo:end-indent"]->getDouble();
if (marginLeft != m_leftSectionMargin || marginRight != m_rightSectionMargin || m_sectionColumnsCount != columnsCount)
m_bSectionChanged = true;
@@ -709,9 +693,9 @@
if (propList["style:num-format"])
listType = propList["style:num-format"]->getStr().cstr()[0];
if (propList["text:space-before"])
- listLeftOffset = propList["text:space-before"]->getFloat();
+ listLeftOffset = propList["text:space-before"]->getDouble();
if (propList["text:min-label-width"])
- listMinLabelWidth = propList["text:min-label-width"]->getFloat();
+ listMinLabelWidth = propList["text:min-label-width"]->getDouble();
if (!m_pCurrentListDefinition ||
m_pCurrentListDefinition->getOutlineHash() != listID ||
@@ -749,9 +733,9 @@
if (propList["libwpd:level"])
level = propList["libwpd:level"]->getInt();
if (propList["text:space-before"])
- listLeftOffset = propList["text:space-before"]->getFloat();
+ listLeftOffset = propList["text:space-before"]->getDouble();
if (propList["text:min-label-width"])
- listMinLabelWidth = propList["text:min-label-width"]->getFloat();
+ listMinLabelWidth = propList["text:min-label-width"]->getDouble();
if (!m_pCurrentListDefinition || m_pCurrentListDefinition->getOutlineHash() != listID)
{
@@ -871,10 +855,10 @@
UT_String_sprintf(tempBuffer, "margin-left:%.4fin; ", m_pCurrentListDefinition->getListLeftOffset(m_iCurrentListLevel)
+ m_pCurrentListDefinition->getListMinLabelWidth(m_iCurrentListLevel)
- - (propList["fo:text-indent"] ? propList["fo:text-indent"]->getFloat() : 0.0f));
+ - (propList["fo:text-indent"] ? propList["fo:text-indent"]->getDouble() : 0.0f));
propBuffer += tempBuffer;
UT_String_sprintf(tempBuffer, "text-indent:%.4fin", - m_pCurrentListDefinition->getListMinLabelWidth(m_iCurrentListLevel)
- + (propList["fo:text-indent"] ? propList["fo:text-indent"]->getFloat() : 0.0f));
+ + (propList["fo:text-indent"] ? propList["fo:text-indent"]->getDouble() : 0.0f));
propBuffer += tempBuffer;
listAttribs[attribsCount++] = PT_PROPS_ATTRIBUTE_NAME;
@@ -1263,7 +1247,7 @@
virtual UT_Error _loadFile(GsfInput * input)
{
AbiWordperfectInputStream gsfInput(input);
- WPSResult error = WPSDocument::parse(&gsfInput, static_cast<WPXHLListenerImpl *>(this));
+ WPSResult error = WPSDocument::parse(&gsfInput, static_cast<WPXDocumentInterface *>(this));
if (error != WPS_OK)
{
@@ -1302,18 +1286,12 @@
{
AbiWordperfectInputStream gsfInput(input);
- WPSConfidence confidence = WPSDocument::isFileFormatSupported(&gsfInput, true);
+ WPSConfidence confidence = WPSDocument::isFileFormatSupported(&gsfInput);
switch (confidence)
{
case WPS_CONFIDENCE_NONE:
return UT_CONFIDENCE_ZILCH;
- case WPS_CONFIDENCE_POOR:
- return UT_CONFIDENCE_POOR;
- case WPS_CONFIDENCE_LIKELY:
- return UT_CONFIDENCE_SOSO;
- case WPS_CONFIDENCE_GOOD:
- return UT_CONFIDENCE_GOOD;
case WPS_CONFIDENCE_EXCELLENT:
return UT_CONFIDENCE_PERFECT;
default:
--- plugins/wordperfect/xp/ie_imp_WordPerfect.h (revision 29401)
+++ plugins/wordperfect/xp/ie_imp_WordPerfect.h (revision 29403)
@@ -30,13 +30,7 @@
#define IE_IMP_WP_H
#include <stdio.h>
-#ifdef _WIN32
-#define POINT WPX_POINT
-#endif
#include <libwpd/libwpd.h>
-#ifdef _WIN32
-#undef POINT
-#endif
#include "ie_imp.h"
#include "ut_string.h"
#include "ut_string_class.h"
@@ -98,7 +92,7 @@
IE_Imp ** ppie);
};
-class IE_Imp_WordPerfect : public IE_Imp, public WPXHLListenerImpl
+class IE_Imp_WordPerfect : public IE_Imp, public WPXDocumentInterface
{
public:
IE_Imp_WordPerfect(PD_Document * pDocument);
@@ -154,6 +148,21 @@
virtual void insertCoveredTableCell(const WPXPropertyList & /*propList*/) {}
virtual void closeTable();
+ virtual void definePageStyle(const WPXPropertyList&) {}
+ virtual void defineParagraphStyle(const WPXPropertyList&, const WPXPropertyListVector&) {}
+ virtual void defineCharacterStyle(const WPXPropertyList&) {}
+ virtual void defineSectionStyle(const WPXPropertyList&, const WPXPropertyListVector&) {}
+ virtual void insertSpace() {}
+ virtual void insertField(const WPXString&, const WPXPropertyList&) {}
+ virtual void openComment(const WPXPropertyList&) {}
+ virtual void closeComment() {}
+ virtual void openTextBox(const WPXPropertyList&) {}
+ virtual void closeTextBox() {}
+ virtual void openFrame(const WPXPropertyList&) {}
+ virtual void closeFrame() {}
+ virtual void insertBinaryObject(const WPXPropertyList&, const WPXBinaryData&) {}
+ virtual void insertEquation(const WPXPropertyList&, const WPXString&) {}
+
protected:
virtual UT_Error _loadFile(GsfInput * input);
--- plugins/wordperfect/plugin.m4 (revision 29401)
+++ plugins/wordperfect/plugin.m4 (revision 29403)
@@ -1,6 +1,6 @@
-wordperfect_pkgs="libwpd-0.8 >= 0.8.0 $gsf_req"
-wordperfect_wps_pkgs='libwps-0.1 >= 0.1.0'
+wordperfect_pkgs="libwpg-0.2 >= 0.2.0 libwpd-0.9 >= 0.9.0 libwpd-stream-0.9 >= 0.9.0 $gsf_req"
+wordperfect_wps_pkgs='libwps-0.2 >= 0.1.0'
wordperfect_deps="no"
WORDPERFECT_CFLAGS=
--- plugins/wpg/xp/ie_impGraphic_WPG.cpp (revision 29401)
+++ plugins/wpg/xp/ie_impGraphic_WPG.cpp (revision 29403)
@@ -31,11 +31,10 @@
#include <gsf/gsf-input-memory.h>
#include <gsf/gsf-input-stdio.h>
#include <gsf/gsf-infile-msole.h>
-#include <libwpd/WPXStream.h>
+#include <libwpd-stream/libwpd-stream.h>
#include "xap_Module.h"
using libwpg::WPGraphics;
-using libwpg::WPGString;
ABI_PLUGIN_DECLARE("WPG")
@@ -48,7 +47,7 @@
virtual bool isOLEStream();
virtual WPXInputStream * getDocumentOLEStream();
virtual WPXInputStream * getDocumentOLEStream(const char * name);
- virtual const uint8_t *read(size_t numBytes, size_t &numBytesRead);
+ virtual const unsigned char *read(unsigned long numBytes, unsigned long &numBytesRead);
virtual int seek(long offset, WPX_SEEK_TYPE seekType);
virtual long tell();
virtual bool atEOS();
@@ -60,7 +59,7 @@
};
AbiWordPerfectGraphicsInputStream::AbiWordPerfectGraphicsInputStream(GsfInput *input) :
- WPXInputStream(true),
+ WPXInputStream(),
m_input(input),
m_ole(NULL)
{
@@ -75,9 +74,9 @@
g_object_unref(G_OBJECT(m_input));
}
-const uint8_t * AbiWordPerfectGraphicsInputStream::read(size_t numBytes, size_t &numBytesRead)
+const unsigned char * AbiWordPerfectGraphicsInputStream::read(unsigned long numBytes, unsigned long &numBytesRead)
{
- const uint8_t *buf = gsf_input_read(m_input, numBytes, NULL);
+ const unsigned char *buf = gsf_input_read(m_input, numBytes, NULL);
if (buf == NULL)
numBytesRead = 0;
@@ -245,10 +244,10 @@
UT_Error IE_Imp_WordPerfectGraphics::importGraphic(GsfInput *input, FG_Graphic **ppfg)
{
AbiWordPerfectGraphicsInputStream gsfInput(input);
- WPGString svgOutput;
+ WPXString svgOutput;
if (WPGraphics::generateSVG(&gsfInput, svgOutput))
{
- GsfInput * svgInput = gsf_input_memory_new((const guint8*)svgOutput.cstr(), svgOutput.length(), false);
+ GsfInput * svgInput = gsf_input_memory_new((const guint8*)svgOutput.cstr(), svgOutput.len(), false);
UT_Error result = IE_ImpGraphic::loadGraphic(svgInput, IE_ImpGraphic::fileTypeForSuffix(".svg"), ppfg);
g_object_unref(svgInput);
return result;
--- plugins/wpg/plugin.m4 (revision 29401)
+++ plugins/wpg/plugin.m4 (revision 29403)
@@ -1,5 +1,5 @@
-wpg_pkgs="$gsf_req libwpg-0.1 >= 0.1.0 libwpd-0.8 >= 0.8.0"
+wpg_pkgs="$gsf_req libwpg-0.2 >= 0.2.0 libwpd-0.9 >= 0.9.0 libwpd-stream-0.9 >= 0.9.0"
wpg_deps="no"
if test "$enable_wpg" != ""; then

View File

@ -1,21 +0,0 @@
diff -u -r abiword-2.8.6.orig/src/Makefile.am abiword-2.8.6/src/Makefile.am
--- abiword-2.8.6.orig/src/Makefile.am 2009-09-09 15:11:01.000000000 +0200
+++ abiword-2.8.6/src/Makefile.am 2011-08-02 23:35:51.904761961 +0200
@@ -107,7 +107,7 @@
AbiWord_LDFLAGS = \
$(DEPS_LIBS) \
- --no-undefined \
+ -Wl,--no-undefined \
-avoid-version \
-export-dynamic \
-headerpad_max_install_names
@@ -129,7 +129,7 @@
abiword_LDFLAGS = \
$(platform_ldflags) \
- --no-undefined \
+ -Wl,--no-undefined \
-avoid-version \
-export-dynamic

View File

@ -1,35 +0,0 @@
--- abiword-3.0.0/plugins/grammar/linkgrammarwrap/LinkGrammarWrap.cpp.orig 2014-06-30 08:21:30.000000000 -0500
+++ abiword-3.0.0/plugins/grammar/linkgrammarwrap/LinkGrammarWrap.cpp 2014-06-30 08:27:01.000000000 -0500
@@ -220,6 +220,7 @@ bool LinkGrammarWrap::parseSentence(Piec
pErr = NULL;
}
+#ifdef DEAD_DEBUG_CODE
// for(i=0; i< pT->m_vecGrammarErrors.getItemCount(); i++)
// {
// pErr = pT->m_vecGrammarErrors.getNthItem(i);
@@ -227,15 +228,10 @@ bool LinkGrammarWrap::parseSentence(Piec
// }
UT_UTF8String sErr = linkage_get_violation_name(linkage);
// UT_DEBUGMSG(("Top Level error message |%s|\n",sErr.utf8_str()));
- UT_sint32 count = linkage_get_num_sublinkages(linkage);
//
// Find linkages with violations
//
- for(i=0; i<count;i++)
{
- UT_sint32 iok = linkage_set_current_sublinkage(linkage, i);
- if(iok == 0)
- continue;
UT_sint32 j = 0;
UT_sint32 iNum = linkage_get_num_links(linkage);
for(j=0;j< iNum;j++)
@@ -252,6 +248,8 @@ bool LinkGrammarWrap::parseSentence(Piec
}
}
linkage_delete(linkage);
+#endif // DEAD_DEBUG_CODE
+
for(i=0; i< vecMapOfWords.getItemCount(); i++)
{
AbiGrammarError * p = vecMapOfWords.getNthItem(i);

View File

@ -1,20 +0,0 @@
--- abiword/trunk/plugins/grammar/linkgrammarwrap/LinkGrammarWrap.cpp 2014/06/30 13:48:28 34627
+++ abiword/trunk/plugins/grammar/linkgrammarwrap/LinkGrammarWrap.cpp 2015/09/09 14:14:20 35098
@@ -39,6 +39,7 @@
*/
/********************************************************************************/
+#include "config.h"
#include "xap_App.h"
#include "ut_locale.h"
#include "ut_string_class.h"
@@ -87,7 +88,9 @@
parse_options_set_min_null_count(m_Opts, 0);
parse_options_set_max_null_count(m_Opts, 0);
parse_options_set_islands_ok(m_Opts, 0);
+#ifndef HAVE_LINK_GRAMMAR_51
parse_options_set_panic_mode(m_Opts, TRUE);
+#endif
parse_options_reset_resources(m_Opts);
UT_sint32 num_linkages = sentence_parse(sent, m_Opts);
bool res = (num_linkages >= 1);

View File

@ -1,13 +0,0 @@
--- abiword/trunk/plugins/grammar/plugin.m4 2010/05/25 10:09:01 28902
+++ abiword/trunk/plugins/grammar/plugin.m4 2015/09/09 14:14:20 35098
@@ -22,6 +22,10 @@
fi
PKG_CHECK_MODULES(GRAMMAR,[ $grammar_pkgs ])
+PKG_CHECK_EXISTS([ link-grammar >= 5.1.0 ],
+[
+ AC_DEFINE([HAVE_LINK_GRAMMAR_51],[1],["have link-grammar 5.1.0 or later"])
+])
test "$enable_grammar" = "auto" && PLUGINS="$PLUGINS grammar"

View File

@ -1,45 +0,0 @@
--- abiword-3.0.0/plugins/grammar/linkgrammarwrap/LinkGrammarWrap.cpp.orig 2014-06-29 14:50:30.000000000 -0500
+++ abiword-3.0.0/plugins/grammar/linkgrammarwrap/LinkGrammarWrap.cpp 2014-06-29 14:55:39.000000000 -0500
@@ -145,12 +145,11 @@ bool LinkGrammarWrap::parseSentence(Piec
}
AbiGrammarError * pWordMap = new AbiGrammarError();
pWordMap->m_iErrLow = iLow;
- pWordMap->m_iErrHigh = iLow + strlen(sentence_get_nth_word(sent, i));
+ pWordMap->m_iErrHigh = iLow + strlen(linkage_get_word(linkage, i));
pWordMap->m_iWordNum = i;
vecMapOfWords.addItem(pWordMap);
bool bNew = false;
- if(!sentence_nth_word_has_disjunction(sent, i))
- {
+
//UT_DEBUGMSG(("|%s| NULL LINK\n",sent->word[i].string));
if(pErr == NULL)
{
@@ -167,7 +166,7 @@ bool LinkGrammarWrap::parseSentence(Piec
}
pErr = new AbiGrammarError();
}
- iHigh = iLow + strlen(sentence_get_nth_word(sent, i));
+ iHigh = iLow + strlen(linkage_get_word(linkage, i));
pErr->m_iErrLow = iLow + iOff -1;
pErr->m_iErrHigh = iHigh + iOff -1;
if(pErr->m_iErrLow < 0)
@@ -188,7 +187,7 @@ bool LinkGrammarWrap::parseSentence(Piec
//
// Expand the sqiggle
//
- iHigh = iLow + strlen(sentence_get_nth_word(sent, i)) + iOff;
+ iHigh = iLow + strlen(linkage_get_word(linkage, i)) + iOff;
pErr->m_iErrHigh = iHigh;
if(pErr->m_iErrHigh < totlen-1)
{
@@ -196,8 +195,7 @@ bool LinkGrammarWrap::parseSentence(Piec
}
pErr->m_iWordNum = i;
}
- }
- iLow += strlen(sentence_get_nth_word(sent, i));
+ iLow += strlen(linkage_get_word(linkage, i));
}
//
// No NULL links but still an error , mark the whole sentence bad.

View File

@ -0,0 +1,29 @@
--- abiword-3.0.2/src/af/xap/xp/enchant_checker.cpp.orig 2013-04-07 13:53:03.000000000 +0000
+++ abiword-3.0.2/src/af/xap/xp/enchant_checker.cpp 2017-11-19 22:54:41.236180298 +0000
@@ -127,7 +127,7 @@
pvSugg->addItem (ucszSugg);
}
- enchant_dict_free_suggestions (m_dict, suggestions);
+ enchant_dict_free_string_list (m_dict, suggestions);
}
return pvSugg;
@@ -139,7 +139,7 @@
if (word && len) {
UT_UTF8String utf8 (word, len);
- enchant_dict_add_to_personal (m_dict, utf8.utf8_str(), utf8.byteLength());
+ enchant_dict_add (m_dict, utf8.utf8_str(), utf8.byteLength());
return true;
}
return false;
@@ -150,7 +150,7 @@
UT_return_val_if_fail (m_dict, false);
UT_UTF8String ignore (toCorrect, toCorrectLen);
- return enchant_dict_is_in_session (m_dict, ignore.utf8_str(), ignore.byteLength()) != 0;
+ return enchant_dict_is_added (m_dict, ignore.utf8_str(), ignore.byteLength()) != 0;
}
void EnchantChecker::ignoreWord (const UT_UCSChar *toCorrect, size_t toCorrectLen)

View File

@ -0,0 +1,11 @@
--- AbiWord-3.0.6/plugins/collab/backends/service/xp/RealmConnection.cpp.orig 2025-01-17 21:54:11.651530286 +0100
+++ AbiWord-3.0.6/plugins/collab/backends/service/xp/RealmConnection.cpp 2025-01-17 21:54:29.734566147 +0100
@@ -19,6 +19,8 @@
#include <boost/function.hpp>
#include <boost/bind.hpp>
#include <boost/lexical_cast.hpp>
+#include <boost/asio/buffer.hpp>
+#include <boost/array.hpp>
#include "ut_assert.h"
#include "ut_debugmsg.h"
#include "ServiceAccountHandler.h"

View File

@ -1,30 +0,0 @@
diff -Nru abiword-extras-2.6.0.orig/clipart/Makefile.am abiword-extras-2.6.0/clipart/Makefile.am
--- abiword-extras-2.6.0.orig/clipart/Makefile.am 2008-03-18 23:18:48.000000000 +0100
+++ abiword-extras-2.6.0/clipart/Makefile.am 2008-03-25 02:53:55.000000000 +0100
@@ -1,5 +1,5 @@
-clipartdir = $(DESTDIR)/$(ABIWORD_EXTRAS_PKGDATADIR)/clipart
+clipartdir = $(ABIWORD_EXTRAS_PKGDATADIR)/clipart
clipart_DATA = \
book.png \
chip.png \
diff -Nru abiword-extras-2.6.0.orig/dictionary/Makefile.am abiword-extras-2.6.0/dictionary/Makefile.am
--- abiword-extras-2.6.0.orig/dictionary/Makefile.am 2008-03-18 23:18:47.000000000 +0100
+++ abiword-extras-2.6.0/dictionary/Makefile.am 2008-03-25 02:54:04.000000000 +0100
@@ -1,5 +1,5 @@
-dictionarydir = $(DESTDIR)/$(ABIWORD_EXTRAS_PKGDATADIR)/dictionary
+dictionarydir = $(ABIWORD_EXTRAS_PKGDATADIR)/dictionary
if BIGENDIAN
hash = BigEndian32.american.hash
diff -Nru abiword-extras-2.6.0.orig/templates/Makefile.am abiword-extras-2.6.0/templates/Makefile.am
--- abiword-extras-2.6.0.orig/templates/Makefile.am 2008-03-18 23:18:49.000000000 +0100
+++ abiword-extras-2.6.0/templates/Makefile.am 2008-03-25 02:54:15.000000000 +0100
@@ -1,5 +1,5 @@
-templatesdir = $(DESTDIR)/$(ABIWORD_EXTRAS_PKGDATADIR)/templates
+templatesdir = $(ABIWORD_EXTRAS_PKGDATADIR)/templates
templates_DATA = \
A4.awt \
Business-Letter.awt \

View File

@ -1,28 +1,22 @@
%define majversion %(echo %version | cut -d. -f 1-2) %define majversion %(echo %version | cut -d. -f 1-2)
Name: abiword Name: abiword
Version: 3.0.5 Version: 3.0.6
Release: 2mamba Release: 1mamba
Summary: A free word processing program Summary: A free word processing program
Group: Graphical Desktop/Applications/Office Group: Graphical Desktop/Applications/Office
Vendor: openmamba Vendor: openmamba
Distribution: openmamba Distribution: openmamba
Packager: Silvan Calarco <silvan.calarco@mambasoft.it> Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
URL: https://www.abisource.com URL: https://gitlab.gnome.org/World/AbiWord
Source0: https://www.abisource.com/downloads/abiword/%{version}/source/%{name}-%{version}.tar.gz Source0: https://gitlab.gnome.org/World/AbiWord.git/release-%{version}/AbiWord-%{version}.tar.bz2
Source4: abiword.mime Source4: abiword.mime
Patch0: abiword-extras-2.6.0-build_datadir.patch Patch0: abiword-3.0.6-enchant-2.8.2.patch
Patch1: abiword-2.8.6-gcc-4.7.patch Patch1: abiword-3.0.6-xp-RealmConnection-add_missing_headers.patch
Patch2: abiword-2.8.6-libwpd-0.9.patch
Patch3: abiword-2.8.6-libpng-1.5.patch
Patch4: abiword-2.8.6-no-undefined.patch
Patch5: abiword-3.0.1-link-grammar-5.patch
Patch6: abiword-3.0.1-link-grammar-5-2.patch
Patch7: abiword-3.0.1-link-grammar-5-3.patch
Patch8: abiword-3.0.1-link-grammar-5-4.patch
License: GPL License: GPL
## AUTOBUILDREQ-BEGIN ## AUTOBUILDREQ-BEGIN
BuildRequires: clutter-gtk-devel BuildRequires: clutter-gtk-devel
BuildRequires: evolution-data-server-devel
BuildRequires: glibc-devel BuildRequires: glibc-devel
BuildRequires: libX11-devel BuildRequires: libX11-devel
BuildRequires: libXcomposite-devel BuildRequires: libXcomposite-devel
@ -33,13 +27,10 @@ BuildRequires: libXi-devel
BuildRequires: libXrandr-devel BuildRequires: libXrandr-devel
BuildRequires: libaiksaurus-devel BuildRequires: libaiksaurus-devel
BuildRequires: libat-spi2-core-devel BuildRequires: libat-spi2-core-devel
BuildRequires: libbrotli-devel
BuildRequires: libbzip2-devel
BuildRequires: libcairo-devel BuildRequires: libcairo-devel
BuildRequires: libchamplain-devel BuildRequires: libchamplain-devel
BuildRequires: libclutter-devel BuildRequires: libclutter-devel
BuildRequires: libcogl-devel BuildRequires: libcogl-devel
BuildRequires: libdb53-devel
BuildRequires: libdbus-devel BuildRequires: libdbus-devel
BuildRequires: libdbus-glib-devel BuildRequires: libdbus-glib-devel
BuildRequires: libdrm-devel BuildRequires: libdrm-devel
@ -54,38 +45,30 @@ BuildRequires: libgcrypt-devel
BuildRequires: libgdk-pixbuf-devel BuildRequires: libgdk-pixbuf-devel
BuildRequires: libglib-devel BuildRequires: libglib-devel
BuildRequires: libglvnd-devel BuildRequires: libglvnd-devel
BuildRequires: libgmp-devel BuildRequires: libgnutls-devel
BuildRequires: libgoffice-devel BuildRequires: libgoffice-devel
BuildRequires: libgpg-error-devel
BuildRequires: libgraphite2-devel
BuildRequires: libgsf-devel BuildRequires: libgsf-devel
BuildRequires: libgtk3-devel BuildRequires: libgtk3-devel
BuildRequires: libharfbuzz-devel BuildRequires: libharfbuzz-devel
BuildRequires: libical-devel BuildRequires: libical-devel
BuildRequires: libidn-devel BuildRequires: libjpeg-turbo
BuildRequires: libjpeg-devel
BuildRequires: libjson-glib-devel BuildRequires: libjson-glib-devel
BuildRequires: libkrb5-devel BuildRequires: libkrb5-devel
BuildRequires: liblink-grammar-devel BuildRequires: liblink-grammar-devel
BuildRequires: libloudmouth-devel BuildRequires: libloudmouth-devel
BuildRequires: libmesa-devel BuildRequires: libmesa-devel
BuildRequires: libmhash-devel
BuildRequires: libnettle-devel BuildRequires: libnettle-devel
BuildRequires: libnsl-devel BuildRequires: libnsl-devel
BuildRequires: libopenssl-devel
BuildRequires: libpango-devel BuildRequires: libpango-devel
BuildRequires: libpcre-devel
BuildRequires: libpng-devel BuildRequires: libpng-devel
BuildRequires: libraptor2-devel BuildRequires: libraptor2-devel
BuildRequires: librasqal-devel BuildRequires: librasqal-devel
BuildRequires: librdf-devel BuildRequires: librdf-devel
BuildRequires: libreadline-devel BuildRequires: libreadline-devel
BuildRequires: librsvg-devel BuildRequires: librsvg-devel
BuildRequires: librtmp-devel BuildRequires: libsoup-devel
BuildRequires: libsasl2-devel BuildRequires: libsoup2-devel
BuildRequires: libselinux-devel
BuildRequires: libstdc++6-devel BuildRequires: libstdc++6-devel
BuildRequires: libsystemd-devel
BuildRequires: libtasn1-devel BuildRequires: libtasn1-devel
BuildRequires: libwayland-devel BuildRequires: libwayland-devel
BuildRequires: libwayland-egl-devel BuildRequires: libwayland-egl-devel
@ -94,7 +77,6 @@ BuildRequires: libwv-devel
BuildRequires: libxkbcommon-devel BuildRequires: libxkbcommon-devel
BuildRequires: libxml2-devel BuildRequires: libxml2-devel
BuildRequires: libxslt-devel BuildRequires: libxslt-devel
BuildRequires: libyajl-devel
BuildRequires: libz-devel BuildRequires: libz-devel
BuildRequires: telepathy-glib-devel BuildRequires: telepathy-glib-devel
## AUTOBUILDREQ-END ## AUTOBUILDREQ-END
@ -120,28 +102,28 @@ Requires: %{name} = %{version}-%{release}
%description devel %description devel
AbiWord is a free word processing program similar to Microsoft Word. AbiWord is a free word processing program similar to Microsoft Word.
It is suitable for typing papers, letters, reports, memos, and so forth. It is suitable for typing papers, letters, reports, memos, and so forth.
This package provides files needed for development. This package provides files needed for development.
%debug_package
%prep %prep
%setup -q %{name}-%{version} %setup -q -n AbiWord-%{version}
#-D -T #-D -T
autoreconf --force --install %patch 0 -p1 -b .enchant-2.8.2
%patch 1 -p1
NOCONFIGURE=1 ./autogen.sh
%build %build
#:<< _EOF #:<< _EOF
export CXXFLAGS="-std=c++14 %{optflags} -DASIO_ENABLE_BOOST"
%configure \ %configure \
--with-libxml2 \
--enable-printing \
--enable-gnomevfs \
--enable-gnomeui \
--enable-libabiword \
--enable-shared \
--without-evolution-data-server \
--enable-plugins \ --enable-plugins \
GRAMMAR_CFLAGS="-DHAVE_LINK_GRAMMAR_51" --enable-clipart \
--enable-introspection \
--enable-templates \
--enable-shared
# GRAMMAR_CFLAGS="-DHAVE_LINK_GRAMMAR_51"
%make %make
@ -149,16 +131,9 @@ autoreconf --force --install
[ "%{buildroot}" != / ] && rm -rf %{buildroot} [ "%{buildroot}" != / ] && rm -rf %{buildroot}
%makeinstall %makeinstall
# install the mime files
install -D -m644 %{S:4} \
%{buildroot}%{_datadir}/mime-info/%{name}.mime
%clean %clean
[ "%{buildroot}" != / ] && rm -rf %{buildroot} [ "%{buildroot}" != / ] && rm -rf %{buildroot}
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files %files
%defattr(-,root,root) %defattr(-,root,root)
%{_bindir}/* %{_bindir}/*
@ -168,13 +143,13 @@ install -D -m644 %{S:4} \
%{_datadir}/appdata/abiword.appdata.xml %{_datadir}/appdata/abiword.appdata.xml
%{_datadir}/dbus-1/services/org.freedesktop.Telepathy.Client.AbiCollab.service %{_datadir}/dbus-1/services/org.freedesktop.Telepathy.Client.AbiCollab.service
%{_datadir}/telepathy/clients/AbiCollab.client %{_datadir}/telepathy/clients/AbiCollab.client
%{_datadir}/icons/*
%{_datadir}/mime-info/abiword.mime
#%{_datadir}/mime-info/abiword.keys
%{_libdir}/libabiword-%{majversion}.so %{_libdir}/libabiword-%{majversion}.so
%{_libdir}/libAiksaurusGtk3--export-dynamic.so %{_libdir}/libAiksaurusGtk3--export-dynamic.so
%{_libdir}/libAiksaurusGtk3.so %{_libdir}/libAiksaurusGtk3.so
%{_libdir}/girepository-1.0/Abi-3.0.typelib
%{_libdir}/abiword-%{majversion}/plugins/*.so %{_libdir}/abiword-%{majversion}/plugins/*.so
%{_datadir}/icons/hicolor/*/apps/abiword.png
%{_datadir}/icons/hicolor/scalable/apps/abiword.svg
%{_mandir}/man1/abiword.1* %{_mandir}/man1/abiword.1*
%files devel %files devel
@ -182,11 +157,13 @@ install -D -m644 %{S:4} \
%{_includedir}/abiword-%{majversion}/abiwidget.h %{_includedir}/abiword-%{majversion}/abiwidget.h
%{_includedir}/abiword-%{majversion}/libabiword.h %{_includedir}/abiword-%{majversion}/libabiword.h
%{_includedir}/abiword-%{majversion}/xap_UnixTableWidget.h %{_includedir}/abiword-%{majversion}/xap_UnixTableWidget.h
#%{_libdir}/abiword-%{majversion}/plugins/opendocument.a %{_datadir}/gir-1.0/Abi-3.0.gir
#%{_libdir}/libabiword-%{majversion}.a
%{_libdir}/pkgconfig/abiword-%{majversion}.pc %{_libdir}/pkgconfig/abiword-%{majversion}.pc
%changelog %changelog
* Mon Nov 25 2024 Silvan Calarco <silvan.calarco@mambasoft.it> 3.0.6-1mamba
- update to 3.0.6
* Mon Sep 04 2023 Silvan Calarco <silvan.calarco@mambasoft.it> 3.0.5-2mamba * Mon Sep 04 2023 Silvan Calarco <silvan.calarco@mambasoft.it> 3.0.5-2mamba
- rebuilt with ghostscript 10 - rebuilt with ghostscript 10