I discovered and reported a bug in abiword that causes it to crash when using the format painter. I've applied a patch from the upstream SVN that fixes the bug and rebuilt the package using sbuild ready to be uploaded.
The binary and source packages are available here: http://edwardbetts.com/debian/abiword/ Abiword is maintained by the Debian QA team. I'd appreciate if somebody could look over the fix and upload it to the archive. My changes to the package repo are available on my web server, and below. http://edwardbetts.com/debian/abiword.git/ It'd be great if whoever uploads the packages could also push to git://anonscm.debian.org/collab-maint/abiword.git Thanks, -- Edward. --- debian/changelog | 6 +++ debian/patches/format-painter-fix.patch | 92 +++++++++++++++++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 99 insertions(+) create mode 100644 debian/patches/format-painter-fix.patch diff --git a/debian/changelog b/debian/changelog index 912e9b1..dfff800 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +abiword (3.0.0-8) unstable; urgency=medium + + * Apply an upstream patch to fix format painter bug. (Closes: #766845). + + -- Edward Betts <edw...@4angle.com> Sat, 15 Nov 2014 18:38:55 +0000 + abiword (3.0.0-7) unstable; urgency=medium * Build-Depends: libjpeg8-dev --> libjpeg-dev (Closes: #763464). diff --git a/debian/patches/format-painter-fix.patch b/debian/patches/format-painter-fix.patch new file mode 100644 index 0000000..99c048a --- /dev/null +++ b/debian/patches/format-painter-fix.patch @@ -0,0 +1,92 @@ +Last-Update: 2014-11-15 +Bug-Debian: http://bugs.debian.org/766845 +Bug-Abiword: http://bugzilla.abisource.com/13586 +Description: fix format painter bug + +Index: abiword/src/text/fmt/gtk/fv_UnixSelectionHandles.cpp +=================================================================== +--- abiword.orig/src/text/fmt/gtk/fv_UnixSelectionHandles.cpp ++++ abiword/src/text/fmt/gtk/fv_UnixSelectionHandles.cpp +@@ -36,42 +36,60 @@ static void handle_dragged_cb (FvTextHan + + mode = _fv_text_handle_get_mode (handle); + +- if (pos == FV_TEXT_HANDLE_POSITION_SELECTION_START) ++ if (pos == FV_TEXT_HANDLE_POSITION_SELECTION_START) { + handles->updateSelectionStart ((UT_sint32)x, (UT_sint32)y); ++ } + else { +- if (mode == FV_TEXT_HANDLE_MODE_SELECTION) ++ if (mode == FV_TEXT_HANDLE_MODE_SELECTION) { + handles->updateSelectionEnd ((UT_sint32)x, (UT_sint32)y); +- else ++ } ++ else { + handles->updateCursor((UT_sint32)x, (UT_sint32)y); ++ } + } + } + + FV_UnixSelectionHandles::FV_UnixSelectionHandles(FV_View *view, FV_Selection selection) + : FV_SelectionHandles (view, selection) ++ , m_text_handle(NULL) + { + XAP_Frame * pFrame = static_cast<XAP_Frame*>(m_pView->getParentData()); +- XAP_UnixFrameImpl * pFrameImpl =static_cast<XAP_UnixFrameImpl *>( pFrame->getFrameImpl()); +- GtkWidget * pWidget = pFrameImpl->getViewWidget(); +- +- m_text_handle = _fv_text_handle_new (pWidget); +- _fv_text_handle_set_relative_to (m_text_handle, +- gtk_widget_get_window (pWidget)); +- g_signal_connect (m_text_handle, "handle-dragged", +- G_CALLBACK(handle_dragged_cb), this); ++ // When saving to PDF (and printing) we don't have a frame ++ // See bug 13586 ++ if (pFrame) { ++ XAP_UnixFrameImpl * pFrameImpl = static_cast<XAP_UnixFrameImpl *>(pFrame->getFrameImpl()); ++ GtkWidget * pWidget = pFrameImpl->getViewWidget(); ++ ++ m_text_handle = _fv_text_handle_new (pWidget); ++ _fv_text_handle_set_relative_to (m_text_handle, ++ gtk_widget_get_window (pWidget)); ++ g_signal_connect (m_text_handle, "handle-dragged", ++ G_CALLBACK(handle_dragged_cb), this); ++ } + } + + FV_UnixSelectionHandles::~FV_UnixSelectionHandles() + { ++ if(!m_text_handle) { ++ return; ++ } + g_object_unref (m_text_handle); + } + + void FV_UnixSelectionHandles::hide() + { ++ if(!m_text_handle) { ++ return; ++ } + _fv_text_handle_set_mode (m_text_handle, FV_TEXT_HANDLE_MODE_NONE); + } + + void FV_UnixSelectionHandles::setCursorCoords(UT_sint32 x, UT_sint32 y, UT_uint32 height, bool visible) + { ++ if(!m_text_handle) { ++ return; ++ } ++ + GdkRectangle rect; + + _fv_text_handle_set_mode(m_text_handle, FV_TEXT_HANDLE_MODE_CURSOR); +@@ -92,6 +110,10 @@ void FV_UnixSelectionHandles::setCursorC + void FV_UnixSelectionHandles::setSelectionCoords(UT_sint32 start_x, UT_sint32 start_y, UT_uint32 start_height, bool start_visible, + UT_sint32 end_x, UT_sint32 end_y, UT_uint32 end_height, bool end_visible) + { ++ if(!m_text_handle) { ++ return; ++ } ++ + GdkRectangle rect; + + _fv_text_handle_set_mode(m_text_handle, FV_TEXT_HANDLE_MODE_SELECTION); diff --git a/debian/patches/series b/debian/patches/series index fcf5962..167d750 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -10,3 +10,4 @@ autosave.diff -p1 ctrl-comma-subscript.diff -p1 mime-types-desktop.diff -p1 mime-types.diff -p1 +format-painter-fix.patch -- 2.1.3 -- To UNSUBSCRIBE, email to debian-qa-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/20141115203318.GA8932@x230