--- a/doc/reference/libpurple/libpurple-docs.xml Mon Jun 14 04:09:29 2021 -0500
+++ b/doc/reference/libpurple/libpurple-docs.xml Mon Jun 14 04:11:01 2021 -0500
@@ -76,6 +76,7 @@
<xi:include href="xml/purpleconversationuiops.xml" />
<xi:include href="xml/purplecredentialmanager.xml" />
<xi:include href="xml/purplecredentialprovider.xml" />
+ <xi:include href="xml/purpledebugui.xml" /> <xi:include href="xml/purpleimconversation.xml" />
<xi:include href="xml/purplekeyvaluepair.xml" />
<xi:include href="xml/purplemarkup.xml" />
--- a/libpurple/debug.c Mon Jun 14 04:09:29 2021 -0500
+++ b/libpurple/debug.c Mon Jun 14 04:11:01 2021 -0500
@@ -232,46 +232,6 @@
-purple_debug_ui_is_enabled(PurpleDebugUi *ui, PurpleDebugLevel level,
- PurpleDebugUiInterface *iface = NULL;
- g_return_val_if_fail(PURPLE_IS_DEBUG_UI(ui), FALSE);
- iface = PURPLE_DEBUG_UI_GET_IFACE(ui);
- if(iface != NULL && iface->is_enabled != NULL) {
- return iface->is_enabled(ui, level, category);
-purple_debug_ui_print(PurpleDebugUi *ui, PurpleDebugLevel level,
- const gchar *category, const gchar *arg_s)
- PurpleDebugUiInterface *iface = NULL;
- g_return_if_fail(PURPLE_IS_DEBUG_UI(ui));
- if(!purple_debug_ui_is_enabled(ui, level, category)) {
- iface = PURPLE_DEBUG_UI_GET_IFACE(ui);
- if(iface != NULL && iface->print != NULL) {
- iface->print(ui, level, category, arg_s);
-G_DEFINE_INTERFACE(PurpleDebugUi, purple_debug_ui, G_TYPE_OBJECT);
-purple_debug_ui_default_init(PurpleDebugUiInterface *iface) {
purple_debug_init(void) {
/* Read environment variables once per init */
--- a/libpurple/debug.h Mon Jun 14 04:09:29 2021 -0500
+++ b/libpurple/debug.h Mon Jun 14 04:11:01 2021 -0500
@@ -42,14 +42,6 @@
- * PURPLE_TYPE_DEBUG_UI:
- * The standard _get_type macro for #PurpleDebugUi.
-#define PURPLE_TYPE_DEBUG_UI (purple_debug_ui_get_type())
-G_DECLARE_INTERFACE(PurpleDebugUi, purple_debug_ui, PURPLE, DEBUG_UI, GObject)
* @PURPLE_DEBUG_ALL: All debug levels.
* @PURPLE_DEBUG_MISC: General chatter.
@@ -70,25 +62,7 @@
- * PurpleDebugUiInterface:
- * @print: Called to output a debug string to the UI.
- * @is_enabled: Returns if debug printing is enabled in the UI for a @level and
-struct _PurpleDebugUiInterface {
- GTypeInterface parent_iface;
- void (*print)(PurpleDebugUi *ui, PurpleDebugLevel level, const gchar *category, const gchar *arg_s);
- gboolean (*is_enabled)(PurpleDebugUi *ui, PurpleDebugLevel level, const gchar *category);
+#include "purpledebugui.h" @@ -269,37 +243,6 @@
PurpleDebugUi *purple_debug_get_ui(void);
- * purple_debug_ui_is_enabled:
- * @ui: The #PurpleDebugUi instance.
- * @level: The #PurpleLogLevel.
- * @category: An optional category.
- * Checks if the ui should output messages at the given level and optional
- * Typically this function will not need to be called outside of libpurple.
- * Returns: %TRUE if the given level and category will be output by @ui, %FALSE
-gboolean purple_debug_ui_is_enabled(PurpleDebugUi *ui, PurpleDebugLevel level, const gchar *category);
- * purple_debug_ui_print:
- * @ui: The #PurpleDebugUi instance.
- * @level: The #PurpleDebugLevel.
- * @category: An optional category.
- * @arg_s: The debug string to output.
- * Outputs @arg_s via @ui with the given @level and optional @category.
-void purple_debug_ui_print(PurpleDebugUi *ui, PurpleDebugLevel level, const gchar *category, const gchar *arg_s);
/******************************************************************************
*****************************************************************************/
--- a/libpurple/meson.build Mon Jun 14 04:09:29 2021 -0500
+++ b/libpurple/meson.build Mon Jun 14 04:11:01 2021 -0500
@@ -52,6 +52,7 @@
'purpleconversationuiops.c',
'purplecredentialmanager.c',
'purplecredentialprovider.c',
'purpleimconversation.c',
@@ -144,6 +145,7 @@
'purpleconversationuiops.h',
'purplecredentialmanager.h',
'purplecredentialprovider.h',
'purpleimconversation.h',
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/libpurple/purpledebugui.c Mon Jun 14 04:11:01 2021 -0500
@@ -0,0 +1,64 @@
+ * Purple - Internet Messaging Library + * Copyright (C) Pidgin Developers <devel@pidgin.im> + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with this program; if not, see <https://www.gnu.org/licenses/>. +#include "purpledebugui.h" +purple_debug_ui_is_enabled(PurpleDebugUi *ui, PurpleDebugLevel level, + PurpleDebugUiInterface *iface = NULL; + g_return_val_if_fail(PURPLE_IS_DEBUG_UI(ui), FALSE); + iface = PURPLE_DEBUG_UI_GET_IFACE(ui); + if(iface != NULL && iface->is_enabled != NULL) { + return iface->is_enabled(ui, level, category); +purple_debug_ui_print(PurpleDebugUi *ui, PurpleDebugLevel level, + const gchar *category, const gchar *arg_s) + PurpleDebugUiInterface *iface = NULL; + g_return_if_fail(PURPLE_IS_DEBUG_UI(ui)); + if(!purple_debug_ui_is_enabled(ui, level, category)) { + iface = PURPLE_DEBUG_UI_GET_IFACE(ui); + if(iface != NULL && iface->print != NULL) { + iface->print(ui, level, category, arg_s); +G_DEFINE_INTERFACE(PurpleDebugUi, purple_debug_ui, G_TYPE_OBJECT); +purple_debug_ui_default_init(PurpleDebugUiInterface *iface) { --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/libpurple/purpledebugui.h Mon Jun 14 04:11:01 2021 -0500
@@ -0,0 +1,108 @@
+ * Purple - Internet Messaging Library + * Copyright (C) Pidgin Developers <devel@pidgin.im> + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with this program; if not, see <https://www.gnu.org/licenses/>. +#if !defined(PURPLE_GLOBAL_HEADER_INSIDE) && !defined(PURPLE_COMPILATION) +# error "only <purple.h> may be included directly" +#ifndef PURPLE_DEBUG_UI_H +#define PURPLE_DEBUG_UI_H + * SECTION:purpledebugui + * @section_id: libpurple-purpledebugui + * @title: Debug User Interface API + * #PurpleDebugUiInterface defines the behavior that libpurple uses to + * interface the debug API with the user interface. +#include <glib-object.h> + * PURPLE_TYPE_DEBUG_UI: + * The standard _get_type macro for #PurpleDebugUi. +#define PURPLE_TYPE_DEBUG_UI (purple_debug_ui_get_type()) +G_DECLARE_INTERFACE(PurpleDebugUi, purple_debug_ui, PURPLE, DEBUG_UI, GObject) + * PurpleDebugUiInterface: + * @print: Called to output a debug string to the UI. + * @is_enabled: Returns if debug printing is enabled in the UI for a @level and +struct _PurpleDebugUiInterface { + GTypeInterface parent_iface; + void (*print)(PurpleDebugUi *ui, PurpleDebugLevel level, const gchar *category, const gchar *arg_s); + gboolean (*is_enabled)(PurpleDebugUi *ui, PurpleDebugLevel level, const gchar *category); + * purple_debug_ui_is_enabled: + * @ui: The #PurpleDebugUi instance. + * @level: The #PurpleDebugLevel. + * @category: An optional category. + * Checks if the ui should output messages at the given level and optional + * Typically this function will not need to be called outside of libpurple. + * Returns: %TRUE if the given level and category will be output by @ui, %FALSE +gboolean purple_debug_ui_is_enabled(PurpleDebugUi *ui, PurpleDebugLevel level, const gchar *category); + * purple_debug_ui_print: + * @ui: The #PurpleDebugUi instance. + * @level: The #PurpleDebugLevel. + * @category: An optional category. + * @arg_s: The debug string to output. + * Outputs @arg_s via @ui with the given @level and optional @category. +void purple_debug_ui_print(PurpleDebugUi *ui, PurpleDebugLevel level, const gchar *category, const gchar *arg_s); +#endif /* PURPLE_DEBUG_UI_H */ --- a/po/POTFILES.in Mon Jun 14 04:09:29 2021 -0500
+++ b/po/POTFILES.in Mon Jun 14 04:11:01 2021 -0500
@@ -246,6 +246,7 @@
libpurple/purpleconversationmanager.c
libpurple/purplecredentialmanager.c
libpurple/purplecredentialprovider.c
+libpurple/purpledebugui.c libpurple/purpleimconversation.c
libpurple/purplekeyvaluepair.c