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