--- a/finch/libfinch.c Mon Oct 31 04:02:09 2022 -0500
+++ b/finch/libfinch.c Mon Oct 31 22:50:20 2022 -0500
@@ -162,11 +162,13 @@
purple_idle_set_ui(finch_idle_new());
- if (!purple_core_init(finch_ui_new()))
+ if (!purple_core_init(finch_ui_new(), &error)) - "Initialization of the Purple core failed. Dumping core.\n"
- "Please report this!\n");
+ _("Initialization of the libpurple core failed. %s\n" + "Aborting!\nPlease report this!\n"), + (error != NULL) ? error->message : "unknown error"); --- a/libpurple/core.c Mon Oct 31 04:02:09 2022 -0500
+++ b/libpurple/core.c Mon Oct 31 22:50:20 2022 -0500
@@ -92,7 +92,7 @@
-purple_core_init(PurpleUi *ui) {
+purple_core_init(PurpleUi *ui, G_GNUC_UNUSED GError **error) { g_return_val_if_fail(PURPLE_IS_UI(ui), FALSE);
--- a/libpurple/core.h Mon Oct 31 04:02:09 2022 -0500
+++ b/libpurple/core.h Mon Oct 31 22:50:20 2022 -0500
@@ -38,14 +38,13 @@
* @ui: (transfer full): The [class@Purple.Ui] of the UI using the core.
+ * @error: (optional) (nullable): A return address for a [type@GLib.GError]. * Initializes the core of purple.
- * This will setup preferences for all the core subsystems.
- * Returns: %TRUE if successful, or %FALSE otherwise.
+ * Returns: %TRUE if successful, otherwise %FALSE with @error potentially set. -gboolean purple_core_init(PurpleUi *ui);
+gboolean purple_core_init(PurpleUi *ui, GError **error); --- a/libpurple/tests/test_ui.c Mon Oct 31 04:02:09 2022 -0500
+++ b/libpurple/tests/test_ui.c Mon Oct 31 22:50:20 2022 -0500
@@ -25,6 +25,7 @@
#include <glib/gprintf.h>
+#include <glib/gi18n-lib.h> #define G_SETTINGS_ENABLE_BACKEND
#include <gio/gsettingsbackend.h>
@@ -151,11 +152,13 @@
/* Now that all the essential stuff has been set, let's try to init the core. It's
* necessary to provide a non-NULL name for the current ui to the core. This name
* is used by stuff that depends on this ui, for example the ui-specific plugins. */
- if (!purple_core_init(ui)) {
+ if (!purple_core_init(ui, &error)) { /* Initializing the core failed. Terminate. */
- "libpurple initialization failed. Dumping core.\n"
- "Please report this!\n");
+ _("Initialization of the libpurple core failed. %s\n" + "Aborting!\nPlease report this!\n"), + (error != NULL) ? error->message : "unknown error"); --- a/pidgin/pidginapplication.c Mon Oct 31 04:02:09 2022 -0500
+++ b/pidgin/pidginapplication.c Mon Oct 31 22:50:20 2022 -0500
@@ -746,6 +746,7 @@
pidgin_application_startup(GApplication *application) {
PurpleAccountManager *manager = NULL;
GList *active_accounts = NULL;
@@ -780,10 +781,12 @@
- if(!purple_core_init(pidgin_ui_new())) {
+ if(!purple_core_init(pidgin_ui_new(), &error)) { - _("Initialization of the libpurple core failed. Aborting!\n"
- "Please report this!\n"));
+ _("Initialization of the libpurple core failed. %s\n" + "Aborting!\nPlease report this!\n"), + (error != NULL) ? error->message : "unknown error");