Add a doc-check unit test to libpurple and fix the issues it has found
Testing Done:
Ran ninja turtles
Reviewed at https://reviews.imfreedom.org/r/3050/
--- a/doc/reference/libpurple/libpurple.toml.in Wed Apr 03 16:32:56 2024 -0500
+++ b/doc/reference/libpurple/libpurple.toml.in Tue Apr 09 21:50:31 2024 -0500
@@ -54,3 +54,27 @@
urlmap_file = "urlmap.js"
+pattern = "DEPRECATED_IN_*" +name = "UNAVAILABLE_MACRO" +name = "UNAVAILABLE_STATIC_INLINE" +name = "UNAVAILABLE_TYPE" \ No newline at end of file
--- a/doc/reference/libpurple/meson.build Wed Apr 03 16:32:56 2024 -0500
+++ b/doc/reference/libpurple/meson.build Tue Apr 09 21:50:31 2024 -0500
@@ -44,5 +44,18 @@
+ '--config', libpurple_toml, + '--add-include-path=@0@'.format(meson.global_build_root() / 'subprojects/birb/birb'), + '--add-include-path=@0@'.format(meson.global_build_root() / 'subprojects/gplugin/gplugin'), + depends: libpurple_gir[0], --- a/libpurple/action.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/action.h Tue Apr 09 21:50:31 2024 -0500
@@ -37,6 +37,14 @@
PURPLE_AVAILABLE_TYPE_IN_3_0
typedef struct _PurpleProtocolAction PurpleProtocolAction;
+ * PurpleProtocolActionCallback: + * @action: The action that was activated. + * The callback function for [type@ProtocolAction]. PURPLE_AVAILABLE_TYPE_IN_3_0
typedef void (*PurpleProtocolActionCallback)(PurpleProtocolAction *action);
--- a/libpurple/blistnode.c Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/blistnode.c Tue Apr 09 21:50:31 2024 -0500
@@ -373,6 +373,13 @@
obj_class->get_property = purple_blist_node_get_property;
obj_class->set_property = purple_blist_node_set_property;
+ * PurpleBlistNode:transient: + * If %TRUE the node will not be saved to the contact list. properties[PROP_TRANSIENT] = g_param_spec_boolean("transient",
"Whether node should not be saved with the buddy list.",
--- a/libpurple/blistnode.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/blistnode.h Tue Apr 09 21:50:31 2024 -0500
@@ -319,6 +319,8 @@
* purple_blist_node_get_extended_menu:
* @n: The blist node for which to obtain the extended menu items.
+ * Emits the blist-node-extended-menu signal and returns the results. * Returns: (element-type PurpleActionMenu) (transfer full): The extended menu
* items for a buddy list node, as harvested by the
* blist-node-extended-menu signal.
--- a/libpurple/buddy.c Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/buddy.c Tue Apr 09 21:50:31 2024 -0500
@@ -257,41 +257,92 @@
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+ * The name of the buddy. properties[PROP_NAME] = g_param_spec_string(
"The name of the buddy.",
G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
+ * PurpleBuddy:local-alias: + * An alias for the buddy created by the libpurple user. properties[PROP_LOCAL_ALIAS] = g_param_spec_string(
"local-alias", "Local alias",
"Local alias of thee buddy.",
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ * PurpleBuddy:server-alias: + * An alias that is created by the remote user. + * This is typically called a display name now. properties[PROP_SERVER_ALIAS] = g_param_spec_string(
"server-alias", "Server alias",
"Server-side alias of the buddy.",
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ * An avatar for the buddy. properties[PROP_ICON] = g_param_spec_pointer(
"The icon for the buddy.",
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ * The [class@Account] that this buddy belongs to. properties[PROP_ACCOUNT] = g_param_spec_object(
"The account for the buddy.",
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+ * PurpleBuddy:presence: + * The [class@Presence] for this buddy. properties[PROP_PRESENCE] = g_param_spec_object(
"The status information for the buddy.",
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+ * PurpleBuddy:media-caps: + * The media caps for this buddy. properties[PROP_MEDIA_CAPS] = g_param_spec_enum(
"media-caps", "Media capabilities",
"The media capabilities of the buddy.",
--- a/libpurple/buddyicon.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/buddyicon.h Tue Apr 09 21:50:31 2024 -0500
@@ -59,6 +59,8 @@
* @PURPLE_ICON_SCALE_DISPLAY: We scale the icon when we display it
* @PURPLE_ICON_SCALE_SEND: We scale the icon before we send it to the server
+ * Flags for when an icon should be scaled. typedef enum /*< flags >*/
--- a/libpurple/chat.c Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/chat.c Tue Apr 09 21:50:31 2024 -0500
@@ -265,6 +265,13 @@
obj_class->set_property = purple_chat_set_property;
obj_class->constructed = purple_chat_constructed;
+ * The alias of the chat. properties[PROP_ALIAS] = g_param_spec_string(
@@ -273,6 +280,13 @@
G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS
+ * The account that the chat belongs to. properties[PROP_ACCOUNT] = g_param_spec_object(
@@ -281,6 +295,13 @@
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS
+ * PurpleChat:components: + * The components for the chat. properties[PROP_COMPONENTS] = g_param_spec_pointer(
--- a/libpurple/circularbuffer.c Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/circularbuffer.c Tue Apr 09 21:50:31 2024 -0500
@@ -315,19 +315,47 @@
buffer_class->max_read_size = purple_circular_buffer_real_max_read_size;
buffer_class->mark_read = purple_circular_buffer_real_mark_read;
+ * PurpleCircularBuffer:grow-size: + * The grow size of the buffer. properties[PROP_GROW_SIZE] = g_param_spec_uint64(
"grow-size", "grow-size", "The grow size of the buffer", 0,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
+ * PurpleCircularBuffer:buffer-used: + * How much of the buffer that has been used. properties[PROP_BUFFER_USED] = g_param_spec_uint64(
"buffer-used", "buffer-used", "The amount of the buffer used", 0,
G_MAXSIZE, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+ * PurpleCircularBuffer:input: + * The input pointer of the buffer. properties[PROP_INPUT] = g_param_spec_pointer("input", "input",
"The input pointer of the buffer",
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+ * PurpleCircularBuffer:output: + * The output pointer of the buffer. properties[PROP_OUTPUT] = g_param_spec_pointer("output", "output",
"The output pointer of the buffer",
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
--- a/libpurple/circularbuffer.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/circularbuffer.h Tue Apr 09 21:50:31 2024 -0500
@@ -34,6 +34,13 @@
+ * PurpleCircularBuffer: + * A circular buffer implementation. #define PURPLE_TYPE_CIRCULAR_BUFFER (purple_circular_buffer_get_type())
--- a/libpurple/cmds.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/cmds.h Tue Apr 09 21:50:31 2024 -0500
@@ -91,6 +91,8 @@
* A function implementing a command, as passed to purple_cmd_register().
+ * Returns: The result of the command. typedef PurpleCmdRet (*PurpleCmdFunc)(PurpleConversation *conversation, const gchar *cmd,
--- a/libpurple/connection.c Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/connection.c Tue Apr 09 21:50:31 2024 -0500
@@ -893,9 +893,16 @@
klass->connect = purple_connection_default_connect;
klass->disconnect = purple_connection_default_disconnect;
+ * The unique identifier for the connection. properties[PROP_ID] = g_param_spec_string(
- "The identifier of the account",
+ "The identifier of the connection", G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
@@ -915,34 +922,78 @@
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+ * PurpleConnection:protocol: + * The protocol that this connection is for. properties[PROP_PROTOCOL] = g_param_spec_object(
"The protocol that the connection is using.",
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+ * PurpleConnection:flags: + * The flags for this connection. properties[PROP_FLAGS] = g_param_spec_flags(
"flags", "Connection flags",
"The flags of the connection.",
PURPLE_TYPE_CONNECTION_FLAGS, 0,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
+ * PurpleConnection:state: + * The state of the connection. properties[PROP_STATE] = g_param_spec_enum(
"state", "Connection state",
"The current state of the connection.",
PURPLE_TYPE_CONNECTION_STATE, PURPLE_CONNECTION_STATE_DISCONNECTED,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
+ * PurpleConnection:account: + * The account this connection belongs to. properties[PROP_ACCOUNT] = g_param_spec_object(
"The account using the connection.", PURPLE_TYPE_ACCOUNT,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+ * PurpleConnection:password: + * The password for this connection. + * This is only stored for reconnections and may go away in the future. properties[PROP_PASSWORD] = g_param_spec_string(
"The password used for connection.", NULL,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
+ * PurpleConnection:display-name: + * The display name for the account. properties[PROP_DISPLAY_NAME] = g_param_spec_string(
"display-name", "Display name",
"Your name that appears to other people.", NULL,
--- a/libpurple/contact.c Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/contact.c Tue Apr 09 21:50:31 2024 -0500
@@ -328,6 +328,13 @@
obj_class->get_property = purple_meta_contact_get_property;
obj_class->set_property = purple_meta_contact_set_property;
+ * PurpleMetaContact:alias: + * The alias for the contact. properties[PROP_ALIAS] = g_param_spec_string(
@@ -336,6 +343,13 @@
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS
+ * PurpleMetaContact:priority-buddy: + * The priority buddy of the contact. properties[PROP_PRIORITY_BUDDY] = g_param_spec_object(
--- a/libpurple/core.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/core.h Tue Apr 09 21:50:31 2024 -0500
@@ -33,6 +33,15 @@
#include "purpleversion.h"
+ * The core instance for libpurple. + * This is primarily used for connecting to signals. typedef struct PurpleCore PurpleCore;
@@ -117,7 +126,7 @@
PurpleUi *purple_core_get_ui(void);
- * purple_get_local_dir:
+ * purple_get_locale_dir: * Gets the search directory for translations.
--- a/libpurple/countingnode.c Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/countingnode.c Tue Apr 09 21:50:31 2024 -0500
@@ -220,6 +220,13 @@
obj_class->get_property = purple_counting_node_get_property;
obj_class->set_property = purple_counting_node_set_property;
+ * PurpleCountingNode:total-size: + * The number of children under this node. properties[PROP_TOTAL_SIZE] = g_param_spec_int(
@@ -228,6 +235,13 @@
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS
+ * PurpleCountingNode:current-size: + * The number of children with online accounts. properties[PROP_CURRENT_SIZE] = g_param_spec_int(
@@ -236,6 +250,13 @@
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS
+ * PurpleCountingNode:online-count: + * The number of children that are online. properties[PROP_ONLINE_COUNT] = g_param_spec_int(
--- a/libpurple/group.c Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/group.c Tue Apr 09 21:50:31 2024 -0500
@@ -331,6 +331,13 @@
obj_class->get_property = purple_group_get_property;
obj_class->set_property = purple_group_set_property;
+ * The name of the group. properties[PROP_NAME] = g_param_spec_string(
--- a/libpurple/idle.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/idle.h Tue Apr 09 21:50:31 2024 -0500
@@ -53,6 +53,7 @@
+ * @time: The time to set the idle time to. * Fake our idle time by setting the time at which our
* accounts purportedly became idle. This is used by
--- a/libpurple/image.c Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/image.c Tue Apr 09 21:50:31 2024 -0500
@@ -140,6 +140,13 @@
gobj_class->get_property = purple_image_get_property;
gobj_class->set_property = purple_image_set_property;
+ * The file path for the image if one was provided. properties[PROP_PATH] = g_param_spec_string(
@@ -148,6 +155,13 @@
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS
+ * PurpleImage:contents: + * The contents of the image. properties[PROP_CONTENTS] = g_param_spec_boxed(
@@ -156,6 +170,13 @@
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS
+ * The size of the image in bytes. properties[PROP_SIZE] = g_param_spec_uint64(
--- a/libpurple/media/backend-iface.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/media/backend-iface.h Tue Apr 09 21:50:31 2024 -0500
@@ -50,13 +50,6 @@
typedef struct _PurpleMediaBackend PurpleMediaBackend;
- * PurpleMediaBackendInterface:
- * A structure to derive media backends from.
typedef struct _PurpleMediaBackendInterface PurpleMediaBackendInterface;
struct _PurpleMediaBackendInterface
--- a/libpurple/notify.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/notify.h Tue Apr 09 21:50:31 2024 -0500
@@ -33,8 +33,22 @@
#include "purpleversion.h"
+ * PurpleNotifyUserInfoEntry: + * A entry for the user information. typedef struct _PurpleNotifyUserInfoEntry PurpleNotifyUserInfoEntry;
+ * PurpleNotifyUserInfo: + * A collection of user information entries. #define PURPLE_TYPE_NOTIFY_USER_INFO (purple_notify_user_info_get_type())
typedef struct _PurpleNotifyUserInfo PurpleNotifyUserInfo;
@@ -556,6 +570,8 @@
* Create a textual representation of a PurpleNotifyUserInfo, separating
+ * Returns: (transfer full): The text. --- a/libpurple/plugins.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/plugins.h Tue Apr 09 21:50:31 2024 -0500
@@ -33,6 +33,12 @@
#define PURPLE_PLUGINS_DOMAIN (g_quark_from_static_string("plugins"))
#define PURPLE_TYPE_PLUGIN GPLUGIN_TYPE_PLUGIN
+ * A typecast macro to cast @obj to PurplePlugin. #define PURPLE_PLUGIN(obj) GPLUGIN_PLUGIN(obj)
#define PURPLE_IS_PLUGIN(obj) GPLUGIN_IS_PLUGIN(obj)
#define PURPLE_PLUGIN_GET_IFACE(obj) GPLUGIN_PLUGIN_GET_IFACE(obj)
@@ -47,6 +53,15 @@
typedef GPluginPlugin PurplePlugin;
+ * PurplePluginInterface: + * Represents the plugin interface. + * This type is an alias for GPluginPluginInterface. typedef GPluginPluginInterface PurplePluginInterface;
#include "purpleplugininfo.h"
@@ -124,6 +139,7 @@
--- a/libpurple/prefs.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/prefs.h Tue Apr 09 21:50:31 2024 -0500
@@ -524,6 +524,8 @@
+ * Returns: %TRUE if the prefs loaded successfully, otherwise %FALSE. --- a/libpurple/purpleaccount.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleaccount.h Tue Apr 09 21:50:31 2024 -0500
@@ -747,6 +747,8 @@
* Whether the account supports sending offline messages to buddy.
+ * Returns: %TRUE if offline messages are supported, otherwise %FALSE. --- a/libpurple/purpleaccountmanager.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleaccountmanager.h Tue Apr 09 21:50:31 2024 -0500
@@ -239,6 +239,7 @@
* purple_account_manager_set_online:
* @manager: The instance.
+ * @online: The new online status. * Sets whether or not new accounts should automatically have
* [method@Account.connect] called for them.
--- a/libpurple/purpleaccountpresence.c Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleaccountpresence.c Tue Apr 09 21:50:31 2024 -0500
@@ -175,6 +175,13 @@
presence_class->update_idle = purple_account_presence_update_idle;
presence_class->get_statuses = purple_account_presence_get_statuses;
+ * PurpleAccountPresence:account: + * The account for this presence. properties[PROP_ACCOUNT] = g_param_spec_object(
"The account for this presence.",
--- a/libpurple/purpleattachment.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleattachment.h Tue Apr 09 21:50:31 2024 -0500
@@ -64,6 +64,8 @@
* Creates a new #PurpleAttachment with the given @id and @content_type.
+ * Returns: (transfer full): The new attachment. --- a/libpurple/purplebuddypresence.c Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purplebuddypresence.c Tue Apr 09 21:50:31 2024 -0500
@@ -250,6 +250,13 @@
presence_class->update_idle = purple_buddy_presence_update_idle;
presence_class->get_statuses = purple_buddy_presence_get_statuses;
+ * PurpleBuddyPresence:buddy: + * The buddy for this presence. properties[PROP_BUDDY] = g_param_spec_object(
"The buddy for this presence.",
--- a/libpurple/purplechatconversation.c Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purplechatconversation.c Tue Apr 09 21:50:31 2024 -0500
@@ -255,7 +255,7 @@
conv_class->write_message = chat_conversation_write_message;
- * PurpleChatConversation::chat-id:
+ * PurpleChatConversation:chat-id: * The identifier of the chat.
@@ -266,7 +266,7 @@
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
- * PurpleChatConversation::left:
+ * PurpleChatConversation:left: * Whether the user has left the chat or not.
--- a/libpurple/purplechatuser.c Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purplechatuser.c Tue Apr 09 21:50:31 2024 -0500
@@ -171,24 +171,52 @@
obj_class->set_property = purple_chat_user_set_property;
obj_class->finalize = purple_chat_user_finalize;
+ * The chat the user is in. properties[PROP_CHAT] = g_param_spec_object(
"The chat the buddy belongs to.",
PURPLE_TYPE_CHAT_CONVERSATION,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+ * The name of the user. properties[PROP_NAME] = g_param_spec_string(
"Name of the chat user.",
G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
+ * PurpleChatUser:alias: + * The alias of the user. properties[PROP_ALIAS] = g_param_spec_string(
"Alias of the chat user.",
G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
+ * PurpleChatUser:flags: + * The flags for the user. properties[PROP_FLAGS] = g_param_spec_flags(
"The flags for the chat user.",
--- a/libpurple/purpleconnectionerrorinfo.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleconnectionerrorinfo.h Tue Apr 09 21:50:31 2024 -0500
@@ -75,6 +75,8 @@
* @PURPLE_CONNECTION_ERROR_CERT_OTHER_ERROR: There was some other error
* validating the server's SSL certificate.
+ * @PURPLE_CONNECTION_ERROR_CUSTOM_TEMPORARY: A custom error that is temporary. + * @PURPLE_CONNECTION_ERROR_CUSTOM_FATAL: A custom error that is fatal. * @PURPLE_CONNECTION_ERROR_OTHER_ERROR: Some other error occurred which fits
* into none of the other categories.
--- a/libpurple/purplecontactinfo.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purplecontactinfo.h Tue Apr 09 21:50:31 2024 -0500
@@ -67,13 +67,6 @@
#include "purpleperson.h"
- * PurpleContactInfoClass:
- * The class struct for [class@Purple.ContactInfo].
struct _PurpleContactInfoClass {
@@ -316,7 +309,7 @@
GTimeZone *purple_contact_info_get_time_zone(PurpleContactInfo *info);
- * purple_contact_info-set_time_zone:
+ * purple_contact_info_set_time_zone: * @time_zone: (transfer none) (nullable): The new time zone.
@@ -325,7 +318,7 @@
-void purple_contact_info_set_time_zone(PurpleContactInfo *info, GTimeZone *timezone);
+void purple_contact_info_set_time_zone(PurpleContactInfo *info, GTimeZone *time_zone); * purple_contact_info_get_note:
--- a/libpurple/purpleconversation.c Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleconversation.c Tue Apr 09 21:50:31 2024 -0500
@@ -688,6 +688,13 @@
PURPLE_CONVERSATION_TYPE_UNSET,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ * PurpleConversation:account: + * The account this conversation belongs to. properties[PROP_ACCOUNT] = g_param_spec_object(
"The account for the conversation.",
@@ -710,18 +717,39 @@
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ * PurpleConversation:name: + * The name of the conversation. properties[PROP_NAME] = g_param_spec_string(
"The name of the conversation.",
G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
+ * PurpleConversation:title: + * The title of the conversation. properties[PROP_TITLE] = g_param_spec_string(
"The title of the conversation.",
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ * PurpleConversation:features: + * The features that this conversation supports. properties[PROP_FEATURES] = g_param_spec_flags(
"features", "Connection features",
"The connection features of the conversation.",
--- a/libpurple/purpleconversation.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleconversation.h Tue Apr 09 21:50:31 2024 -0500
@@ -403,6 +403,8 @@
* Get the features supported by the given conversation.
--- a/libpurple/purpledebugui.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpledebugui.h Tue Apr 09 21:50:31 2024 -0500
@@ -50,10 +50,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
--- a/libpurple/purplefiletransfer.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purplefiletransfer.h Tue Apr 09 21:50:31 2024 -0500
@@ -47,6 +47,8 @@
* @PURPLE_FILE_TRANSFER_STATE_FINISHED: The transfer has completed
* @PURPLE_FILE_TRANSFER_STATE_FAILED: The transfer failed.
+ * The possible states that a file transfer can be in. PURPLE_FILE_TRANSFER_STATE_UNKNOWN,
--- a/libpurple/purpleidlemanager.c Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleidlemanager.c Tue Apr 09 21:50:31 2024 -0500
@@ -84,7 +84,7 @@
obj_class->get_property = purple_idle_manager_get_property;
- * PurpleIdleManager::timestamp:
+ * PurpleIdleManager:timestamp: * The aggregate of the oldest idle timestamp of all of the sources that
--- a/libpurple/purpleidleui.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleidleui.h Tue Apr 09 21:50:31 2024 -0500
@@ -42,7 +42,7 @@
G_DECLARE_INTERFACE(PurpleIdleUi, purple_idle_ui, PURPLE, IDLE_UI, GObject)
- * PurpleIdleUiInterface:
* @get_idle_time: vfunc to get the time that the user interface has been idle.
* An interface that a user interface can implement to let the core determine
--- a/libpurple/purpleimconversation.c Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleimconversation.c Tue Apr 09 21:50:31 2024 -0500
@@ -192,6 +192,13 @@
conv_class->write_message = im_conversation_write_message;
+ * PurpleIMConversation:typing-state: + * The typing state of the remote user. properties[PROP_TYPING_STATE] = g_param_spec_enum(
"typing-state", "Typing state",
"Status of the user's typing of a message.",
--- a/libpurple/purplemenu.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purplemenu.h Tue Apr 09 21:50:31 2024 -0500
@@ -34,6 +34,13 @@
+ * PURPLE_MENU_ATTRIBUTE_DYNAMIC_TARGET: + * A constant to help when defining actions that have a dynamic-target value. #define PURPLE_MENU_ATTRIBUTE_DYNAMIC_TARGET "dynamic-target"
--- a/libpurple/purplemessage.c Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purplemessage.c Tue Apr 09 21:50:31 2024 -0500
@@ -300,7 +300,7 @@
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
- * PurpleMessage:content:
+ * PurpleMessage:contents: * The contents of the message.
@@ -401,7 +401,7 @@
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
- * PurpleMessaged:edited:
+ * PurpleMessage:edited: * Whether or not this message has been edited.
@@ -416,7 +416,7 @@
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
- * PurpleMessage:edit-at:
+ * PurpleMessage:edited-at: * The time that the message was last edited at. This is protocol dependent
* and possibly client dependent as well. So if this is %NULL that doesn't
--- a/libpurple/purplemessage.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purplemessage.h Tue Apr 09 21:50:31 2024 -0500
@@ -399,7 +399,7 @@
* Adds @attachment to @message.
- * Returns %TRUE if an attachment with the same ID did not already exist.
+ * Returns: %TRUE if an attachment with the same ID did not already exist. --- a/libpurple/purplenotification.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purplenotification.h Tue Apr 09 21:50:31 2024 -0500
@@ -39,6 +39,25 @@
* PurpleNotificationType:
+ * @PURPLE_NOTIFICATION_TYPE_UNKNOWN: This type is unknown. + * @PURPLE_NOTIFICATION_TYPE_GENERIC: A generic notification that is just text + * @PURPLE_NOTIFICATION_TYPE_CONNECTION_ERROR: A notification that is for a + * @PURPLE_NOTIFICATION_TYPE_AUTHORIZATION_REQUEST: A notification for a + * contact authorization + * @PURPLE_NOTIFICATION_TYPE_ADD_CONTACT: A notification for when a contact add + * you to their contact list. + * @PURPLE_NOTIFICATION_TYPE_FILE_TRANSFER: A notification for a file transfer. + * @PURPLE_NOTIFICATION_TYPE_CHAT_INVITE: A notification when the user has been + * @PURPLE_NOTIFICATION_TYPE_MENTION: A notification that the user has been + * @PURPLE_NOTIFICATION_TYPE_REACTION: A notification when a reaction has been + * The different types of notifications. --- a/libpurple/purpleperson.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleperson.h Tue Apr 09 21:50:31 2024 -0500
@@ -225,7 +225,7 @@
const char *purple_person_get_name_for_display(PurplePerson *person);
- * purple_person_add_contact:
+ * purple_person_add_contact_info: * @info: The [class@Purple.ContactInfo] to add.
@@ -267,7 +267,7 @@
PurpleContactInfo *purple_person_get_priority_contact_info(PurplePerson *person);
* purple_person_has_contacts:
--- a/libpurple/purpleplugininfo.c Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleplugininfo.c Tue Apr 09 21:50:31 2024 -0500
@@ -210,6 +210,13 @@
obj_class->get_property = purple_plugin_info_get_property;
obj_class->set_property = purple_plugin_info_set_property;
+ * PurplePluginInfo:flags: + * Flags for the plugin. properties[PROP_FLAGS] = g_param_spec_flags(
"The flags for the plugin",
--- a/libpurple/purpleprotocol.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleprotocol.h Tue Apr 09 21:50:31 2024 -0500
@@ -163,6 +163,9 @@
* @IFACE: The interface name in caps. e.g. <literal>CLIENT</literal>
* @func: The function to check
+ * Checks if a protocol plugin implements an interface and a specific function * Returns: %TRUE if a protocol implements a function in an interface,
--- a/libpurple/purpleprotocolactions.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleprotocolactions.h Tue Apr 09 21:50:31 2024 -0500
@@ -49,24 +49,6 @@
- * PurpleProtocolActionsInterface:
- * @get_prefix: The prefix used for the actions in the group. If this isn't
- * implemented, the id of the protocol will be used instead.
- * @get_action_group: Returns the actions the protocol can perform. If actions
- * depend on connectivity, connect to the relevant signals
- * on the @connection and signal the action has changed with
- * [iface@GLib.ActionGroup] signals.
- * @get_menu: Get the menu used to display protocol actions. In Pidgin, these
- * will show up in the Accounts menu, under a submenu with the name
- * The protocol actions interface.
- * This interface provides a gateway between purple and the protocol.
struct _PurpleProtocolActionsInterface {
--- a/libpurple/purpleprotocolchat.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleprotocolchat.h Tue Apr 09 21:50:31 2024 -0500
@@ -77,36 +77,6 @@
- * PurpleProtocolChatInterface:
- * @info: Returns a list of #PurpleProtocolChatEntry structs, which represent
- * information required by the protocol to join a chat. libpurple will
- * call join_chat along with the information filled by the user.
- * @info_defaults: Returns a hashtable which maps #PurpleProtocolChatEntry
- * struct identifiers to default options as strings based on
- * @chat_name. The resulting hashtable should be created with
- * #g_hash_table_new_full(#g_str_hash, #g_str_equal, %NULL,
- * #g_free). Use @get_name if you instead need to extract a chat
- * name from a hashtable.
- * @join: Called when the user requests joining a chat. Should arrange for
- * purple_serv_got_joined_chat() to be called.
- * @reject: Called when the user refuses a chat invitation.
- * @get_name: Returns a chat name based on the information in components. Use
- * @info_defaults if you instead need to generate a hashtable from a
- * @invite: Invite a user to join a chat.
- * @leave: Called when the user requests leaving a chat.
- * @send: Send a message to a chat.
- * @get_user_real_name: Gets the real name of a participant in a chat. For
- * example, on XMPP this turns a chat room nick
- * <literal>foo</literal> into
- * <literal>room\@server/foo</literal>.
- * @set_topic: Called to set the topic for the given chat.
- * The protocol chat interface.
- * This interface provides callbacks needed by protocols that implement chats.
struct _PurpleProtocolChatInterface {
--- a/libpurple/purpleprotocolclient.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleprotocolclient.h Tue Apr 09 21:50:31 2024 -0500
@@ -51,71 +51,6 @@
- * PurpleProtocolClientInterface:
- * @get_actions: Returns the actions the protocol can perform. These will show
- * up in the Accounts menu, under a submenu with the name of the
- * @list_emblem: Fills the four <type>char**</type>'s with string identifiers
- * for "emblems" that the UI will interpret and display as
- * @blist_node_menu: Returns a list of #PurpleActionMenu structs, which
- * represent extra actions to be shown in (for example) the
- * right-click menu for @node.
- * @buddy_free: Allows the protocol to clean up any additional data for the
- * @convo_closed: Allows the protocol to do any necessary cleanup when a
- * conversation is closed.
- * @normalize: Convert the username @who to its canonical form. Also checks for
- * <sbr/>For example, AIM treats "fOo BaR" and "foobar" as the same
- * user; this function should return the same normalized string for
- * both of those. On the other hand, both of these are invalid for
- * protocols with number-based usernames, so function should return
- * <sbr/>@account: The account the username is related to. Can be
- * <sbr/>@who: The username to convert.
- * <sbr/>Returns: Normalized username, or %NULL, if it's invalid.
- * @find_blist_chat: Attempts to find a chat with the given name in the contact
- * @offline_message: Checks whether offline messages to @buddy are supported.
- * <sbr/>Returns: %TRUE if @buddy can be sent messages while
- * they are offline, or %FALSE if not.
- * @get_account_text_table: This allows protocols to specify additional strings
- * to be used for various purposes. The idea is to
- * stuff a bunch of strings in this hash table instead
- * of expanding the struct for every addition. This
- * hash table is allocated every call and
- * <emphasis>MUST</emphasis> be unrefed by the caller.
- * <sbr/>@account: The account to specify. This can be
- * <sbr/>Returns: The protocol's string hash table.
- * The hash table should be destroyed
- * by the caller when it's no longer
- * @get_max_message_size: Gets the maximum message size in bytes for the
- * <sbr/>It may depend on connection-specific or
- * conversation-specific variables, like channel or
- * <sbr/>This value is intended for plaintext message,
- * the exact value may be lower because of:
- * <sbr/> - used newlines (some protocols count them as
- * <sbr/> - used special characters.
- * <sbr/>@conv: The conversation to query, or NULL to
- * get safe minimum for the protocol.
- * <sbr/>Returns: Maximum message size, 0 if unspecified,
- * The protocol client interface.
- * This interface provides a gateway between purple and the protocol.
struct _PurpleProtocolClientInterface {
--- a/libpurple/purpleprotocolcontacts.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleprotocolcontacts.h Tue Apr 09 21:50:31 2024 -0500
@@ -60,15 +60,6 @@
g_quark_from_static_string("purple-protocol-contacts") \
PURPLE_AVAILABLE_MACRO_IN_3_0
- * PurpleProtocolContactsInterface:
- * This interface defines the behavior for interacting with contacts at the
- * protocol layer. These methods will primarily be called by the user
struct _PurpleProtocolContactsInterface {
--- a/libpurple/purpleprotocolconversation.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleprotocolconversation.h Tue Apr 09 21:50:31 2024 -0500
@@ -48,7 +48,7 @@
PURPLE, PROTOCOL_CONVERSATION, PurpleProtocol)
- * PurpleProtocolConversationInterface:
+ * PurpleProtocolConversation: * This interface defines the behavior for interacting with conversations at
* the protocol layer. These methods will primarily be called by the user
@@ -255,7 +255,7 @@
gboolean purple_protocol_conversation_set_avatar_finish(PurpleProtocolConversation *protocol, GAsyncResult *result, GError **error);
- * purple_protocl_conversation_send_typing_state:
+ * purple_protocol_conversation_send_typing: * @protocol: The instance.
* @conversation: The conversation.
* @state: The new typing state.
--- a/libpurple/purpleprotocolfiletransfer.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleprotocolfiletransfer.h Tue Apr 09 21:50:31 2024 -0500
@@ -50,13 +50,6 @@
- * PurpleProtocolFileTransferInterface:
- * This interface defines the behavior for sending and receiving files.
struct _PurpleProtocolFileTransferInterface {
--- a/libpurple/purpleprotocolim.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleprotocolim.h Tue Apr 09 21:50:31 2024 -0500
@@ -49,27 +49,6 @@
G_DECLARE_INTERFACE(PurpleProtocolIM, purple_protocol_im, PURPLE, PROTOCOL_IM,
- * PurpleProtocolIMInterface:
- * @send: This protocol function should return a positive value on
- * success. If the message is too big to be sent, return
- * <literal>-E2BIG</literal>. If the account is not connected,
- * return <literal>-ENOTCONN</literal>. If the protocol is unable
- * to send the message for another reason, return some other
- * negative value. You can use one of the valid #errno values, or
- * just big something. If the message should not be echoed to the
- * conversation window, return 0.
- * @send_typing: If this protocol requires the #PURPLE_IM_TYPING message to be
- * sent repeatedly to signify that the user is still typing, then
- * the protocol should return the number of seconds to wait before
- * sending a subsequent notification. Otherwise the protocol
- * The protocol IM interface that needs to be implemented to send one to one
struct _PurpleProtocolIMInterface {
--- a/libpurple/purpleprotocolmedia.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleprotocolmedia.h Tue Apr 09 21:50:31 2024 -0500
@@ -52,31 +52,6 @@
- * PurpleProtocolMediaInterface:
- * @initiate_session: Initiate a media session with the given contact.
- * <sbr/>@account: The account to initiate the media session
- * <sbr/>@who: The remote user to initiate the session with.
- * <sbr/>@type: The type of media session to initiate.
- * <sbr/>Returns: %TRUE if the call succeeded else %FALSE.
- * (Doesn't imply the media session or stream
- * will be successfully created)
- * @get_caps: Checks to see if the given contact supports the given type of
- * <sbr/>@account: The account the contact is on.
- * <sbr/>@who: The remote user to check for media capability with.
- * <sbr/>Returns: The media caps the contact supports.
- * @send_dtmf: Sends DTMF codes out-of-band in a protocol-specific way if the
- * protocol supports it, or failing that in-band if the media backend
- * can do so. See purple_media_send_dtmf().
- * The protocol media interface.
- * This interface provides callbacks for media sessions on the protocol.
struct _PurpleProtocolMediaInterface {
--- a/libpurple/purpleprotocolroomlist.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleprotocolroomlist.h Tue Apr 09 21:50:31 2024 -0500
@@ -38,25 +38,17 @@
#define PURPLE_TYPE_PROTOCOL_ROOMLIST (purple_protocol_roomlist_get_type())
- * PurpleProtocolRoomlist:
- * #PurpleProtocolRoomlist is an interface to abstract how to handle rooms
- * lists at the protocol level.
G_DECLARE_INTERFACE(PurpleProtocolRoomlist, purple_protocol_roomlist, PURPLE,
PROTOCOL_ROOMLIST, PurpleProtocol)
- * PurpleProtocolRoomlistInterface:
+ * PurpleProtocolRoomlist: * The protocol roomlist interface.
- * This interface provides callbacks for room listing.
+ * #PurpleProtocolRoomlist is an interface to abstract how to handle room + * lists at the protocol level. --- a/libpurple/purpleprotocolroster.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleprotocolroster.h Tue Apr 09 21:50:31 2024 -0500
@@ -50,26 +50,6 @@
- * PurpleProtocolRosterInterface:
- * @add_async: Called when the user is trying to add a contact to the server
- * @add_finish: Called when adding the contact has completed.
- * @update_async: Called when the user is trying to update a contact on the
- * @update_finish: Called when updating the contact has completed.
- * @remove_async: Called when the user is trying to remove a contact from the
- * @remove_finish: Called when removing the contact has completed.
- * The interface for managing the server side roster.
- * This interface provides a gateway between purple and the protocol for
- * managing the server side roster. All of the functions are asynchronous to
- * make sure nothing blocks the rest of the program.
struct _PurpleProtocolRosterInterface {
--- a/libpurple/purpleprotocolserver.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleprotocolserver.h Tue Apr 09 21:50:31 2024 -0500
@@ -55,40 +55,6 @@
- * PurpleProtocolServerInterface:
- * @set_info: Sets the user's profile.
- * @get_info: Should arrange for purple_notify_userinfo() to be called with the
- * requested user's profile.
- * @set_status: Sets the active status for the given account.
- * @set_idle: Set the idle time for the given account.
- * @change_passwd: Changes the users password.
- * @add_buddy: Add a buddy to a group on the server.
- * @add_buddies: Add multiple buddies on the server at once.
- * @remove_buddy: Removes the given buddy from the user's buddy list.
- * @remove_buddies: Removes multiple buddies from the user's buddy list.
- * @keepalive: If implemented, this will be called regularly for this
- * protocol's active connections. You'd want to do this if you need
- * to repeatedly send some kind of keepalive packet to the server
- * to avoid being disconnected. ("Regularly" is defined to be 30
- * unless @get_keepalive_interval is implemented to override it).
- * @get_keepalive_interval: If implemented, this will override the default
- * @alias_buddy: Save/store buddy's alias on server list/roster
- * @group_buddy: Change a buddy's group on a server list/roster
- * @rename_group: Rename a group on a server list/roster
- * @set_buddy_icon: Set the buddy icon for the given connection to @img. The
- * protocol does <emphasis>NOT</emphasis> own a reference to
- * @img; if it needs one, it must #g_object_ref(@img) itself.
- * @remove_group: Removes the given group from the users buddy list.
- * @send_raw: For use in plugins that may understand the underlying protocol.
- * The protocol server interface.
- * This interface provides a gateway between purple and the protocol's server.
struct _PurpleProtocolServerInterface {
--- a/libpurple/purpleprotocolwhiteboard.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleprotocolwhiteboard.h Tue Apr 09 21:50:31 2024 -0500
@@ -49,16 +49,6 @@
- * PurpleProtocolWhiteboardInterface:
- * @create: Creates a new whiteboard.
- * The protocol whiteboard interface.
- * This interface provides a gateway between purple and the protocol.
struct _PurpleProtocolWhiteboardInterface {
--- a/libpurple/purpleproxyinfo.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleproxyinfo.h Tue Apr 09 21:50:31 2024 -0500
@@ -60,6 +60,13 @@
#define PURPLE_TYPE_PROXY_INFO (purple_proxy_info_get_type())
+ * A representation of a proxy. G_DECLARE_FINAL_TYPE(PurpleProxyInfo, purple_proxy_info, PURPLE, PROXY_INFO,
--- a/libpurple/purpleroomlistroom.c Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleroomlistroom.c Tue Apr 09 21:50:31 2024 -0500
@@ -167,24 +167,52 @@
obj_class->set_property = purple_roomlist_room_set_property;
obj_class->finalize = purple_roomlist_room_finalize;
+ * PurpleRoomlistRoom:name: + * The name of the room. properties[PROP_NAME] = g_param_spec_string(
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+ * PurpleRoomlistRoom:description: + * The description of the room. properties[PROP_DESCRIPTION] = g_param_spec_string(
"description", "description",
"The description of the room",
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+ * PurpleRoomlistRoom:category: + * The category of the room. properties[PROP_CATEGORY] = g_param_spec_string(
"The category of the room",
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+ * PurpleRoomlistRoom:user-count: + * The number of users in the room. properties[PROP_USER_COUNT] = g_param_spec_uint(
"user-count", "user-count",
"The user count of the room",
--- a/libpurple/purpleroomlistroom.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleroomlistroom.h Tue Apr 09 21:50:31 2024 -0500
@@ -72,6 +72,8 @@
* Creates a new room to be added to a [class@Purple.Roomlist].
+ * Returns: (transfer full): The new room. @@ -104,7 +106,7 @@
const gchar *purple_roomlist_room_get_description(PurpleRoomlistRoom *room);
- * purple_roomlist_get_category:
+ * purple_roomlist_room_get_category: * Gets the category of @room. It is up to the user interface on whether or not
--- a/libpurple/purpleversion.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purpleversion.h Tue Apr 09 21:50:31 2024 -0500
@@ -77,6 +77,26 @@
#define PURPLE_VERSION_CUR_STABLE \
(G_ENCODE_VERSION(PURPLE_MAJOR_VERSION, PURPLE_MINOR_VERSION))
+ * PURPLE_VERSION_MIN_REQUIRED: + * A macro that should be defined by the user prior to including the `purple.h` + * The definition should be one of the predefined Purple version macros: + * %PURPLE_VERSION_3_0, %PURPLE_VERSION_3_1, ... + * This macro defines the earliest version of Purple that the package is + * required to be able to compile against. + * If the compiler is configured to warn about the use of deprecated functions, + * then using functions that were deprecated in version + * %PURPLE_VERSION_MIN_REQUIRED or earlier will cause warnings (but using + * functions deprecated in later releases will not). /* If the package sets PURPLE_VERSION_MIN_REQUIRED to some future
* PURPLE_VERSION_X_Y value that we don't know about, it will compare as 0 in
--- a/libpurple/purplewhiteboard.c Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/purplewhiteboard.c Tue Apr 09 21:50:31 2024 -0500
@@ -195,22 +195,50 @@
obj_class->finalize = purple_whiteboard_finalize;
obj_class->constructed = purple_whiteboard_constructed;
+ * PurpleWhiteboard:state: + * The state of the whiteboard. properties[PROP_STATE] = g_param_spec_int(
"State of the whiteboard.",
G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
+ * PurpleWhiteboard:account: + * The account this whiteboard belongs to. properties[PROP_ACCOUNT] = g_param_spec_object(
"The whiteboard's account.", PURPLE_TYPE_ACCOUNT,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+ * The unique identifier of the whiteboard. properties[PROP_ID] = g_param_spec_string(
"The ID of the whiteboard.", NULL,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+ * PurpleWhiteboard:draw-list: + * The list of draw actions for the whiteboard. properties[PROP_DRAW_LIST] = g_param_spec_pointer(
"draw-list", "Draw list",
"A list of points to draw to the buddy.",
--- a/libpurple/request-datasheet.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/request-datasheet.h Tue Apr 09 21:50:31 2024 -0500
@@ -36,13 +36,45 @@
* Request Datasheet is a UI abstracted table.
+typedef struct _PurpleRequestDatasheet PurpleRequestDatasheet; -typedef struct _PurpleRequestDatasheet PurpleRequestDatasheet;
+ * PurpleRequestDatasheetRecord: typedef struct _PurpleRequestDatasheetRecord PurpleRequestDatasheetRecord;
+ * PurpleRequestDatasheetAction: typedef struct _PurpleRequestDatasheetAction PurpleRequestDatasheetAction;
+ * PurpleRequestDatasheetActionCb: + * @user_data: User data. + * A callback function for actions in a data sheet. typedef void (*PurpleRequestDatasheetActionCb)(
PurpleRequestDatasheetRecord *rec, gpointer user_data);
+ * PurpleRequestDatasheetActionCheckCb: + * @user_data: User data. + * A callback function for checking if an action is enabled or not. + * Returns: %TRUE if the actions should be enabled, otherwise %FALSE. typedef gboolean (*PurpleRequestDatasheetActionCheckCb)(
PurpleRequestDatasheetRecord *rec, gpointer user_data);
--- a/libpurple/request.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/request.h Tue Apr 09 21:50:31 2024 -0500
@@ -51,6 +51,11 @@
#include "request/purplerequestfield.h"
#include "request-datasheet.h"
+ * PURPLE_DEFAULT_ACTION_NONE: + * A constant to set no default action. #define PURPLE_DEFAULT_ACTION_NONE -1
@@ -188,6 +193,13 @@
void (*_purple_reserved4)(void);
+ * PurpleRequestInputCb: + * @value: The value that was input. + * The type of callback passed to purple_request_input(). typedef void (*PurpleRequestInputCb)(void *data, const char *value);
@@ -211,8 +223,31 @@
* values of those choice.
typedef void (*PurpleRequestChoiceCb)(void *data, gpointer value);
+ * PurpleRequestFieldsCb: + * The type of callbacks passed to purple_request_fields(). typedef void (*PurpleRequestFieldsCb)(void *data, PurpleRequestPage *page);
+ * @filename: The filename. + * The type of callbacks passed to purple_request_file(). typedef void (*PurpleRequestFileCb)(void *data, const char *filename);
+ * The type of callback passed to purple_request_cpar_set_help_cb(). typedef void (*PurpleRequestHelpCb)(gpointer data);
@@ -698,6 +733,8 @@
* <literal>va_list</literal> version of purple_request_choice(); see its
+ * Returns: A UI-specific handle. void *purple_request_choice_varg(void *handle, const char *title,
@@ -774,6 +811,8 @@
* <literal>va_list</literal> version of purple_request_action(); see its
+ * Returns: A UI-specific handle. --- a/libpurple/request/purplerequestfield.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/request/purplerequestfield.h Tue Apr 09 21:50:31 2024 -0500
@@ -70,6 +70,8 @@
* [method@Purple.RequestField.set_validator].
* A callback to check whether a field is valid.
+ * Returns: %TRUE if the field is valid, otherwise %FALSE. typedef gboolean (*PurpleRequestFieldValidator)(PurpleRequestField *field, char **errmsg, gpointer user_data);
--- a/libpurple/request/purplerequestfieldlist.c Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/request/purplerequestfieldlist.c Tue Apr 09 21:50:31 2024 -0500
@@ -115,7 +115,7 @@
obj_class->set_property = purple_request_field_list_set_property;
- * PurpleRequestFieldChoice:multi-select:
+ * PurpleRequestFieldList:multi-select: * Whether the field should allow multiple selections.
--- a/libpurple/roomlist.c Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/roomlist.c Tue Apr 09 21:50:31 2024 -0500
@@ -274,12 +274,26 @@
obj_class->get_property = purple_roomlist_get_property;
obj_class->set_property = purple_roomlist_set_property;
+ * PurpleRoomlist:account: + * The account this room list belongs to. properties[PROP_ACCOUNT] = g_param_spec_object("account", "Account",
"The account for the room list.",
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ * PurpleRoomlist:in-progress: + * Whether or not the room list is being fetched. properties[PROP_IN_PROGRESS] = g_param_spec_boolean("in-progress",
"Whether the room list is being fetched.", FALSE,
--- a/libpurple/roomlist.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/roomlist.h Tue Apr 09 21:50:31 2024 -0500
@@ -32,6 +32,13 @@
#define PURPLE_TYPE_ROOMLIST (purple_roomlist_get_type())
typedef struct _PurpleRoomlist PurpleRoomlist;
+ * A field for the room list. #define PURPLE_TYPE_ROOMLIST_FIELD (purple_roomlist_field_get_type())
typedef struct _PurpleRoomlistField PurpleRoomlistField;
--- a/libpurple/savedstatuses.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/savedstatuses.h Tue Apr 09 21:50:31 2024 -0500
@@ -61,6 +61,13 @@
typedef struct _PurpleSavedStatus PurpleSavedStatus;
+ * PurpleSavedStatusSub: + * A sub statuses of a saved status. typedef struct _PurpleSavedStatusSub PurpleSavedStatusSub;
--- a/libpurple/server.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/server.h Tue Apr 09 21:50:31 2024 -0500
@@ -241,6 +241,8 @@
* @data: The hash function should be g_str_hash() and the equal
* function should be g_str_equal().
+ * Joins the chat described by the components in @data. @@ -248,10 +250,12 @@
* purple_serv_reject_chat:
- * @gc: The #PurpleConnection
+ * @gc: The #PurpleConnection * @data: The hash function should be g_str_hash() and the equal
* function should be g_str_equal().
+ * Rejects a chat invite based on the components in @data. --- a/libpurple/status.c Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/status.c Tue Apr 09 21:50:31 2024 -0500
@@ -1108,18 +1108,39 @@
obj_class->get_property = purple_status_get_property;
obj_class->set_property = purple_status_set_property;
+ * PurpleStatus:status-type: + * The type of this status. properties[PROP_STATUS_TYPE] = g_param_spec_pointer("status-type",
"The PurpleStatusType of the status.",
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ * PurpleStatus:presence: + * The presence that the status belongs to. properties[PROP_PRESENCE] = g_param_spec_object("presence", "Presence",
"The presence that the status belongs to.",
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ * Whether or not the status is active. properties[PROP_ACTIVE] = g_param_spec_boolean("active", "Active",
"Whether the status is active or not.", FALSE,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
--- a/libpurple/status.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/status.h Tue Apr 09 21:50:31 2024 -0500
@@ -85,6 +85,14 @@
+ * PurpleStatusAttribute: + * An attribute that can be added to a status. typedef struct _PurpleStatusAttribute PurpleStatusAttribute;
--- a/libpurple/tests.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/tests.h Tue Apr 09 21:50:31 2024 -0500
@@ -27,12 +27,40 @@
+ * PurpleTestStringData: + * Test data for testing strings. + * PurpleTestStringFunc: + * @str: The string to test. + * A function to call with @str as the input. + * Returns: The output of the function. typedef const gchar *(*PurpleTestStringFunc)(const gchar *str);
+ * PurpleTestStringFreeFunc: + * @str: The string to test. + * A function to call with @str as the input. + * Returns: (transfer full): The output of the function. typedef gchar *(*PurpleTestStringFreeFunc)(const gchar *str);
--- a/libpurple/util.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/util.h Tue Apr 09 21:50:31 2024 -0500
@@ -410,6 +410,14 @@
/**************************************************************************/
+ * purple_got_protocol_handler_uri: + * Parses @uri and emits the uri-handler core signal. void purple_got_protocol_handler_uri(const char *uri);
--- a/libpurple/xfer.c Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/xfer.c Tue Apr 09 21:50:31 2024 -0500
@@ -2186,94 +2186,182 @@
klass->write_local = do_write_local;
klass->data_not_sent = do_data_not_sent;
+ * The type of the transfer. properties[PROP_TYPE] = g_param_spec_enum("type", "Transfer type",
"The type of file transfer.", PURPLE_TYPE_XFER_TYPE,
PURPLE_XFER_TYPE_UNKNOWN,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ * The account that this transfer is for. properties[PROP_ACCOUNT] = g_param_spec_object("account", "Account",
"The account sending or receiving the file.",
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ * PurpleXfer:remote-user: + * The user on the other side of this transfer. properties[PROP_REMOTE_USER] = g_param_spec_string("remote-user",
"The name of the remote user.", NULL,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
+ * A message that was sent with the transfer. properties[PROP_MESSAGE] = g_param_spec_string("message", "Message",
"The message for the file transfer.", NULL,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ * The name of the file being transferred. properties[PROP_FILENAME] = g_param_spec_string("filename", "Filename",
"The filename for the file transfer.", NULL,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ * PurpleXfer:local-filename: + * The local filename for this transfer. properties[PROP_LOCAL_FILENAME] = g_param_spec_string("local-filename",
"The local filename for the file transfer.", NULL,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ * PurpleXfer:file-size: + * The size of the file in bytes. properties[PROP_FILE_SIZE] = g_param_spec_int64("file-size", "File size",
"Size of the file in a file transfer.",
G_MININT64, G_MAXINT64, 0,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ * PurpleXfer:remote-ip: + * The IP address of the remote user. properties[PROP_REMOTE_IP] = g_param_spec_string("remote-ip", "Remote IP",
"The remote IP address in the file transfer.", NULL,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+ * PurpleXfer:local-port: + * The port number on the local side. properties[PROP_LOCAL_PORT] = g_param_spec_int("local-port", "Local port",
"The local port number in the file transfer.",
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ * PurpleXfer:remote-port: + * The port number on the remote side. properties[PROP_REMOTE_PORT] = g_param_spec_int("remote-port",
"The remote port number in the file transfer.",
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+ * The socket file descriptor for the transfer. properties[PROP_FD] = g_param_spec_int("fd", "Socket FD",
"The socket file descriptor.",
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ * The input watcher for this transfer. properties[PROP_WATCHER] = g_param_spec_int("watcher", "Watcher",
"The watcher for the file transfer.",
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ * PurpleXfer:bytes-sent: + * The number of bytes that have been sent. properties[PROP_BYTES_SENT] = g_param_spec_int64("bytes-sent", "Bytes sent",
"The number of bytes sent (or received) so far.",
G_MININT64, G_MAXINT64, 0,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ * PurpleXfer:start-time: + * The time when the transfer started. properties[PROP_START_TIME] = g_param_spec_int64(
"start-time", "Start time",
"The monotonic time the transfer of a file started.",
G_MININT64, G_MAXINT64, 0,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+ * The time when the transfer ended. properties[PROP_END_TIME] = g_param_spec_int64(
"The monotonic time the transfer of a file ended.", G_MININT64,
G_MAXINT64, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+ * The status of the transfer. properties[PROP_STATUS] = g_param_spec_enum("status", "Status",
"The current status for the file transfer.",
PURPLE_TYPE_XFER_STATUS, PURPLE_XFER_STATUS_UNKNOWN,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ * The current progress of the transfer. properties[PROP_PROGRESS] = g_param_spec_double(
"The current progress of the file transfer.", -1.0, 1.0, -1.0,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+ * Whether or not user interfaces should display the transfer. properties[PROP_VISIBLE] = g_param_spec_boolean(
"Hint for UIs whether this transfer should be visible.", FALSE,
--- a/libpurple/xfer.h Wed Apr 03 16:32:56 2024 -0500
+++ b/libpurple/xfer.h Tue Apr 09 21:50:31 2024 -0500
@@ -991,17 +991,13 @@
PROTOCOL_XFER, PurpleProtocol)
- * PurpleProtocolXferInterface:
- * @can_receive: A method to determine if we can receive a file.
- * @send_file: A method to determine if we can send a file.
- * @new_xfer: A method to create a new file transfer.
* The protocol file transfer interface.
- * This interface provides file transfer callbacks for the protocol.
struct _PurpleProtocolXferInterface {
GTypeInterface parent_iface;