Sun, 13 Jul 2025 00:01:48 -0500
Fix some Since tags
These either have an unnecessary micro version, or are missing altogether.
Testing Done:
Ran `girlint.xsl` on the `Purple-3.0.gir` and `Pidgin-3.0.gir`.
Reviewed at https://reviews.imfreedom.org/r/4059/
--- a/libpurple/plugins.h Fri Jul 11 02:46:28 2025 -0500 +++ b/libpurple/plugins.h Sun Jul 13 00:01:48 2025 -0500 @@ -38,6 +38,8 @@ * @obj: The instance. * * A typecast macro to cast @obj to PurplePlugin. + * + * Since: 3.0 */ #define PURPLE_PLUGIN(obj) GPLUGIN_PLUGIN(obj) #define PURPLE_IS_PLUGIN(obj) GPLUGIN_IS_PLUGIN(obj)
--- a/libpurple/prefs.h Fri Jul 11 02:46:28 2025 -0500 +++ b/libpurple/prefs.h Sun Jul 13 00:01:48 2025 -0500 @@ -72,6 +72,8 @@ * The type of callbacks for preference changes. * * See purple_prefs_connect_callback(). + * + * Since: 2.0 */ typedef void (*PurplePrefCallback) (const char *name, PurplePrefType type, gconstpointer val, gpointer data);
--- a/libpurple/purpleaccountmanager.h Fri Jul 11 02:46:28 2025 -0500 +++ b/libpurple/purpleaccountmanager.h Sun Jul 13 00:01:48 2025 -0500 @@ -244,7 +244,7 @@ * If @online is %TRUE, new accounts will automatically have * [method@Account.connect] called for them. * - * Since: 3.0.0 + * Since: 3.0 */ PURPLE_AVAILABLE_IN_3_0 void purple_account_manager_set_online(PurpleAccountManager *manager, gboolean online);
--- a/libpurple/purplecommandmanager.h Fri Jul 11 02:46:28 2025 -0500 +++ b/libpurple/purplecommandmanager.h Sun Jul 13 00:01:48 2025 -0500 @@ -207,6 +207,8 @@ * Attempts to remove the first command with @name and @source from @manager. * * Returns: %TRUE if a command is found and removed, otherwise %FALSE. + * + * Since: 3.0 */ PURPLE_AVAILABLE_IN_3_0 gboolean purple_command_manager_remove(PurpleCommandManager *manager, const char *name, const char *source);
--- a/libpurple/purpleconnection.h Fri Jul 11 02:46:28 2025 -0500 +++ b/libpurple/purpleconnection.h Sun Jul 13 00:01:48 2025 -0500 @@ -38,6 +38,8 @@ * PurpleConnection: * * Represents an active connection on an account. + * + * Since: 2.0 */ #define PURPLE_TYPE_CONNECTION (purple_connection_get_type()) @@ -123,6 +125,8 @@ * into none of the other categories. * * Possible errors that can cause a connection to be closed. + * + * Since: 2.0 */ typedef enum {
--- a/libpurple/purplecontact.h Fri Jul 11 02:46:28 2025 -0500 +++ b/libpurple/purplecontact.h Sun Jul 13 00:01:48 2025 -0500 @@ -63,6 +63,8 @@ * A contact is a concrete representation of a user in that it contains all of * the contact information as well as a [class@Purple.Account] to use that * contact information with. + * + * Since: 2.0 */ /**
--- a/libpurple/purplecontactmanager.h Fri Jul 11 02:46:28 2025 -0500 +++ b/libpurple/purplecontactmanager.h Sun Jul 13 00:01:48 2025 -0500 @@ -166,6 +166,8 @@ * or creates a new one. * * Returns: (transfer full): The [class@Purple.Contact] that was either found or newly created. + * + * Since: 3.0 */ PURPLE_AVAILABLE_IN_3_0 PurpleContact *purple_contact_manager_find_or_create(PurpleContactManager *manager, PurpleAccount *account, const char *id, gboolean *found);
--- a/libpurple/purplecreateconversationdetails.c Fri Jul 11 02:46:28 2025 -0500 +++ b/libpurple/purplecreateconversationdetails.c Sun Jul 13 00:01:48 2025 -0500 @@ -149,7 +149,7 @@ * The maximum number of participants that can be supported by the * protocol not including the libpurple user. * - * Since: 3.0.0 + * Since: 3.0 */ properties[PROP_MAX_PARTICIPANTS] = g_param_spec_uint( "max-participants", NULL, NULL, @@ -162,7 +162,7 @@ * A [iface@Gio.ListModel] of [class@Contact]s to add to the conversation * not including the libpurple user. * - * Since: 3.0.0 + * Since: 3.0 */ properties[PROP_PARTICIPANTS] = g_param_spec_object( "participants", NULL, NULL,
--- a/libpurple/purplefiletransfer.h Fri Jul 11 02:46:28 2025 -0500 +++ b/libpurple/purplefiletransfer.h Sun Jul 13 00:01:48 2025 -0500 @@ -49,6 +49,8 @@ * @PURPLE_FILE_TRANSFER_STATE_FAILED: The transfer failed. * * The possible states that a file transfer can be in. + * + * Since: 3.0 */ typedef enum { PURPLE_FILE_TRANSFER_STATE_UNKNOWN,
--- a/libpurple/purplemessage.h Fri Jul 11 02:46:28 2025 -0500 +++ b/libpurple/purplemessage.h Sun Jul 13 00:01:48 2025 -0500 @@ -135,6 +135,8 @@ * Gets the author of the message, not a local alias. * * Returns: (transfer none): The author of @message. + * + * Since: 3.0 */ PURPLE_AVAILABLE_IN_3_0 PurpleConversationMember *purple_message_get_author(PurpleMessage *message);
--- a/libpurple/purpleplugininfo.h Fri Jul 11 02:46:28 2025 -0500 +++ b/libpurple/purpleplugininfo.h Sun Jul 13 00:01:48 2025 -0500 @@ -95,6 +95,8 @@ * rest are required by GPlugin. * * Returns: An ABI version to set in plugins using major and minor versions. + * + * Since: 3.0 */ #define PURPLE_PLUGIN_ABI_VERSION(major,minor) \ (0x01000000 | ((major) << 16) | (minor)) @@ -106,6 +108,8 @@ * Extracts the purple major version from @abi. * * Returns: The major version from an ABI version + * + * Since: 3.0 */ #define PURPLE_PLUGIN_ABI_MAJOR_VERSION(abi) \ ((abi >> 16) & 0xff) @@ -117,6 +121,8 @@ * Extracts the purple minor version from @abi. * * Returns: The minor version from an ABI version + * + * Since: 3.0 */ #define PURPLE_PLUGIN_ABI_MINOR_VERSION(abi) \ (abi & 0xffff) @@ -126,6 +132,8 @@ * * A convenience macro that returns an ABI version using PURPLE_MAJOR_VERSION * and PURPLE_MINOR_VERSION + * + * Since: 3.0 */ #define PURPLE_ABI_VERSION PURPLE_PLUGIN_ABI_VERSION(PURPLE_MAJOR_VERSION, PURPLE_MINOR_VERSION)
--- a/libpurple/purpleprotocol.h Fri Jul 11 02:46:28 2025 -0500 +++ b/libpurple/purpleprotocol.h Sun Jul 13 00:01:48 2025 -0500 @@ -99,6 +99,8 @@ * Protocol options * * These should all be stuff that some protocols can do and others can't. + * + * Since: 2.0 */ typedef enum /*< flags >*/ {
--- a/libpurple/purpleversion.h Fri Jul 11 02:46:28 2025 -0500 +++ b/libpurple/purpleversion.h Sun Jul 13 00:01:48 2025 -0500 @@ -419,6 +419,8 @@ * * Returns: %TRUE if the version of libpurple is the same or newer than the * passed-in version. + * + * Since: 2.0 */ #define PURPLE_VERSION_CHECK(major, minor, micro) ((major) == PURPLE_MAJOR_VERSION && \ ((minor) < PURPLE_MINOR_VERSION || \ @@ -437,6 +439,8 @@ * * Returns: %NULL if the versions are compatible, or a string describing * the version mismatch if not compatible. + * + * Since: 2.0 */ const char *purple_version_check(guint required_major, guint required_minor, guint required_micro); @@ -446,6 +450,8 @@ * The major version of the running libpurple. Contrast with * #PURPLE_MAJOR_VERSION, which expands at compile time to the major version of * libpurple being compiled against. + * + * Since: 2.0 */ PURPLE_VAR const guint purple_major_version; @@ -455,6 +461,8 @@ * The minor version of the running libpurple. Contrast with * #PURPLE_MINOR_VERSION, which expands at compile time to the minor version of * libpurple being compiled against. + * + * Since: 2.0 */ PURPLE_VAR const guint purple_minor_version; @@ -464,6 +472,8 @@ * The micro version of the running libpurple. Contrast with * #PURPLE_MICRO_VERSION, which expands at compile time to the micro version of * libpurple being compiled against. + * + * Since: 2.0 */ PURPLE_VAR const guint purple_micro_version;
--- a/libpurple/request.h Fri Jul 11 02:46:28 2025 -0500 +++ b/libpurple/request.h Sun Jul 13 00:01:48 2025 -0500 @@ -68,6 +68,8 @@ * @PURPLE_REQUEST_FOLDER: Folder selection request. * * Request types. + * + * Since: 2.0 */ typedef enum { @@ -86,6 +88,8 @@ * @PURPLE_REQUEST_FEATURE_HTML: Specifies that HTML should be supported. * * Feature flags for the request api. + * + * Since: 3.0 */ typedef enum { @@ -103,6 +107,8 @@ * @PURPLE_REQUEST_ICON_ERROR: Use an error icon. * * Constants to define which kind of icon should be displayed. + * + * Since: 3.0 */ typedef enum { @@ -120,6 +126,8 @@ * @data: user-data. * * A callback that's used to handle cancel actions. + * + * Since: 3.0 */ typedef void (*PurpleRequestCancelCb)(gpointer data); @@ -198,6 +206,8 @@ * @value: The value that was input. * * The type of callback passed to purple_request_input(). + * + * Since: 2.0 */ typedef void (*PurpleRequestInputCb)(void *data, const char *value); @@ -209,6 +219,8 @@ * The type of callbacks passed to purple_request_action(). The first * argument is the <literal>user_data</literal> parameter; the second is the * index in the list of actions of the one chosen. + * + * Since: 2.0 */ typedef void (*PurpleRequestActionCb)(void *data, int action); @@ -220,6 +232,8 @@ * The type of callbacks passed to purple_request_choice(). The first * argument is the <literal>user_data</literal> parameter; the second is the * values of those choice. + * + * Since: 2.0 */ typedef void (*PurpleRequestChoiceCb)(void *data, gpointer value); @@ -229,6 +243,8 @@ * @page: The page. * * The type of callbacks passed to purple_request_fields(). + * + * Since: 2.0 */ typedef void (*PurpleRequestFieldsCb)(void *data, PurpleRequestPage *page); @@ -238,6 +254,8 @@ * @filename: The filename. * * The type of callbacks passed to purple_request_file(). + * + * Since: 2.0 */ typedef void (*PurpleRequestFileCb)(void *data, const char *filename); @@ -246,6 +264,8 @@ * @data: User data. * * The type of callback passed to purple_request_cpar_set_help_cb(). + * + * Since: 3.0 */ typedef void (*PurpleRequestHelpCb)(gpointer data); @@ -654,6 +674,8 @@ * Prompts the user for text input. * * Returns: A UI-specific handle. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void *purple_request_input(void *handle, const char *title, const char *primary, @@ -694,6 +716,8 @@ * Prompts the user for multiple-choice input. * * Returns: A UI-specific handle. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void *purple_request_choice(void *handle, const char *title, const char *primary, @@ -734,6 +758,8 @@ * documentation. * * Returns: A UI-specific handle. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void *purple_request_choice_varg(void *handle, const char *title, @@ -774,6 +800,8 @@ * This is often represented as a dialog with a button for each action. * * Returns: A UI-specific handle. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void * @@ -812,6 +840,8 @@ * documentation. * * Returns: A UI-specific handle. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void * @@ -905,6 +935,8 @@ * Displays groups of fields for the user to fill in. * * Returns: A UI-specific handle. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void * @@ -952,6 +984,8 @@ * @uihandle: The request UI handle. * * Closes a request. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_close(PurpleRequestType type, void *uihandle); @@ -964,6 +998,8 @@ * Closes all requests registered with the specified handle. * * See purple_request_input(). + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_close_with_handle(void *handle); @@ -989,6 +1025,8 @@ * * A wrapper for purple_request_action() that uses <literal>Yes</literal> and * <literal>No</literal> buttons. + * + * Since: 2.0 */ #define purple_request_yes_no(handle, title, primary, secondary, default_action, cpar, user_data, yes_cb, no_cb) \ purple_request_action((handle), (title), (primary), (secondary), \ @@ -1016,6 +1054,8 @@ * * A wrapper for purple_request_action() that uses <literal>OK</literal> and * <literal>Cancel</literal> buttons. + * + * Since: 2.0 */ #define purple_request_ok_cancel(handle, title, primary, secondary, default_action, cpar, user_data, ok_cb, cancel_cb) \ purple_request_action((handle), (title), (primary), (secondary), \ @@ -1042,6 +1082,8 @@ * @cancel_cb: A #PurpleRequestActionCb to call when cancel is selected. * * A wrapper for purple_request_action() that uses Accept and Cancel buttons. + * + * Since: 2.0 */ #define purple_request_accept_cancel(handle, title, primary, secondary, default_action, cpar, user_data, accept_cb, cancel_cb) \ purple_request_action((handle), (title), (primary), (secondary), \ @@ -1068,6 +1110,8 @@ * the callback. Can be used for either opening a file or saving a file. * * Returns: A UI-specific handle. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void * @@ -1093,6 +1137,8 @@ * the callback. * * Returns: A UI-specific handle. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void * @@ -1122,6 +1168,8 @@ * * Sets the UI operations structure to be used when displaying a * request. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_set_ui_ops(PurpleRequestUiOps *ops); @@ -1133,6 +1181,8 @@ * request. * * Returns: The UI operations structure. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL PurpleRequestUiOps *purple_request_get_ui_ops(void);
--- a/libpurple/request/purplerequestfield.h Fri Jul 11 02:46:28 2025 -0500 +++ b/libpurple/request/purplerequestfield.h Sun Jul 13 00:01:48 2025 -0500 @@ -72,6 +72,8 @@ * A callback to check whether a field is valid. * * Returns: %TRUE if the field is valid, otherwise %FALSE. + * + * Since: 3.0 */ typedef gboolean (*PurpleRequestFieldValidator)(PurpleRequestField *field, char **errmsg, gpointer user_data); @@ -89,6 +91,8 @@ * @label: The text label. * * Sets the label text of a field. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_field_set_label(PurpleRequestField *field, const char *label); @@ -99,6 +103,8 @@ * @visible: TRUE if visible, or FALSE if not. * * Sets whether or not a field is visible. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_field_set_visible(PurpleRequestField *field, gboolean visible); @@ -112,6 +118,8 @@ * * This is optionally used by the UIs to provide such features as * auto-completion for type hints like "account" and "screenname". + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_field_set_type_hint(PurpleRequestField *field, @@ -138,6 +146,8 @@ * @required: TRUE if required, or FALSE. * * Sets whether or not a field is required. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_field_set_required(PurpleRequestField *field, gboolean required); @@ -162,6 +172,8 @@ * Returns the ID of a field. * * Returns: The ID + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL const char *purple_request_field_get_id(PurpleRequestField *field); @@ -173,6 +185,8 @@ * Returns the label text of a field. * * Returns: The label text. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL const char *purple_request_field_get_label(PurpleRequestField *field); @@ -184,6 +198,8 @@ * Returns whether or not a field is visible. * * Returns: TRUE if the field is visible. FALSE otherwise. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL gboolean purple_request_field_is_visible(PurpleRequestField *field); @@ -195,6 +211,8 @@ * Returns the field's type hint. * * Returns: The field's type hint. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL const char *purple_request_field_get_type_hint(PurpleRequestField *field); @@ -219,6 +237,8 @@ * Returns whether or not a field is required. * * Returns: TRUE if the field is required, or FALSE. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL gboolean purple_request_field_is_required(PurpleRequestField *field);
--- a/libpurple/request/purplerequestfieldaccount.h Fri Jul 11 02:46:28 2025 -0500 +++ b/libpurple/request/purplerequestfieldaccount.h Sun Jul 13 00:01:48 2025 -0500 @@ -77,6 +77,8 @@ * By default, this field will not show offline accounts. * * Returns: (transfer full) (type PurpleRequestFieldAccount): The new field. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL PurpleRequestField *purple_request_field_account_new(const char *id, const char *text, PurpleAccount *account); @@ -87,6 +89,8 @@ * @default_value: (transfer none): The default account. * * Sets the default account on an account field. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_field_account_set_default_value(PurpleRequestFieldAccount *field, PurpleAccount *default_value); @@ -97,6 +101,8 @@ * @value: (transfer none): The account. * * Sets the account in an account field. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_field_account_set_value(PurpleRequestFieldAccount *field, PurpleAccount *value); @@ -110,6 +116,8 @@ * * If TRUE, all accounts, online or offline, will be shown. If FALSE, * only online accounts will be shown. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_field_account_set_show_all(PurpleRequestFieldAccount *field, gboolean show_all); @@ -126,6 +134,8 @@ * * This function will determine which accounts get displayed and which * don't. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_field_account_set_filter(PurpleRequestFieldAccount *field, PurpleRequestFieldAccountFilterFunc filter_func, gpointer user_data, GDestroyNotify destroy_data); @@ -137,6 +147,8 @@ * Returns the default account in an account field. * * Returns: (transfer none): The default account. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL PurpleAccount *purple_request_field_account_get_default_value(PurpleRequestFieldAccount *field); @@ -148,6 +160,8 @@ * Returns the user-entered account in an account field. * * Returns: (transfer none): The user-entered account. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL PurpleAccount *purple_request_field_account_get_value(PurpleRequestFieldAccount *field); @@ -162,6 +176,8 @@ * only online accounts will be shown. * * Returns: Whether or not to show all accounts. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL gboolean purple_request_field_account_get_show_all(PurpleRequestFieldAccount *field);
--- a/libpurple/request/purplerequestfieldbool.h Fri Jul 11 02:46:28 2025 -0500 +++ b/libpurple/request/purplerequestfieldbool.h Sun Jul 13 00:01:48 2025 -0500 @@ -59,6 +59,8 @@ * This is often represented as a checkbox. * * Returns: (transfer full) (type PurpleRequestFieldBool): The new field. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL PurpleRequestField *purple_request_field_bool_new(const char *id, const char *text, gboolean default_value); @@ -69,6 +71,8 @@ * @default_value: The default value. * * Sets the default value in an boolean field. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_field_bool_set_default_value(PurpleRequestFieldBool *field, gboolean default_value); @@ -79,6 +83,8 @@ * @value: The value. * * Sets the value in an boolean field. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_field_bool_set_value(PurpleRequestFieldBool *field, gboolean value); @@ -90,6 +96,8 @@ * Returns the default value in an boolean field. * * Returns: The default value. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL gboolean purple_request_field_bool_get_default_value(PurpleRequestFieldBool *field); @@ -101,6 +109,8 @@ * Returns the user-entered value in an boolean field. * * Returns: The value. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL gboolean purple_request_field_bool_get_value(PurpleRequestFieldBool *field);
--- a/libpurple/request/purplerequestfieldchoice.h Fri Jul 11 02:46:28 2025 -0500 +++ b/libpurple/request/purplerequestfieldchoice.h Sun Jul 13 00:01:48 2025 -0500 @@ -59,6 +59,8 @@ * This is often represented as a group of radio buttons. * * Returns: (transfer full) (type PurpleRequestFieldChoice): The new field. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL PurpleRequestField *purple_request_field_choice_new(const char *id, const char *text, gpointer default_value); @@ -70,6 +72,8 @@ * @data: The choice value. * * Adds a choice to a multiple choice field. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_field_choice_add(PurpleRequestFieldChoice *field, const char *label, gpointer data); @@ -94,6 +98,8 @@ * @default_value: The default value. * * Sets the default value in a choice field. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_field_choice_set_default_value(PurpleRequestFieldChoice *field, gpointer default_value); @@ -104,6 +110,8 @@ * @value: The value. * * Sets the value in a choice field. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_field_choice_set_value(PurpleRequestFieldChoice *field, gpointer value); @@ -115,6 +123,8 @@ * Returns the default value in a choice field. * * Returns: The default value. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL gpointer purple_request_field_choice_get_default_value(PurpleRequestFieldChoice *field); @@ -126,6 +136,8 @@ * Returns the user-entered value in a choice field. * * Returns: The value. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL gpointer purple_request_field_choice_get_value(PurpleRequestFieldChoice *field);
--- a/libpurple/request/purplerequestfieldimage.h Fri Jul 11 02:46:28 2025 -0500 +++ b/libpurple/request/purplerequestfieldimage.h Sun Jul 13 00:01:48 2025 -0500 @@ -61,6 +61,8 @@ * Creates an image field. * * Returns: (transfer full) (type PurpleRequestFieldImage): The new field. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL PurpleRequestField *purple_request_field_image_new(const char *id, const char *text, const char *buf, gsize size); @@ -72,6 +74,8 @@ * @y: The y scale factor. * * Sets the scale factors of an image field. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_field_image_set_scale(PurpleRequestFieldImage *field, unsigned int x, unsigned int y); @@ -83,6 +87,8 @@ * Returns pointer to the image. * * Returns: Pointer to the image. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL const char *purple_request_field_image_get_buffer(PurpleRequestFieldImage *field); @@ -94,6 +100,8 @@ * Returns size (in bytes) of the image. * * Returns: Size of the image. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL gsize purple_request_field_image_get_size(PurpleRequestFieldImage *field); @@ -105,6 +113,8 @@ * Returns X scale coefficient of the image. * * Returns: X scale coefficient of the image. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL unsigned int purple_request_field_image_get_scale_x(PurpleRequestFieldImage *field); @@ -116,6 +126,8 @@ * Returns Y scale coefficient of the image. * * Returns: Y scale coefficient of the image. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL unsigned int purple_request_field_image_get_scale_y(PurpleRequestFieldImage *field);
--- a/libpurple/request/purplerequestfieldint.h Fri Jul 11 02:46:28 2025 -0500 +++ b/libpurple/request/purplerequestfieldint.h Sun Jul 13 00:01:48 2025 -0500 @@ -59,6 +59,8 @@ * Creates an integer field. * * Returns: (transfer full) (type PurpleRequestFieldInt): The new field. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL PurpleRequestField *purple_request_field_int_new(const char *id, const char *text, int default_value, int lower_bound, int upper_bound); @@ -69,6 +71,8 @@ * @default_value: The default value. * * Sets the default value in an integer field. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_field_int_set_default_value(PurpleRequestFieldInt *field, int default_value); @@ -103,6 +107,8 @@ * @value: The value. * * Sets the value in an integer field. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_field_int_set_value(PurpleRequestFieldInt *field, int value); @@ -114,6 +120,8 @@ * Returns the default value in an integer field. * * Returns: The default value. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL int purple_request_field_int_get_default_value(PurpleRequestFieldInt *field); @@ -151,6 +159,8 @@ * Returns the user-entered value in an integer field. * * Returns: The value. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL int purple_request_field_int_get_value(PurpleRequestFieldInt *field);
--- a/libpurple/request/purplerequestfieldlabel.h Fri Jul 11 02:46:28 2025 -0500 +++ b/libpurple/request/purplerequestfieldlabel.h Sun Jul 13 00:01:48 2025 -0500 @@ -56,6 +56,8 @@ * Creates a label field. * * Returns: (transfer full) (type PurpleRequestFieldLabel): The new field. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL PurpleRequestField *purple_request_field_label_new(const char *id, const char *text);
--- a/libpurple/request/purplerequestfieldlist.h Fri Jul 11 02:46:28 2025 -0500 +++ b/libpurple/request/purplerequestfieldlist.h Sun Jul 13 00:01:48 2025 -0500 @@ -56,6 +56,8 @@ * Creates a multiple list item field. * * Returns: (transfer full) (type PurpleRequestFieldList): The new field. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL PurpleRequestField *purple_request_field_list_new(const char *id, const char *text); @@ -67,6 +69,8 @@ * or FALSE otherwise. * * Sets whether or not a list field allows multiple selection. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_field_list_set_multi_select(PurpleRequestFieldList *field, gboolean multi_select); @@ -78,6 +82,8 @@ * Returns whether or not a list field allows multiple selection. * * Returns: TRUE if multiple selection is enabled, or FALSE otherwise. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL gboolean purple_request_field_list_get_multi_select(PurpleRequestFieldList *field); @@ -90,6 +96,8 @@ * Returns the data for a particular item. * * Returns: The data associated with the item. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL gpointer purple_request_field_list_get_data(PurpleRequestFieldList *field, const char *text); @@ -102,6 +110,8 @@ * @data: The associated data. * * Adds an item to a list field. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_field_list_add_icon(PurpleRequestFieldList *field, const char *item, const char *icon_path, gpointer data); @@ -112,6 +122,8 @@ * @item: The item to add. * * Adds a selected item to the list field. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_field_list_add_selected(PurpleRequestFieldList *field, const char *item); @@ -121,6 +133,8 @@ * @field: The field. * * Clears the list of selected items in a list field. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_field_list_clear_selected(PurpleRequestFieldList *field); @@ -131,6 +145,8 @@ * @items: (element-type utf8) (transfer none): The list of selected items. * * Sets a list of selected items in a list field. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_field_list_set_selected(PurpleRequestFieldList *field, GList *items); @@ -143,6 +159,8 @@ * Returns whether or not a particular item is selected in a list field. * * Returns: TRUE if the item is selected. FALSE otherwise. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL gboolean purple_request_field_list_is_selected(PurpleRequestFieldList *field, const char *item); @@ -157,6 +175,8 @@ * purple_request_field_list_get_data(). * * Returns: (element-type utf8) (transfer none): The list of selected items. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL GList *purple_request_field_list_get_selected(PurpleRequestFieldList *field); @@ -168,6 +188,8 @@ * Returns a list of items in a list field. * * Returns: (element-type PurpleKeyValuePair) (transfer none): The list of items. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL GList *purple_request_field_list_get_items(PurpleRequestFieldList *field);
--- a/libpurple/request/purplerequestfieldstring.h Fri Jul 11 02:46:28 2025 -0500 +++ b/libpurple/request/purplerequestfieldstring.h Sun Jul 13 00:01:48 2025 -0500 @@ -58,6 +58,8 @@ * Creates a string request field. * * Returns: (transfer full) (type PurpleRequestFieldString): The new field. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL PurpleRequestField *purple_request_field_string_new(const char *id, const char *text, const char *default_value, gboolean multiline); @@ -68,6 +70,8 @@ * @default_value: The default value. * * Sets the default value in a string field. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_field_string_set_default_value(PurpleRequestFieldString *field, const char *default_value); @@ -78,6 +82,8 @@ * @value: The value. * * Sets the value in a string field. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_field_string_set_value(PurpleRequestFieldString *field, const char *value); @@ -89,6 +95,8 @@ * * Sets whether or not a string field is masked * (commonly used for password fields). + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL void purple_request_field_string_set_masked(PurpleRequestFieldString *field, gboolean masked); @@ -100,6 +108,8 @@ * Returns the default value in a string field. * * Returns: The default value. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL const char *purple_request_field_string_get_default_value(PurpleRequestFieldString *field); @@ -111,6 +121,8 @@ * Returns the user-entered value in a string field. * * Returns: The value. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL const char *purple_request_field_string_get_value(PurpleRequestFieldString *field); @@ -122,6 +134,8 @@ * Returns whether or not a string field is multi-line. * * Returns: %TRUE if the field is mulit-line, or %FALSE otherwise. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL gboolean purple_request_field_string_is_multiline(PurpleRequestFieldString *field); @@ -133,6 +147,8 @@ * Returns whether or not a string field is masked. * * Returns: %TRUE if the field is masked, or %FALSE otherwise. + * + * Since: 2.0 */ PURPLE_AVAILABLE_IN_ALL gboolean purple_request_field_string_is_masked(PurpleRequestFieldString *field);
--- a/libpurple/xmlnode.h Fri Jul 11 02:46:28 2025 -0500 +++ b/libpurple/xmlnode.h Sun Jul 13 00:01:48 2025 -0500 @@ -41,6 +41,8 @@ * @PURPLE_XMLNODE_TYPE_DATA: Has data * * The valid types for an PurpleXmlNode + * + * Since: 3.0 */ typedef enum { @@ -66,6 +68,8 @@ * * XmlNode is a simplified API for handling XML. An XmlNode represents an XML * element and has API for children as well as attributes. + * + * Since: 3.0 */ typedef struct _PurpleXmlNode PurpleXmlNode; struct _PurpleXmlNode
--- a/pidgin/pidginaccountfilterprotocol.c Fri Jul 11 02:46:28 2025 -0500 +++ b/pidgin/pidginaccountfilterprotocol.c Sun Jul 13 00:01:48 2025 -0500 @@ -149,6 +149,8 @@ * PidginAccountFilterProtocol:protocol-id: * * The protocol id that will be filtered for. + * + * Since: 3.0 */ properties[PROP_PROTOCOL_ID] = g_param_spec_string( "protocol-id", NULL, NULL,
--- a/pidgin/pidginavatar.c Fri Jul 11 02:46:28 2025 -0500 +++ b/pidgin/pidginavatar.c Sun Jul 13 00:01:48 2025 -0500 @@ -258,6 +258,8 @@ * PidginAvatar:animate: * * Whether or not an animated avatar should be animated. + * + * Since: 3.0 */ properties[PROP_ANIMATE] = g_param_spec_boolean( "animate", NULL, NULL, @@ -268,6 +270,8 @@ * PidginAvatar:contact-info: * * The contact info whose avatar will be displayed. + * + * Since: 3.0 */ properties[PROP_CONTACT_INFO] = g_param_spec_object( "contact-info", NULL, NULL, @@ -278,6 +282,8 @@ * PidginAvatar:conversation: * * The conversation which will be used to find the correct avatar. + * + * Since: 3.0 */ properties[PROP_CONVERSATION] = g_param_spec_object( "conversation", NULL, NULL,
--- a/pidgin/pidgindisplayitem.h Fri Jul 11 02:46:28 2025 -0500 +++ b/pidgin/pidgindisplayitem.h Sun Jul 13 00:01:48 2025 -0500 @@ -58,6 +58,8 @@ * Creates a new #PidginDisplayItem instance. * * Returns: (transfer full): The new instance. + * + * Since: 3.0 */ PidginDisplayItem *pidgin_display_item_new(GtkWidget *child, const char *id);
--- a/pidgin/pidgindisplaywindow.c Fri Jul 11 02:46:28 2025 -0500 +++ b/pidgin/pidgindisplaywindow.c Sun Jul 13 00:01:48 2025 -0500 @@ -436,6 +436,8 @@ * @new_conv: The now active conversation. * * Emitted when a window switched from one conversation to another. + * + * Since: 3.0 */ signals[SIG_CONVERSATION_SWITCHED] = g_signal_new_class_handler( "conversation-switched",
--- a/pidgin/pidginkeypad.c Fri Jul 11 02:46:28 2025 -0500 +++ b/pidgin/pidginkeypad.c Sun Jul 13 00:01:48 2025 -0500 @@ -118,6 +118,8 @@ * [const@Gdk.KEY_asterisk], or [const@Gdk.KEY_numbersign]. * * Emitted when a key is pressed (by keyboard or from clicking a button). + * + * Since: 3.0 */ signals[SIG_PRESSED] = g_signal_new("pressed", G_TYPE_FROM_CLASS(klass),
--- a/pidgin/pidginpresenceicon.c Fri Jul 11 02:46:28 2025 -0500 +++ b/pidgin/pidginpresenceicon.c Sun Jul 13 00:01:48 2025 -0500 @@ -139,6 +139,8 @@ * PidginPresenceIcon:presence: * * The presence that this icon will be representing. + * + * Since: 3.0 */ properties[PROP_PRESENCE] = g_param_spec_object( "presence", NULL, NULL, @@ -149,6 +151,8 @@ * PidginPresenceIcon:fallback: * * The name of the icon to use as a fallback when no presence is set. + * + * Since: 3.0 */ properties[PROP_FALLBACK] = g_param_spec_string( "fallback", NULL, NULL, @@ -159,6 +163,8 @@ * PidginPresenceIcon:icon-size: * * The size of the icon that should be used. + * + * Since: 3.0 */ properties[PROP_ICON_SIZE] = g_param_spec_enum( "icon-size", NULL, NULL,
--- a/pidgin/prefs/pidgincredentialproviderrow.c Fri Jul 11 02:46:28 2025 -0500 +++ b/pidgin/prefs/pidgincredentialproviderrow.c Sun Jul 13 00:01:48 2025 -0500 @@ -147,6 +147,8 @@ * PidginCredentialProviderRow:provider * * The #PurpleCredentialProvider whose information will be displayed. + * + * Since: 3.0 */ properties[PROP_PROVIDER] = g_param_spec_object( "provider", NULL, NULL, @@ -157,6 +159,8 @@ * PidginCredentialProviderRow:active * * Whether the #PurpleCredentialProvider is currently active. + * + * Since: 3.0 */ properties[PROP_ACTIVE] = g_param_spec_boolean( "active", NULL, NULL,