Package: abiword Version: 3.0.4~dfsg-3 Followup-For: Bug #983960 User: ubuntu-de...@lists.ubuntu.com Usertags: origin-ubuntu impish ubuntu-patch X-Debbugs-Cc: sl...@ubuntu.com Control: tags -1 patch
Hi Jonas, C++17 does not allow dynamic exception specifications anymore, therefore we need to remove/replace the relevant throw() statements, as done upstream in 2017: https://github.com/AbiWord/abiword/commit/ef29fc9 I'm not sure why this commit isn't part of the 3.0.4 release – from 2019 – already... In Ubuntu, the attached (upstream) patch was applied cleanly to make it build again. Thanks for considering the patch. -- System Information: Debian Release: bullseye/sid APT prefers hirsute-updates APT policy: (500, 'hirsute-updates'), (500, 'hirsute-security'), (500, 'hirsute'), (100, 'hirsute-backports') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 5.11.0-25-generic (SMP w/4 CPU threads) Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_WARN, TAINT_OOT_MODULE Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), LANGUAGE=de_DE:en_GB:en Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled
diff -Nru abiword-3.0.4~dfsg/debian/patches/0014-Remove-deprecated-throw-specifiers.patch abiword-3.0.4~dfsg/debian/patches/0014-Remove-deprecated-throw-specifiers.patch --- abiword-3.0.4~dfsg/debian/patches/0014-Remove-deprecated-throw-specifiers.patch 1970-01-01 01:00:00.000000000 +0100 +++ abiword-3.0.4~dfsg/debian/patches/0014-Remove-deprecated-throw-specifiers.patch 2021-08-10 16:25:27.000000000 +0200 @@ -0,0 +1,849 @@ +From: Hubert Figuiere <h...@figuiere.net> +Date: Wed, 22 Nov 2017 06:01:56 +0000 +Subject: Remove deprecated throw specifiers + +git-svn-id: svn+ssh://svn.abisource.com/svnroot/abiword/trunk@35445 bcba8976-2d24-0410-9c9c-aab3bd5fdfd6 +--- + plugins/aiksaurus/aiksaurusgtk3/AiksaurusGTK.cpp | 34 ++++++++++----------- + plugins/aiksaurus/aiksaurusgtk3/DialogMediator.h | 8 ++--- + plugins/aiksaurus/aiksaurusgtk3/Display.cpp | 28 ++++++++--------- + plugins/aiksaurus/aiksaurusgtk3/Display.h | 28 ++++++++--------- + plugins/aiksaurus/aiksaurusgtk3/Meaning.cpp | 12 ++++---- + plugins/aiksaurus/aiksaurusgtk3/Meaning.h | 10 +++---- + plugins/aiksaurus/aiksaurusgtk3/Toolbar.cpp | 32 ++++++++++---------- + plugins/aiksaurus/aiksaurusgtk3/Toolbar.h | 34 ++++++++++----------- + plugins/sdw/xp/docinfo.cpp | 4 +-- + plugins/sdw/xp/docinfo.h | 2 +- + plugins/sdw/xp/ie_imp_StarOffice.cpp | 12 ++++---- + plugins/sdw/xp/ie_imp_StarOffice.h | 38 ++++++++++++------------ + src/af/util/xp/ut_iconv.cpp | 2 +- + src/af/util/xp/ut_iconv.h | 3 +- + 14 files changed, 123 insertions(+), 124 deletions(-) + +diff --git a/plugins/aiksaurus/aiksaurusgtk3/AiksaurusGTK.cpp b/plugins/aiksaurus/aiksaurusgtk3/AiksaurusGTK.cpp +index 61cd640..15f2721 100644 +--- a/plugins/aiksaurus/aiksaurusgtk3/AiksaurusGTK.cpp ++++ b/plugins/aiksaurus/aiksaurusgtk3/AiksaurusGTK.cpp +@@ -51,15 +51,15 @@ namespace AiksaurusGTK_impl + DialogImpl(); + virtual ~DialogImpl(); + +- const char* runThesaurus(const char* word) throw(); +- void setTitle(const char* title) throw(); +- void setReplacebar(bool replacebar) throw(); +- void setInitialMessage(const char* message) throw(std::bad_alloc); +- +- void eventCancel() throw(); +- void eventReplace(const char* replacement) throw(); +- void eventSelectWord(const char* word) throw(); +- void eventSearch(const char* word) throw(); ++ const char* runThesaurus(const char* word) noexcept(false); ++ void setTitle(const char* title) noexcept(false); ++ void setReplacebar(bool replacebar) noexcept(false); ++ void setInitialMessage(const char* message) noexcept(false); ++ ++ void eventCancel() noexcept(false); ++ void eventReplace(const char* replacement) noexcept(false); ++ void eventSelectWord(const char* word) noexcept(false); ++ void eventSearch(const char* word) noexcept(false); + }; + + +@@ -78,13 +78,13 @@ namespace AiksaurusGTK_impl + } + + +- void DialogImpl::setReplacebar(bool replacebar) throw() ++ void DialogImpl::setReplacebar(bool replacebar) noexcept(false) + { + d_showreplacebar = replacebar; + } + + +- void DialogImpl::setInitialMessage(const char* message) throw(std::bad_alloc) ++ void DialogImpl::setInitialMessage(const char* message) noexcept(false) + { + d_initialMessage = message; + } +@@ -149,7 +149,7 @@ namespace AiksaurusGTK_impl + } + + +- const char* DialogImpl::runThesaurus(const char* word) throw() ++ const char* DialogImpl::runThesaurus(const char* word) noexcept(false) + { + try { + +@@ -180,7 +180,7 @@ namespace AiksaurusGTK_impl + } + + +- void DialogImpl::setTitle(const char* word) throw() ++ void DialogImpl::setTitle(const char* word) noexcept(false) + { + try { + d_title = (word) ? (word) : (""); +@@ -191,13 +191,13 @@ namespace AiksaurusGTK_impl + } + + +- void DialogImpl::eventCancel() throw() ++ void DialogImpl::eventCancel() noexcept(false) + { + gtk_main_quit(); + } + + +- void DialogImpl::eventReplace(const char* replacement) throw() ++ void DialogImpl::eventReplace(const char* replacement) noexcept(false) + { + try { + d_replacement = replacement; +@@ -209,14 +209,14 @@ namespace AiksaurusGTK_impl + } + + +- void DialogImpl::eventSelectWord(const char* word) throw() ++ void DialogImpl::eventSelectWord(const char* word) noexcept(false) + { + if (d_replacebar_ptr) + d_replacebar_ptr->setText(word); + } + + +- void DialogImpl::eventSearch(const char* word) throw() ++ void DialogImpl::eventSearch(const char* word) noexcept(false) + { + try { + std::string w( (word) ? (word) : ("") ); +diff --git a/plugins/aiksaurus/aiksaurusgtk3/DialogMediator.h b/plugins/aiksaurus/aiksaurusgtk3/DialogMediator.h +index f626a3e..0bbd614 100644 +--- a/plugins/aiksaurus/aiksaurusgtk3/DialogMediator.h ++++ b/plugins/aiksaurus/aiksaurusgtk3/DialogMediator.h +@@ -26,10 +26,10 @@ namespace AiksaurusGTK_impl + class DialogMediator + { + public: +- virtual void eventCancel() throw() = 0; +- virtual void eventReplace(const char* replacement) throw() = 0; +- virtual void eventSelectWord(const char* word) throw() = 0; +- virtual void eventSearch(const char* word) throw() = 0; ++ virtual void eventCancel() noexcept(false) = 0; ++ virtual void eventReplace(const char* replacement) noexcept(false) = 0; ++ virtual void eventSelectWord(const char* word) noexcept(false) = 0; ++ virtual void eventSearch(const char* word) noexcept(false) = 0; + }; + } + +diff --git a/plugins/aiksaurus/aiksaurusgtk3/Display.cpp b/plugins/aiksaurus/aiksaurusgtk3/Display.cpp +index cdb05de..787c2db 100644 +--- a/plugins/aiksaurus/aiksaurusgtk3/Display.cpp ++++ b/plugins/aiksaurus/aiksaurusgtk3/Display.cpp +@@ -29,7 +29,7 @@ using namespace std; + namespace AiksaurusGTK_impl + { + +- Display::Display(DialogMediator& mediator) throw() ++ Display::Display(DialogMediator& mediator) noexcept(false) + : d_mediator(mediator) + { + // ensure that styles are set up. +@@ -61,7 +61,7 @@ namespace AiksaurusGTK_impl + } + + +- Display::~Display() throw() ++ Display::~Display() noexcept(false) + { + for(int i = 0;i < static_cast<int>(d_meanings.size());++i) + { +@@ -71,7 +71,7 @@ namespace AiksaurusGTK_impl + + + void Display::_createMeaning(const string& title, vector<string>& words) +- throw(std::bad_alloc) ++ noexcept(false) + { + Meaning *mean = new Meaning(title, words, *this); + d_meanings.push_back(mean); +@@ -79,7 +79,7 @@ namespace AiksaurusGTK_impl + } + + +- void Display::_resetDisplay() throw() ++ void Display::_resetDisplay() noexcept(false) + { + // Recreate our layout widget. + if (d_layout) +@@ -96,7 +96,7 @@ namespace AiksaurusGTK_impl + d_meanings.clear(); + } + +- void Display::_displayResults(const char* word) throw(Exception, std::bad_alloc) ++ void Display::_displayResults(const char* word) noexcept(false) + { + _checkThesaurus(); + +@@ -135,7 +135,7 @@ namespace AiksaurusGTK_impl + + + +- void Display::_checkThesaurus() throw(Exception) ++ void Display::_checkThesaurus() noexcept(false) + { + if (d_thesaurus.error()[0]) + { +@@ -151,7 +151,7 @@ namespace AiksaurusGTK_impl + } + + void Display::_displayAlternatives() +- throw(Exception, std::bad_alloc) ++ noexcept(false) + { + _checkThesaurus(); + vector<string> words; +@@ -165,7 +165,7 @@ namespace AiksaurusGTK_impl + } + + +- void Display::showMessage(const char* message) throw() ++ void Display::showMessage(const char* message) noexcept(false) + { + _resetDisplay(); + GtkWidget* label = gtk_label_new(message); +@@ -174,7 +174,7 @@ namespace AiksaurusGTK_impl + gtk_widget_show_all(d_layout); + } + +- void Display::search(const char* word) throw(std::bad_alloc) ++ void Display::search(const char* word) noexcept(false) + { + try + { +@@ -195,7 +195,7 @@ namespace AiksaurusGTK_impl + } + + +- void Display::_handleClick(bool isDoubleClick, const char* text) throw(std::bad_alloc) ++ void Display::_handleClick(bool isDoubleClick, const char* text) noexcept(false) + { + string str(text); // might throw + +@@ -206,7 +206,7 @@ namespace AiksaurusGTK_impl + } + + +- void Display::_handleSelection(GtkWidget* list) throw() ++ void Display::_handleSelection(GtkWidget* list) noexcept(false) + { + for(int i = 0;i < static_cast<int>(d_meanings.size());++i) + { +@@ -215,13 +215,13 @@ namespace AiksaurusGTK_impl + } + + +- GtkWidget* Display::getDisplay() throw() ++ GtkWidget* Display::getDisplay() noexcept(false) + { + return d_scroller; + } + + +- const Aiksaurus& Display::getThesaurus() const throw() ++ const Aiksaurus& Display::getThesaurus() const noexcept(false) + { + return d_thesaurus; + } +@@ -233,7 +233,7 @@ namespace AiksaurusGTK_impl + // To do this, we have to set up a resource first so that the + // styles mean what we want them to mean. + // +- void Display::_initResources() throw() ++ void Display::_initResources() noexcept(false) + { + // Execute this code only once. + static bool done = false; +diff --git a/plugins/aiksaurus/aiksaurusgtk3/Display.h b/plugins/aiksaurus/aiksaurusgtk3/Display.h +index 9986921..40c0da4 100644 +--- a/plugins/aiksaurus/aiksaurusgtk3/Display.h ++++ b/plugins/aiksaurus/aiksaurusgtk3/Display.h +@@ -28,30 +28,30 @@ namespace AiksaurusGTK_impl + GtkWidget* d_layout; + std::vector<Meaning*> d_meanings; + +- void _handleSelection(GtkWidget* list) throw(); +- void _handleClick(bool isDoubleClick, const char* text) throw(std::bad_alloc); ++ void _handleSelection(GtkWidget* list) noexcept(false); ++ void _handleClick(bool isDoubleClick, const char* text) noexcept(false); + +- void _resetDisplay() throw(); ++ void _resetDisplay() noexcept(false); + + void _createMeaning(const std::string& title, std::vector<std::string>& words) +- throw(std::bad_alloc); ++ noexcept(false); + +- void _displayResults(const char* word) throw(Exception, std::bad_alloc); +- void _displayAlternatives() throw(Exception, std::bad_alloc); ++ void _displayResults(const char* word) noexcept(false); ++ void _displayAlternatives() noexcept(false); + +- void _checkThesaurus() throw(Exception); ++ void _checkThesaurus() noexcept(false); + +-// static void _initResources() throw(); ++// static void _initResources() noexcept(false); + + public: +- Display(DialogMediator& parent) throw(); +- ~Display() throw(); ++ Display(DialogMediator& parent) noexcept(false); ++ ~Display() noexcept(false); + +- const Aiksaurus& getThesaurus() const throw(); +- GtkWidget* getDisplay() throw(); ++ const Aiksaurus& getThesaurus() const noexcept(false); ++ GtkWidget* getDisplay() noexcept(false); + +- void search(const char* word) throw(std::bad_alloc); +- void showMessage(const char* message) throw(); ++ void search(const char* word) noexcept(false); ++ void showMessage(const char* message) noexcept(false); + }; + + } +diff --git a/plugins/aiksaurus/aiksaurusgtk3/Meaning.cpp b/plugins/aiksaurus/aiksaurusgtk3/Meaning.cpp +index e0652df..e770e1e 100644 +--- a/plugins/aiksaurus/aiksaurusgtk3/Meaning.cpp ++++ b/plugins/aiksaurus/aiksaurusgtk3/Meaning.cpp +@@ -9,7 +9,7 @@ using namespace std; + namespace AiksaurusGTK_impl + { + +- static void ucwords(string& str) throw() ++ static void ucwords(string& str) noexcept(false) + { + bool ws = true; + for(int i = 0;i < static_cast<int>(str.size());++i) +@@ -26,7 +26,7 @@ namespace AiksaurusGTK_impl + } + + Meaning::Meaning(const string& title, vector<string>& words, Display& display) +- throw(bad_alloc) ++ noexcept(false) + : d_title(title), d_words(words), d_display(display), d_lists(4), d_models(4) + { + d_masterLayout = gtk_event_box_new(); +@@ -126,12 +126,12 @@ namespace AiksaurusGTK_impl + + } + +- Meaning::~Meaning() throw() ++ Meaning::~Meaning() noexcept(false) + { + + } + +- GtkWidget* Meaning::getLayout() throw() ++ GtkWidget* Meaning::getLayout() noexcept(false) + { + return d_masterLayout; + } +@@ -139,7 +139,7 @@ namespace AiksaurusGTK_impl + + gint Meaning::_wordclick + (GtkTreeSelection *sel, gpointer data) +- throw(std::bad_alloc) ++ noexcept(false) + { + Meaning *m = static_cast<Meaning*>(data); + GtkTreeView *tv = gtk_tree_selection_get_tree_view(sel); +@@ -159,7 +159,7 @@ namespace AiksaurusGTK_impl + } + + +- void Meaning::unselectListsExcept(GtkWidget* list) throw() ++ void Meaning::unselectListsExcept(GtkWidget* list) noexcept(false) + { + for(int i = 0;i < static_cast<int>(d_lists.size());++i) + { +diff --git a/plugins/aiksaurus/aiksaurusgtk3/Meaning.h b/plugins/aiksaurus/aiksaurusgtk3/Meaning.h +index 6b41d0d..5c63981 100644 +--- a/plugins/aiksaurus/aiksaurusgtk3/Meaning.h ++++ b/plugins/aiksaurus/aiksaurusgtk3/Meaning.h +@@ -25,18 +25,18 @@ namespace AiksaurusGTK_impl + GtkWidget* d_label; + + static gint _wordclick(GtkTreeSelection *sel, +- gpointer data) throw(std::bad_alloc); ++ gpointer data) noexcept(false); + + public: + + Meaning(const string& title, vector<string>& words, Display& display) +- throw(std::bad_alloc); ++ noexcept(false); + +- ~Meaning() throw(); ++ ~Meaning() noexcept(false); + +- GtkWidget* getLayout() throw(); ++ GtkWidget* getLayout() noexcept(false); + +- void unselectListsExcept(GtkWidget* me) throw(); ++ void unselectListsExcept(GtkWidget* me) noexcept(false); + }; + } + +diff --git a/plugins/aiksaurus/aiksaurusgtk3/Toolbar.cpp b/plugins/aiksaurus/aiksaurusgtk3/Toolbar.cpp +index ff4ea7a..ba535d4 100644 +--- a/plugins/aiksaurus/aiksaurusgtk3/Toolbar.cpp ++++ b/plugins/aiksaurus/aiksaurusgtk3/Toolbar.cpp +@@ -26,7 +26,7 @@ + namespace AiksaurusGTK_impl + { + +- Toolbar::Toolbar(DialogMediator& mediator, GtkWidget* window) throw(std::bad_alloc) ++ Toolbar::Toolbar(DialogMediator& mediator, GtkWidget* window) noexcept(false) + : d_mediator(mediator), + d_searchbar_words(12), + d_ishistorymove(false), +@@ -87,12 +87,12 @@ namespace AiksaurusGTK_impl + _updateNavigation(); + } + +- Toolbar::~Toolbar() throw() ++ Toolbar::~Toolbar() noexcept(false) + { + + } + +- void Toolbar::_updateNavigation() throw(std::bad_alloc) ++ void Toolbar::_updateNavigation() noexcept(false) + { + if (d_history.size_back()) + d_backbutton_ptr->enable(); +@@ -111,7 +111,7 @@ namespace AiksaurusGTK_impl + d_forwardbutton_ptr->updateMenuOptions(); + } + +- void Toolbar::search(const char* str) throw(std::bad_alloc) ++ void Toolbar::search(const char* str) noexcept(false) + { + if (!d_ishistorymove) + d_history.search(str); +@@ -126,29 +126,29 @@ namespace AiksaurusGTK_impl + gtk_combo_box_text_append_text(combo, reinterpret_cast<const char*>(ptr->data)); + } + +- void Toolbar::_setTooltip(GtkWidget* w, const char* str) throw() ++ void Toolbar::_setTooltip(GtkWidget* w, const char* str) noexcept(false) + { + gtk_widget_set_tooltip_text(w, str); + } + +- void Toolbar::focus() throw() ++ void Toolbar::focus() noexcept(false) + { + gtk_window_set_focus(GTK_WINDOW(d_window_ptr), gtk_bin_get_child(GTK_BIN(d_searchbar_ptr))); + } + +- const char* Toolbar::getText() const throw() ++ const char* Toolbar::getText() const noexcept(false) + { + return gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(d_searchbar_ptr)))); + } + +- GtkWidget* Toolbar::getToolbar() throw() ++ GtkWidget* Toolbar::getToolbar() noexcept(false) + { + return d_toolbar_ptr; + } + + + +- void Toolbar::_backClicked(GtkWidget*, gpointer data) throw() ++ void Toolbar::_backClicked(GtkWidget*, gpointer data) noexcept(false) + { + Toolbar* tb = static_cast<Toolbar*>(data); + tb->d_history.move_back(); +@@ -157,7 +157,7 @@ namespace AiksaurusGTK_impl + tb->d_ishistorymove = false; + } + +- void Toolbar::_backMenuClicked(GList* element, gpointer data) throw() ++ void Toolbar::_backMenuClicked(GList* element, gpointer data) noexcept(false) + { + Toolbar* tb = static_cast<Toolbar*>(data); + tb->d_history.move_back_to(element); +@@ -166,7 +166,7 @@ namespace AiksaurusGTK_impl + tb->d_ishistorymove = false; + } + +- void Toolbar::_forwardClicked(GtkWidget*, gpointer data) throw() ++ void Toolbar::_forwardClicked(GtkWidget*, gpointer data) noexcept(false) + { + Toolbar* tb = static_cast<Toolbar*>(data); + tb->d_history.move_forward(); +@@ -175,7 +175,7 @@ namespace AiksaurusGTK_impl + tb->d_ishistorymove = false; + } + +- void Toolbar::_forwardMenuClicked(GList* element, gpointer data) throw() ++ void Toolbar::_forwardMenuClicked(GList* element, gpointer data) noexcept(false) + { + Toolbar* tb = static_cast<Toolbar*>(data); + tb->d_history.move_forward_to(element); +@@ -184,7 +184,7 @@ namespace AiksaurusGTK_impl + tb->d_ishistorymove = false; + } + +- void Toolbar::_searchBarChanged(GtkWidget*, gpointer data) throw() ++ void Toolbar::_searchBarChanged(GtkWidget*, gpointer data) noexcept(false) + { + Toolbar* tb = static_cast<Toolbar*>(data); + bool popup_visible; +@@ -194,7 +194,7 @@ namespace AiksaurusGTK_impl + tb->d_searchhack = true; + } + +- void Toolbar::_searchBarHide(GtkWidget*, gpointer data) throw() ++ void Toolbar::_searchBarHide(GtkWidget*, gpointer data) noexcept(false) + { + Toolbar* tb = static_cast<Toolbar*>(data); + +@@ -204,12 +204,12 @@ namespace AiksaurusGTK_impl + tb->d_searchhack = false; + } + +- void Toolbar::_searchBarActivate(GtkWidget* w, gpointer data) throw() ++ void Toolbar::_searchBarActivate(GtkWidget* w, gpointer data) noexcept(false) + { + _searchClicked(w, data); + } + +- void Toolbar::_searchClicked(GtkWidget*, gpointer data) throw() ++ void Toolbar::_searchClicked(GtkWidget*, gpointer data) noexcept(false) + { + Toolbar* tb = static_cast<Toolbar*>(data); + tb->d_mediator.eventSearch( tb->getText() ); +diff --git a/plugins/aiksaurus/aiksaurusgtk3/Toolbar.h b/plugins/aiksaurus/aiksaurusgtk3/Toolbar.h +index 97b527c..587234f 100644 +--- a/plugins/aiksaurus/aiksaurusgtk3/Toolbar.h ++++ b/plugins/aiksaurus/aiksaurusgtk3/Toolbar.h +@@ -55,33 +55,33 @@ namespace AiksaurusGTK_impl + GtkWidget* d_searchbar_ptr; + GtkWidget* d_searchbar_label_ptr; + +- void _updateNavigation() throw(std::bad_alloc); ++ void _updateNavigation() noexcept(false); + +- void _setTooltip(GtkWidget* w, const char* str) throw(); ++ void _setTooltip(GtkWidget* w, const char* str) noexcept(false); + +- static void _backClicked(GtkWidget* w, gpointer data) throw(); +- static void _backMenuClicked(GList* element, gpointer data) throw(); ++ static void _backClicked(GtkWidget* w, gpointer data) noexcept(false); ++ static void _backMenuClicked(GList* element, gpointer data) noexcept(false); + +- static void _forwardClicked(GtkWidget* w, gpointer data) throw(); +- static void _forwardMenuClicked(GList* element, gpointer data) throw(); ++ static void _forwardClicked(GtkWidget* w, gpointer data) noexcept(false); ++ static void _forwardMenuClicked(GList* element, gpointer data) noexcept(false); + +- static void _searchBarChanged(GtkWidget* w, gpointer data) throw(); +- static void _searchBarShow(GtkWidget* w, gpointer data) throw(); +- static void _searchBarHide(GtkWidget* w, gpointer data) throw(); +- static void _searchBarActivate(GtkWidget* w, gpointer d) throw(); ++ static void _searchBarChanged(GtkWidget* w, gpointer data) noexcept(false); ++ static void _searchBarShow(GtkWidget* w, gpointer data) noexcept(false); ++ static void _searchBarHide(GtkWidget* w, gpointer data) noexcept(false); ++ static void _searchBarActivate(GtkWidget* w, gpointer d) noexcept(false); + +- static void _searchClicked(GtkWidget* w, gpointer data) throw(); ++ static void _searchClicked(GtkWidget* w, gpointer data) noexcept(false); + + public: + +- Toolbar(DialogMediator& mediator, GtkWidget* window) throw(std::bad_alloc); +- ~Toolbar() throw(); ++ Toolbar(DialogMediator& mediator, GtkWidget* window) noexcept(false); ++ ~Toolbar() noexcept(false); + +- GtkWidget* getToolbar() throw(); +- const char* getText() const throw(); +- void focus() throw(); ++ GtkWidget* getToolbar() noexcept(false); ++ const char* getText() const noexcept(false); ++ void focus() noexcept(false); + +- void search(const char* str) throw(std::bad_alloc); ++ void search(const char* str) noexcept(false); + }; + + } +diff --git a/plugins/sdw/xp/docinfo.cpp b/plugins/sdw/xp/docinfo.cpp +index 3fe857b..3fa0643 100644 +--- a/plugins/sdw/xp/docinfo.cpp ++++ b/plugins/sdw/xp/docinfo.cpp +@@ -38,7 +38,7 @@ SDWDocInfo::~SDWDocInfo() {} + /** Reads a bytestring, followed by a padding. aMaxlen is the max. number of bytes to read. */ + static void readPaddedByteString(GsfInput* aStream, UT_UCS4String& aString, + UT_iconv_t aConverter, UT_uint32 aMaxlen) +- throw(UT_Error) ++ noexcept(false) + { + UT_UCS4Char* str; + readByteString(aStream, str, aConverter); +@@ -116,7 +116,7 @@ static inline void do_SetMetadata(PD_Document* aDoc, const std::string & aKey, U + } + + void SDWDocInfo::load(GsfInfile* aDoc, PD_Document* aPDDoc) +- throw(UT_Error) ++ noexcept(false) + { + char* headStr = NULL; + +diff --git a/plugins/sdw/xp/docinfo.h b/plugins/sdw/xp/docinfo.h +index cf57cb7..2b02dc2 100644 +--- a/plugins/sdw/xp/docinfo.h ++++ b/plugins/sdw/xp/docinfo.h +@@ -41,7 +41,7 @@ class SDWDocInfo { + * @param aDoc The OLE Document which contains the stream + * @param aPDDoc The PD_Document on which the metadata will be set. + * Should be called as load(mDoc, getDoc()); */ +- static void load(GsfInfile *aDoc, PD_Document* aPDDoc) throw(UT_Error); ++ static void load(GsfInfile *aDoc, PD_Document* aPDDoc) noexcept(false); + }; + + #endif +diff --git a/plugins/sdw/xp/ie_imp_StarOffice.cpp b/plugins/sdw/xp/ie_imp_StarOffice.cpp +index ba9bf4a..53f302a 100644 +--- a/plugins/sdw/xp/ie_imp_StarOffice.cpp ++++ b/plugins/sdw/xp/ie_imp_StarOffice.cpp +@@ -183,7 +183,7 @@ static UT_uint16 lcl_sw3io__CompressWhich(UT_uint16 nWhich) + #endif + + void streamRead(GsfInput* aStream, TextAttr& aAttr, gsf_off_t aEoa) +- throw(UT_Error) ++ noexcept(false) + { + UT_uint8 flags; + gsf_off_t newPos; +@@ -423,7 +423,7 @@ static UT_String _getPassword (XAP_Frame * pFrame) + } + + void readByteString(GsfInput* stream, char*& str, UT_uint16* aLength) +- throw(UT_Error) ++ noexcept(false) + { + UT_uint16 length; + str = NULL; +@@ -436,7 +436,7 @@ void readByteString(GsfInput* stream, char*& str, UT_uint16* aLength) + *aLength = length; + } + +-void readByteString(GsfInput* stream, UT_UCS4Char*& str, UT_iconv_t converter, SDWCryptor* cryptor) throw(UT_Error) ++void readByteString(GsfInput* stream, UT_UCS4Char*& str, UT_iconv_t converter, SDWCryptor* cryptor) noexcept(false) + { + UT_uint16 len; + char* rawString; +@@ -532,7 +532,7 @@ bool IE_Imp_StarOffice_Sniffer::getDlgLabels(const char** pszDesc, const char** + // ******************************************************************************** + // Header Class + +-void DocHdr::load(GsfInput* stream) throw(UT_Error) ++void DocHdr::load(GsfInput* stream) noexcept(false) + { + UT_DEBUGMSG(("SDW: entering DocHdr::load\n")); + static const char sw3hdr[] = "SW3HDR"; +@@ -614,7 +614,7 @@ IE_Imp_StarOffice::~IE_Imp_StarOffice() { + g_object_unref(G_OBJECT(mOle)); + } + +-void IE_Imp_StarOffice::readRecSize(GsfInput* aStream, UT_uint32& aSize, gsf_off_t* aEOR) throw(UT_Error) { ++void IE_Imp_StarOffice::readRecSize(GsfInput* aStream, UT_uint32& aSize, gsf_off_t* aEOR) noexcept(false) { + // Yes, that's correct, only 3 bytes. + guint8 buf [3]; + aSize = 0; +@@ -630,7 +630,7 @@ void IE_Imp_StarOffice::readRecSize(GsfInput* aStream, UT_uint32& aSize, gsf_off + *aEOR = gsf_input_tell(aStream) + aSize; + } + +-void readFlagRec(GsfInput* stream, UT_uint8& flags, gsf_off_t* newPos) throw(UT_Error) ++void readFlagRec(GsfInput* stream, UT_uint8& flags, gsf_off_t* newPos) noexcept(false) + { + streamRead(stream, flags); + if (newPos) +diff --git a/plugins/sdw/xp/ie_imp_StarOffice.h b/plugins/sdw/xp/ie_imp_StarOffice.h +index 17193b1..59c8810 100644 +--- a/plugins/sdw/xp/ie_imp_StarOffice.h ++++ b/plugins/sdw/xp/ie_imp_StarOffice.h +@@ -49,7 +49,7 @@ struct ClsId { + * str must be delete[]'d, not free'd! + * aLength, if non-null, contains the length of the string in bytes. */ + void readByteString(GsfInput* stream, char*& str, UT_uint16* aLength = NULL) +- throw(UT_Error); ++ noexcept(false); + + /*! Reads a bytestring from a stream and converts it to UCS-4. Optionally, + * it can also decrypt it. +@@ -57,7 +57,7 @@ void readByteString(GsfInput* stream, char*& str, UT_uint16* aLength = NULL) + * @param str The string where the bytestring should be stored + * @param converter Iconv handle for charset conversion + * @param cryptor (Optional) The cryptor used for decrypting the string */ +-void readByteString(GsfInput* stream, UT_UCS4Char*& str, UT_iconv_t converter, SDWCryptor* cryptor = NULL) throw(UT_Error); ++void readByteString(GsfInput* stream, UT_UCS4Char*& str, UT_iconv_t converter, SDWCryptor* cryptor = NULL) noexcept(false); + + class DocHdr { + public: +@@ -67,7 +67,7 @@ class DocHdr { + * \param stream The OLE Stream to load from - should be the one + * with the name "StarWriterDocument" + * \throw UT_Error on failure */ +- void load(GsfInput* stream) throw(UT_Error); ++ void load(GsfInput* stream) noexcept(false); + + UT_uint8 cLen; // ??? + UT_uint16 nVersion; +@@ -199,7 +199,7 @@ class IE_Imp_StarOffice : public IE_Imp + * \param aStream the stream to read from + * \param aSize Reference to the size of the record + * \param aEOR End of Record - file position where the record is finished*/ +- void readRecSize(GsfInput* stream, UT_uint32& aSize, gsf_off_t* aEOR = NULL) throw(UT_Error); ++ void readRecSize(GsfInput* stream, UT_uint32& aSize, gsf_off_t* aEOR = NULL) noexcept(false); + /*! Reads a string from the file where the first sint32 contains the length. If it + * is zero-terminated, length must include the byte for termination. The string will + * be converted to the charset given in mDocHdr. If the document is encrypted, the +@@ -207,7 +207,7 @@ class IE_Imp_StarOffice : public IE_Imp + * \param stream The stream to read from + * \param str Reference to pointer to UT_UCS4Char, where the string is stored. + * Must be free'd. Is NULL if the function fails. */ +- void readByteString(GsfInput* stream, UT_UCS4Char*& str) throw(UT_Error) { ++ void readByteString(GsfInput* stream, UT_UCS4Char*& str) noexcept(false) { + ::readByteString(stream, str, mDocHdr.converter, mDocHdr.cryptor); + } + +@@ -222,32 +222,32 @@ class IE_Imp_StarOffice : public IE_Imp + * \param flags Flags (also contain the length in the 4 least significant bytes) + * \param newPos (optional) Pointer to a variable where the position after the + * flags record is stored. */ +-void readFlagRec(GsfInput* stream, UT_uint8& flags, gsf_off_t* newPos = NULL) throw(UT_Error); ++void readFlagRec(GsfInput* stream, UT_uint8& flags, gsf_off_t* newPos = NULL) noexcept(false); + + /*! Reads one character from the given GsfInput. + * \param aStream The OLE Stream + * \param aChar Reference to the character + * \throw UT_Error on failure */ +-inline void readChar(GsfInput* aStream, char& aChar) throw(UT_Error) { ++inline void readChar(GsfInput* aStream, char& aChar) noexcept(false) { + if (!gsf_input_read(aStream, 1, reinterpret_cast<guint8*>(&aChar))) + throw UT_IE_BOGUSDOCUMENT; + } + +-inline void streamRead(GsfInput* aStream, UT_uint8& aDest) throw(UT_Error) { ++inline void streamRead(GsfInput* aStream, UT_uint8& aDest) noexcept(false) { + if (!gsf_input_read(aStream, 1, static_cast<guint8*>(&aDest))) + throw UT_IE_BOGUSDOCUMENT; + } + +-inline void streamRead(GsfInput* aStream, UT_sint8& aDest) throw(UT_Error) { ++inline void streamRead(GsfInput* aStream, UT_sint8& aDest) noexcept(false) { + streamRead(aStream, reinterpret_cast<UT_uint8 &>(aDest)); + } + +-inline void streamRead(GsfInput* aStream, char& aDest) throw(UT_Error) { ++inline void streamRead(GsfInput* aStream, char& aDest) noexcept(false) { + streamRead(aStream, reinterpret_cast<UT_uint8 &>(aDest)); + } + + +-inline void streamRead(GsfInput* aStream, UT_uint16& aDest, bool isLittleEndian = true) throw(UT_Error) { ++inline void streamRead(GsfInput* aStream, UT_uint16& aDest, bool isLittleEndian = true) noexcept(false) { + guint8 buf [2]; + if (!gsf_input_read(aStream, 2, buf)) + throw UT_IE_BOGUSDOCUMENT; +@@ -259,11 +259,11 @@ inline void streamRead(GsfInput* aStream, UT_uint16& aDest, bool isLittleEndian + } + } + +-inline void streamRead(GsfInput* aStream, UT_sint16& aDest, bool isLittleEndian = true) throw(UT_Error) { ++inline void streamRead(GsfInput* aStream, UT_sint16& aDest, bool isLittleEndian = true) noexcept(false) { + streamRead(aStream, reinterpret_cast<UT_uint16 &>(aDest), isLittleEndian); + } + +-inline void streamRead(GsfInput* aStream, UT_uint32& aDest, bool isLittleEndian = true) throw(UT_Error) { ++inline void streamRead(GsfInput* aStream, UT_uint32& aDest, bool isLittleEndian = true) noexcept(false) { + guint8 buf [4]; + if (!gsf_input_read(aStream, 4, buf)) + throw UT_IE_BOGUSDOCUMENT; +@@ -275,17 +275,17 @@ inline void streamRead(GsfInput* aStream, UT_uint32& aDest, bool isLittleEndian + } + } + +-inline void streamRead(GsfInput* aStream, UT_sint32& aDest, bool isLittleEndian = true) throw(UT_Error) { ++inline void streamRead(GsfInput* aStream, UT_sint32& aDest, bool isLittleEndian = true) noexcept(false) { + streamRead(aStream, reinterpret_cast<UT_uint32 &>(aDest), isLittleEndian); + } + + // reads the value as uint8 +-inline void streamRead(GsfInput* aStream, bool& aDest) throw(UT_Error) { ++inline void streamRead(GsfInput* aStream, bool& aDest) noexcept(false) { + streamRead(aStream, reinterpret_cast<UT_uint8&>(aDest)); + } + + // Class ID +-inline void streamRead(GsfInput* aStream, ClsId& aClsId) throw(UT_Error) { ++inline void streamRead(GsfInput* aStream, ClsId& aClsId) noexcept(false) { + streamRead(aStream, aClsId.n1); + streamRead(aStream, aClsId.n2); + streamRead(aStream, aClsId.n3); +@@ -301,18 +301,18 @@ inline void streamRead(GsfInput* aStream, ClsId& aClsId) throw(UT_Error) { + #include "ut_debugmsg.h" + + // for completeness... +-inline void streamRead(GsfInput* aStream, char* aBuffer, UT_uint32 length) throw(UT_Error) { ++inline void streamRead(GsfInput* aStream, char* aBuffer, UT_uint32 length) noexcept(false) { + if (!gsf_input_read(aStream, length, reinterpret_cast<guint8 *>(aBuffer))) + throw UT_IE_BOGUSDOCUMENT; + } + +-inline void streamRead(GsfInput* aStream, UT_uint8* aBuffer, UT_uint32 length) throw(UT_Error) { ++inline void streamRead(GsfInput* aStream, UT_uint8* aBuffer, UT_uint32 length) noexcept(false) { + if (!gsf_input_read(aStream, length, static_cast<guint8*>(aBuffer))) + throw UT_IE_BOGUSDOCUMENT; + } + + // readRecSize must have been called already. readFlagRec must not. + // aEoa = position of the end of the attr. +-void streamRead(GsfInput* aStream, TextAttr& aAttr, gsf_off_t aEoa) throw(UT_Error); ++void streamRead(GsfInput* aStream, TextAttr& aAttr, gsf_off_t aEoa) noexcept(false); + + #endif /* IE_IMP_STAROFFICE_H */ +diff --git a/src/af/util/xp/ut_iconv.cpp b/src/af/util/xp/ut_iconv.cpp +index 96054a7..515ccc0 100644 +--- a/src/af/util/xp/ut_iconv.cpp ++++ b/src/af/util/xp/ut_iconv.cpp +@@ -73,7 +73,7 @@ auto_iconv::auto_iconv(UT_iconv_t iconv) + /*! + * Convert characters from in_charset to out_charset + */ +-auto_iconv::auto_iconv(const char * in_charset, const char *out_charset) throw(UT_iconv_t) ++auto_iconv::auto_iconv(const char * in_charset, const char *out_charset) noexcept(false) + { + m_h = UT_ICONV_INVALID; + +diff --git a/src/af/util/xp/ut_iconv.h b/src/af/util/xp/ut_iconv.h +index 2ab4af3..f5ac858 100644 +--- a/src/af/util/xp/ut_iconv.h ++++ b/src/af/util/xp/ut_iconv.h +@@ -43,8 +43,7 @@ class ABI_EXPORT auto_iconv + + explicit auto_iconv(UT_iconv_t iconv); + +- explicit auto_iconv(const char * in_charset, const char *out_charset) +- throw(UT_iconv_t); ++ explicit auto_iconv(const char * in_charset, const char *out_charset) noexcept(false); + ~auto_iconv(); + operator UT_iconv_t(); + diff -Nru abiword-3.0.4~dfsg/debian/patches/series abiword-3.0.4~dfsg/debian/patches/series --- abiword-3.0.4~dfsg/debian/patches/series 2021-01-25 03:50:44.000000000 +0100 +++ abiword-3.0.4~dfsg/debian/patches/series 2021-08-10 16:25:27.000000000 +0200 @@ -11,3 +11,4 @@ mime-types.diff build-with-aiksaurus-1-2.patch enchant2.patch +0014-Remove-deprecated-throw-specifiers.patch