libpurple 2.10.4 [im.pidgin.adium @ b5a51884d41f2b5ffd21b1443cc57f126a97273b]
Now actually the specified version of libpurple, I forgot to mtn update after propagating again.
(transplanted from 2fa7640aa8ee8fa9fd68fda4e09518192b89ae4e)
--- a/Frameworks/libpurple.framework/Headers Tue May 08 18:05:54 2012 +0200
+++ b/Frameworks/libpurple.framework/Headers Tue May 08 18:30:48 2012 +0200
@@ -1,1 +1,1 @@
\ No newline at end of file
\ No newline at end of file
--- a/Frameworks/libpurple.framework/Resources Tue May 08 18:05:54 2012 +0200
+++ b/Frameworks/libpurple.framework/Resources Tue May 08 18:30:48 2012 +0200
@@ -1,1 +1,1 @@
-Versions/0.10.0/Resources
\ No newline at end of file
+Versions/0.10.5/Resources \ No newline at end of file
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/account.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1194 +0,0 @@
- * @file account.h Account API
- * @see @ref account-signals
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_ACCOUNT_H_
-#define _PURPLE_ACCOUNT_H_
-#include <glib-object.h>
-/** @copydoc _PurpleAccountUiOps */
-typedef struct _PurpleAccountUiOps PurpleAccountUiOps;
-/** @copydoc _PurpleAccount */
-typedef struct _PurpleAccount PurpleAccount;
-typedef gboolean (*PurpleFilterAccountFunc)(PurpleAccount *account);
-typedef void (*PurpleAccountRequestAuthorizationCb)(void *);
-typedef void (*PurpleAccountRegistrationCb)(PurpleAccount *account, gboolean succeeded, void *user_data);
-typedef void (*PurpleAccountUnregistrationCb)(PurpleAccount *account, gboolean succeeded, void *user_data);
-typedef void (*PurpleSetPublicAliasSuccessCallback)(PurpleAccount *account, const char *new_alias);
-typedef void (*PurpleSetPublicAliasFailureCallback)(PurpleAccount *account, const char *error);
-typedef void (*PurpleGetPublicAliasSuccessCallback)(PurpleAccount *account, const char *alias);
-typedef void (*PurpleGetPublicAliasFailureCallback)(PurpleAccount *account, const char *error);
- * Account request types.
- PURPLE_ACCOUNT_REQUEST_AUTHORIZATION = 0 /* Account authorization request */
-} PurpleAccountRequestType;
- * Account request response types
- PURPLE_ACCOUNT_RESPONSE_IGNORE = -2,
- PURPLE_ACCOUNT_RESPONSE_DENY = -1,
- PURPLE_ACCOUNT_RESPONSE_PASS = 0,
- PURPLE_ACCOUNT_RESPONSE_ACCEPT = 1
-} PurpleAccountRequestResponse;
-/** Account UI operations, used to notify the user of status changes and when
- * buddies add this account to their buddy lists.
-struct _PurpleAccountUiOps
- /** A buddy who is already on this account's buddy list added this account
- void (*notify_added)(PurpleAccount *account,
- const char *remote_user,
- /** This account's status changed. */
- void (*status_changed)(PurpleAccount *account,
- /** Someone we don't have on our list added us; prompt to add them. */
- void (*request_add)(PurpleAccount *account,
- const char *remote_user,
- /** Prompt for authorization when someone adds this account to their buddy
- * list. To authorize them to see this account's presence, call \a
- * authorize_cb (\a user_data); otherwise call \a deny_cb (\a user_data);
- * @return a UI-specific handle, as passed to #close_account_request.
- void *(*request_authorize)(PurpleAccount *account,
- const char *remote_user,
- PurpleAccountRequestAuthorizationCb authorize_cb,
- PurpleAccountRequestAuthorizationCb deny_cb,
- /** Close a pending request for authorization. \a ui_handle is a handle
- * as returned by #request_authorize.
- void (*close_account_request)(void *ui_handle);
- void (*_purple_reserved1)(void);
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
- void (*_purple_reserved4)(void);
-/** Structure representing an account.
- char *username; /**< The username. */
- char *alias; /**< How you appear to yourself. */
- char *password; /**< The account password. */
- char *user_info; /**< User information. */
- char *buddy_icon_path; /**< The buddy icon's non-cached path. */
- gboolean remember_pass; /**< Remember the password. */
- char *protocol_id; /**< The ID of the protocol. */
- PurpleConnection *gc; /**< The connection handle. */
- gboolean disconnecting; /**< The account is currently disconnecting */
- GHashTable *settings; /**< Protocol-specific settings. */
- GHashTable *ui_settings; /**< UI-specific settings. */
- PurpleProxyInfo *proxy_info; /**< Proxy information. This will be set */
- /* to NULL when the account inherits */
- /* proxy settings from global prefs. */
- * TODO: Supplementing the next two linked lists with hash tables
- * should help performance a lot when these lists are long. This
- * matters quite a bit for protocols like MSN, where all your
- * buddies are added to your permit list. Currently we have to
- * iterate through the entire list if we want to check if someone
- * is permitted or denied. We should do this for 3.0.0.
- * Or maybe use a GTree.
- GSList *permit; /**< Permit list. */
- GSList *deny; /**< Deny list. */
- PurplePrivacyType perm_deny; /**< The permit/deny setting. */
- GList *status_types; /**< Status types. */
- PurplePresence *presence; /**< Presence. */
- PurpleLog *system_log; /**< The system log */
- void *ui_data; /**< The UI can put data here. */
- PurpleAccountRegistrationCb registration_cb;
- void *registration_cb_user_data;
- gpointer priv; /**< Pointer to opaque private data. */
-/**************************************************************************/
-/** @name Account API */
-/**************************************************************************/
- * Creates a new account.
- * @param username The username.
- * @param protocol_id The protocol ID.
- * @return The new account.
-PurpleAccount *purple_account_new(const char *username, const char *protocol_id);
- * @param account The account to destroy.
-void purple_account_destroy(PurpleAccount *account);
- * Connects to an account.
- * @param account The account to connect to.
-void purple_account_connect(PurpleAccount *account);
- * Sets the callback for successful registration.
- * @param account The account for which this callback should be used
- * @param cb The callback
- * @param user_data The user data passed to the callback
-void purple_account_set_register_callback(PurpleAccount *account, PurpleAccountRegistrationCb cb, void *user_data);
- * Registers an account.
- * @param account The account to register.
-void purple_account_register(PurpleAccount *account);
- * Unregisters an account (deleting it from the server).
- * @param account The account to unregister.
- * @param cb Optional callback to be called when unregistration is complete
- * @param user_data user data to pass to the callback
-void purple_account_unregister(PurpleAccount *account, PurpleAccountUnregistrationCb cb, void *user_data);
- * Disconnects from an account.
- * @param account The account to disconnect from.
-void purple_account_disconnect(PurpleAccount *account);
- * Notifies the user that the account was added to a remote user's
- * This will present a dialog informing the user that he was added to the
- * remote user's buddy list.
- * @param account The account that was added.
- * @param remote_user The name of the user that added this account.
- * @param id The optional ID of the local account. Rarely used.
- * @param alias The optional alias of the user.
- * @param message The optional message sent from the user adding you.
-void purple_account_notify_added(PurpleAccount *account, const char *remote_user,
- const char *id, const char *alias,
- * Notifies the user that the account was addded to a remote user's buddy
- * list and asks ther user if they want to add the remote user to their buddy
- * This will present a dialog informing the local user that the remote user
- * added them to the remote user's buddy list and will ask if they want to add
- * the remote user to the buddy list.
- * @param account The account that was added.
- * @param remote_user The name of the user that added this account.
- * @param id The optional ID of the local account. Rarely used.
- * @param alias The optional alias of the user.
- * @param message The optional message sent from the user adding you.
-void purple_account_request_add(PurpleAccount *account, const char *remote_user,
- const char *id, const char *alias,
- * Notifies the user that a remote user has wants to add the local user
- * to his or her buddy list and requires authorization to do so.
- * This will present a dialog informing the user of this and ask if the
- * user authorizes or denies the remote user from adding him.
- * @param account The account that was added
- * @param remote_user The name of the user that added this account.
- * @param id The optional ID of the local account. Rarely used.
- * @param alias The optional alias of the remote user.
- * @param message The optional message sent by the user wanting to add you.
- * @param on_list Is the remote user already on the buddy list?
- * @param auth_cb The callback called when the local user accepts
- * @param deny_cb The callback called when the local user rejects
- * @param user_data Data to be passed back to the above callbacks
- * @return A UI-specific handle.
-void *purple_account_request_authorization(PurpleAccount *account, const char *remote_user,
- const char *id, const char *alias, const char *message, gboolean on_list,
- PurpleAccountRequestAuthorizationCb auth_cb, PurpleAccountRequestAuthorizationCb deny_cb, void *user_data);
- * Close account requests registered for the given PurpleAccount
- * @param account The account for which requests should be closed
-void purple_account_request_close_with_account(PurpleAccount *account);
- * Close the account request for the given ui handle
- * @param ui_handle The ui specific handle for which requests should be closed
-void purple_account_request_close(void *ui_handle);
- * Requests a password from the user for the account. Does not set the
- * account password on success; do that in ok_cb if desired.
- * @param account The account to request the password for.
- * @param ok_cb The callback for the OK button.
- * @param cancel_cb The callback for the cancel button.
- * @param user_data User data to be passed into callbacks.
-void purple_account_request_password(PurpleAccount *account, GCallback ok_cb,
- GCallback cancel_cb, void *user_data);
- * Requests information from the user to change the account's password.
- * @param account The account to change the password on.
-void purple_account_request_change_password(PurpleAccount *account);
- * Requests information from the user to change the account's
- * @param account The account to change the user information on.
-void purple_account_request_change_user_info(PurpleAccount *account);
- * Sets the account's username.
- * @param account The account.
- * @param username The username.
-void purple_account_set_username(PurpleAccount *account, const char *username);
- * Sets the account's password.
- * @param account The account.
- * @param password The password.
-void purple_account_set_password(PurpleAccount *account, const char *password);
- * Sets the account's alias.
- * @param account The account.
- * @param alias The alias.
-void purple_account_set_alias(PurpleAccount *account, const char *alias);
- * Sets the account's user information
- * @param account The account.
- * @param user_info The user information.
-void purple_account_set_user_info(PurpleAccount *account, const char *user_info);
- * Sets the account's buddy icon path.
- * @param account The account.
- * @param path The buddy icon non-cached path.
-void purple_account_set_buddy_icon_path(PurpleAccount *account, const char *path);
- * Sets the account's protocol ID.
- * @param account The account.
- * @param protocol_id The protocol ID.
-void purple_account_set_protocol_id(PurpleAccount *account,
- const char *protocol_id);
- * Sets the account's connection.
- * @param account The account.
- * @param gc The connection.
-void purple_account_set_connection(PurpleAccount *account, PurpleConnection *gc);
- * Sets whether or not this account should save its password.
- * @param account The account.
- * @param value @c TRUE if it should remember the password.
-void purple_account_set_remember_password(PurpleAccount *account, gboolean value);
- * Sets whether or not this account should check for mail.
- * @param account The account.
- * @param value @c TRUE if it should check for mail.
-void purple_account_set_check_mail(PurpleAccount *account, gboolean value);
- * Sets whether or not this account is enabled for the specified
- * @param account The account.
- * @param value @c TRUE if it is enabled.
-void purple_account_set_enabled(PurpleAccount *account, const char *ui,
- * Sets the account's proxy information.
- * @param account The account.
- * @param info The proxy information.
-void purple_account_set_proxy_info(PurpleAccount *account, PurpleProxyInfo *info);
- * Sets the account's privacy type.
- * @param account The account.
- * @param privacy_type The privacy type.
-void purple_account_set_privacy_type(PurpleAccount *account, PurplePrivacyType privacy_type);
- * Sets the account's status types.
- * @param account The account.
- * @param status_types The list of status types.
-void purple_account_set_status_types(PurpleAccount *account, GList *status_types);
- * Variadic version of purple_account_set_status_list(); the variadic list
- * replaces @a attrs, and should be <tt>NULL</tt>-terminated.
- * @copydoc purple_account_set_status_list()
-void purple_account_set_status(PurpleAccount *account, const char *status_id,
- gboolean active, ...) G_GNUC_NULL_TERMINATED;
- * Activates or deactivates a status. All changes to the statuses of
- * an account go through this function or purple_account_set_status().
- * You can only deactivate an exclusive status by activating another exclusive
- * status. So, if @a status_id is an exclusive status and @a active is @c
- * FALSE, this function does nothing.
- * @param account The account.
- * @param status_id The ID of the status.
- * @param active Whether @a status_id is to be activated (<tt>TRUE</tt>) or
- * deactivated (<tt>FALSE</tt>).
- * @param attrs A list of <tt>const char *</tt> attribute names followed by
- * <tt>const char *</tt> attribute values for the status.
- * (For example, one pair might be <tt>"message"</tt> followed
- * by <tt>"hello, talk to me!"</tt>.)
-void purple_account_set_status_list(PurpleAccount *account,
- const char *status_id, gboolean active, GList *attrs);
- * Set a server-side (public) alias for this account. The account
- * must already be connected.
- * Currently, the public alias is not stored locally, although this
- * may change in a later version.
- * @param account The account
- * @param alias The new public alias for this account or NULL
- * to unset the alias/nickname (or return it to
- * a protocol-specific "default", like the username)
- * @param success_cb A callback which will be called if the alias
- * is successfully set on the server (or NULL).
- * @param failure_cb A callback which will be called if the alias
- * is not successfully set on the server (or NULL).
-void purple_account_set_public_alias(PurpleAccount *account,
- const char *alias, PurpleSetPublicAliasSuccessCallback success_cb,
- PurpleSetPublicAliasFailureCallback failure_cb);
- * Fetch the server-side (public) alias for this account. The account
- * must already be connected.
- * @param account The account
- * @param success_cb A callback which will be called with the alias
- * @param failure_cb A callback which will be called if the prpl is
- * unable to retrieve the server-side alias.
-void purple_account_get_public_alias(PurpleAccount *account,
- PurpleGetPublicAliasSuccessCallback success_cb,
- PurpleGetPublicAliasFailureCallback failure_cb);
- * Return whether silence suppression is used during voice call.
- * @param account The account.
- * @return @c TRUE if suppression is used, or @c FALSE if not.
-gboolean purple_account_get_silence_suppression(const PurpleAccount *account);
- * Sets whether silence suppression is used during voice call.
- * @param account The account.
- * @param value @c TRUE if suppression should be used.
-void purple_account_set_silence_suppression(PurpleAccount *account,
- * Clears all protocol-specific settings on an account.
- * @param account The account.
-void purple_account_clear_settings(PurpleAccount *account);
- * Removes an account-specific setting by name.
- * @param account The account.
- * @param setting The setting to remove.
-void purple_account_remove_setting(PurpleAccount *account, const char *setting);
- * Sets a protocol-specific integer setting for an account.
- * @param account The account.
- * @param name The name of the setting.
- * @param value The setting's value.
-void purple_account_set_int(PurpleAccount *account, const char *name, int value);
- * Sets a protocol-specific string setting for an account.
- * @param account The account.
- * @param name The name of the setting.
- * @param value The setting's value.
-void purple_account_set_string(PurpleAccount *account, const char *name,
- * Sets a protocol-specific boolean setting for an account.
- * @param account The account.
- * @param name The name of the setting.
- * @param value The setting's value.
-void purple_account_set_bool(PurpleAccount *account, const char *name,
- * Sets a UI-specific integer setting for an account.
- * @param account The account.
- * @param ui The UI name.
- * @param name The name of the setting.
- * @param value The setting's value.
-void purple_account_set_ui_int(PurpleAccount *account, const char *ui,
- const char *name, int value);
- * Sets a UI-specific string setting for an account.
- * @param account The account.
- * @param ui The UI name.
- * @param name The name of the setting.
- * @param value The setting's value.
-void purple_account_set_ui_string(PurpleAccount *account, const char *ui,
- const char *name, const char *value);
- * Sets a UI-specific boolean setting for an account.
- * @param account The account.
- * @param ui The UI name.
- * @param name The name of the setting.
- * @param value The setting's value.
-void purple_account_set_ui_bool(PurpleAccount *account, const char *ui,
- const char *name, gboolean value);
- * Returns whether or not the account is connected.
- * @param account The account.
- * @return @c TRUE if connected, or @c FALSE otherwise.
-gboolean purple_account_is_connected(const PurpleAccount *account);
- * Returns whether or not the account is connecting.
- * @param account The account.
- * @return @c TRUE if connecting, or @c FALSE otherwise.
-gboolean purple_account_is_connecting(const PurpleAccount *account);
- * Returns whether or not the account is disconnected.
- * @param account The account.
- * @return @c TRUE if disconnected, or @c FALSE otherwise.
-gboolean purple_account_is_disconnected(const PurpleAccount *account);
- * Returns the account's username.
- * @param account The account.
- * @return The username.
-const char *purple_account_get_username(const PurpleAccount *account);
- * Returns the account's password.
- * @param account The account.
- * @return The password.
-const char *purple_account_get_password(const PurpleAccount *account);
- * Returns the account's alias.
- * @param account The account.
-const char *purple_account_get_alias(const PurpleAccount *account);
- * Returns the account's user information.
- * @param account The account.
- * @return The user information.
-const char *purple_account_get_user_info(const PurpleAccount *account);
- * Gets the account's buddy icon path.
- * @param account The account.
- * @return The buddy icon's non-cached path.
-const char *purple_account_get_buddy_icon_path(const PurpleAccount *account);
- * Returns the account's protocol ID.
- * @param account The account.
- * @return The protocol ID.
-const char *purple_account_get_protocol_id(const PurpleAccount *account);
- * Returns the account's protocol name.
- * @param account The account.
- * @return The protocol name.
-const char *purple_account_get_protocol_name(const PurpleAccount *account);
- * Returns the account's connection.
- * @param account The account.
- * @return The connection.
-PurpleConnection *purple_account_get_connection(const PurpleAccount *account);
- * Returns a name for this account appropriate for display to the user. In
- * order of preference: the account's alias; the contact or buddy alias (if
- * the account exists on its own buddy list); the connection's display name;
- * the account's username.
- * @param account The account.
- * @return The name to display.
-const gchar *purple_account_get_name_for_display(const PurpleAccount *account);
- * Returns whether or not this account should save its password.
- * @param account The account.
- * @return @c TRUE if it should remember the password.
-gboolean purple_account_get_remember_password(const PurpleAccount *account);
- * Returns whether or not this account should check for mail.
- * @param account The account.
- * @return @c TRUE if it should check for mail.
-gboolean purple_account_get_check_mail(const PurpleAccount *account);
- * Returns whether or not this account is enabled for the
- * @param account The account.
- * @return @c TRUE if it enabled on this UI.
-gboolean purple_account_get_enabled(const PurpleAccount *account,
- * Returns the account's proxy information.
- * @param account The account.
- * @return The proxy information.
-PurpleProxyInfo *purple_account_get_proxy_info(const PurpleAccount *account);
- * Returns the account's privacy type.
- * @param account The account.
- * @return The privacy type.
-PurplePrivacyType purple_account_get_privacy_type(const PurpleAccount *account);
- * Returns the active status for this account. This looks through
- * the PurplePresence associated with this account and returns the
- * PurpleStatus that has its active flag set to "TRUE." There can be
- * only one active PurpleStatus in a PurplePresence.
- * @param account The account.
- * @return The active status.
-PurpleStatus *purple_account_get_active_status(const PurpleAccount *account);
- * Returns the account status with the specified ID.
- * Note that this works differently than purple_buddy_get_status() in that
- * it will only return NULL if the status was not registered.
- * @param account The account.
- * @param status_id The status ID.
- * @return The status, or NULL if it was never registered.
-PurpleStatus *purple_account_get_status(const PurpleAccount *account,
- const char *status_id);
- * Returns the account status type with the specified ID.
- * @param account The account.
- * @param id The ID of the status type to find.
- * @return The status type if found, or NULL.
-PurpleStatusType *purple_account_get_status_type(const PurpleAccount *account,
- * Returns the account status type with the specified primitive.
- * Note: It is possible for an account to have more than one
- * PurpleStatusType with the same primitive. In this case, the
- * first PurpleStatusType is returned.
- * @param account The account.
- * @param primitive The type of the status type to find.
- * @return The status if found, or NULL.
-PurpleStatusType *purple_account_get_status_type_with_primitive(
- const PurpleAccount *account,
- PurpleStatusPrimitive primitive);
- * Returns the account's presence.
- * @param account The account.
- * @return The account's presence.
-PurplePresence *purple_account_get_presence(const PurpleAccount *account);
- * Returns whether or not an account status is active.
- * @param account The account.
- * @param status_id The status ID.
- * @return TRUE if active, or FALSE if not.
-gboolean purple_account_is_status_active(const PurpleAccount *account,
- const char *status_id);
- * Returns the account's status types.
- * @param account The account.
- * @constreturn The account's status types.
-GList *purple_account_get_status_types(const PurpleAccount *account);
- * Returns a protocol-specific integer setting for an account.
- * @param account The account.
- * @param name The name of the setting.
- * @param default_value The default value.
-int purple_account_get_int(const PurpleAccount *account, const char *name,
- * Returns a protocol-specific string setting for an account.
- * @param account The account.
- * @param name The name of the setting.
- * @param default_value The default value.
-const char *purple_account_get_string(const PurpleAccount *account,
- const char *default_value);
- * Returns a protocol-specific boolean setting for an account.
- * @param account The account.
- * @param name The name of the setting.
- * @param default_value The default value.
-gboolean purple_account_get_bool(const PurpleAccount *account, const char *name,
- gboolean default_value);
- * Returns a UI-specific integer setting for an account.
- * @param account The account.
- * @param ui The UI name.
- * @param name The name of the setting.
- * @param default_value The default value.
-int purple_account_get_ui_int(const PurpleAccount *account, const char *ui,
- const char *name, int default_value);
- * Returns a UI-specific string setting for an account.
- * @param account The account.
- * @param ui The UI name.
- * @param name The name of the setting.
- * @param default_value The default value.
-const char *purple_account_get_ui_string(const PurpleAccount *account,
- const char *ui, const char *name,
- const char *default_value);
- * Returns a UI-specific boolean setting for an account.
- * @param account The account.
- * @param ui The UI name.
- * @param name The name of the setting.
- * @param default_value The default value.
-gboolean purple_account_get_ui_bool(const PurpleAccount *account, const char *ui,
- const char *name, gboolean default_value);
- * Returns the system log for an account.
- * @param account The account.
- * @param create Should it be created if it doesn't exist?
- * @note Callers should almost always pass @c FALSE for @a create.
- * Passing @c TRUE could result in an existing log being reopened,
- * if the log has already been closed, which not all loggers deal
-PurpleLog *purple_account_get_log(PurpleAccount *account, gboolean create);
- * Frees the system log of an account
- * @param account The account.
-void purple_account_destroy_log(PurpleAccount *account);
- * Adds a buddy to the server-side buddy list for the specified account.
- * @param account The account.
- * @param buddy The buddy to add.
- * @deprecated Use purple_account_add_buddy_with_invite and \c NULL message.
-void purple_account_add_buddy(PurpleAccount *account, PurpleBuddy *buddy);
- * Adds a buddy to the server-side buddy list for the specified account.
- * @param account The account.
- * @param buddy The buddy to add.
- * @param message The invite message. This may be ignored by a prpl.
-void purple_account_add_buddy_with_invite(PurpleAccount *account, PurpleBuddy *buddy, const char *message);
- * Adds a list of buddies to the server-side buddy list.
- * @param account The account.
- * @param buddies The list of PurpleBlistNodes representing the buddies to add.
- * @deprecated Use purple_account_add_buddies_with_invite and \c NULL message.
-void purple_account_add_buddies(PurpleAccount *account, GList *buddies);
- * Adds a list of buddies to the server-side buddy list.
- * @param account The account.
- * @param buddies The list of PurpleBlistNodes representing the buddies to add.
- * @param message The invite message. This may be ignored by a prpl.
-void purple_account_add_buddies_with_invite(PurpleAccount *account, GList *buddies, const char *message);
- * Removes a buddy from the server-side buddy list.
- * @param account The account.
- * @param buddy The buddy to remove.
- * @param group The group to remove the buddy from.
-void purple_account_remove_buddy(PurpleAccount *account, PurpleBuddy *buddy,
- * Removes a list of buddies from the server-side buddy list.
- * @note The lists buddies and groups are parallel lists. Be sure that node n of
- * groups matches node n of buddies.
- * @param account The account.
- * @param buddies The list of buddies to remove.
- * @param groups The list of groups to remove buddies from. Each node of this
- * list should match the corresponding node of buddies.
-void purple_account_remove_buddies(PurpleAccount *account, GList *buddies,
- * Removes a group from the server-side buddy list.
- * @param account The account.
- * @param group The group to remove.
-void purple_account_remove_group(PurpleAccount *account, PurpleGroup *group);
- * Changes the password on the specified account.
- * @param account The account.
- * @param orig_pw The old password.
- * @param new_pw The new password.
-void purple_account_change_password(PurpleAccount *account, const char *orig_pw,
- * Whether the account supports sending offline messages to buddy.
- * @param account The account
- * @param buddy The buddy
-gboolean purple_account_supports_offline_message(PurpleAccount *account, PurpleBuddy *buddy);
- * Get the error that caused the account to be disconnected, or @c NULL if the
- * account is happily connected or disconnected without an error.
- * @param account The account whose error should be retrieved.
- * @constreturn The type of error and a human-readable description of the
- * current error, or @c NULL if there is no current error. This
- * pointer is guaranteed to remain valid until the @ref
- * account-error-changed signal is emitted for @a account.
-const PurpleConnectionErrorInfo *purple_account_get_current_error(PurpleAccount *account);
- * Clear an account's current error state, resetting it to @c NULL.
- * @param account The account whose error state should be cleared.
-void purple_account_clear_current_error(PurpleAccount *account);
-/**************************************************************************/
-/** @name Accounts API */
-/**************************************************************************/
- * Adds an account to the list of accounts.
- * @param account The account.
-void purple_accounts_add(PurpleAccount *account);
- * Removes an account from the list of accounts.
- * @param account The account.
-void purple_accounts_remove(PurpleAccount *account);
- * This will remove any buddies from the buddy list that belong to this
- * account, buddy pounces that belong to this account, and will also
- * @param account The account.
-void purple_accounts_delete(PurpleAccount *account);
- * @param account The account to reorder.
- * @param new_index The new index for the account.
-void purple_accounts_reorder(PurpleAccount *account, gint new_index);
- * Returns a list of all accounts.
- * @constreturn A list of all accounts.
-GList *purple_accounts_get_all(void);
- * Returns a list of all enabled accounts
- * @return A list of all enabled accounts. The list is owned
- * by the caller, and must be g_list_free()d to avoid
-GList *purple_accounts_get_all_active(void);
- * Finds an account with the specified name and protocol id.
- * @param name The account username.
- * @param protocol The account protocol ID.
- * @return The account, if found, or @c FALSE otherwise.
-PurpleAccount *purple_accounts_find(const char *name, const char *protocol);
- * This is called by the core after all subsystems and what
- * not have been initialized. It sets all enabled accounts
- * to their startup status by signing them on, setting them
- * You probably shouldn't call this unless you really know
-void purple_accounts_restore_current_statuses(void);
-/**************************************************************************/
-/** @name UI Registration Functions */
-/**************************************************************************/
- * Sets the UI operations structure to be used for accounts.
- * @param ops The UI operations structure.
-void purple_accounts_set_ui_ops(PurpleAccountUiOps *ops);
- * Returns the UI operations structure used for accounts.
- * @return The UI operations structure in use.
-PurpleAccountUiOps *purple_accounts_get_ui_ops(void);
-/**************************************************************************/
-/** @name Accounts Subsystem */
-/**************************************************************************/
- * Returns the accounts subsystem handle.
- * @return The accounts subsystem handle.
-void *purple_accounts_get_handle(void);
- * Initializes the accounts subsystem.
-void purple_accounts_init(void);
- * Uninitializes the accounts subsystem.
-void purple_accounts_uninit(void);
-#endif /* _PURPLE_ACCOUNT_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/accountopt.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,395 +0,0 @@
- * @file accountopt.h Account Options API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_ACCOUNTOPT_H_
-#define _PURPLE_ACCOUNTOPT_H_
- * An option for an account.
- * This is set by protocol plugins, and appears in the account settings
- PurplePrefType type; /**< The type of value. */
- char *text; /**< The text that will appear to the user. */
- char *pref_name; /**< The name of the associated preference. */
- gboolean boolean; /**< The default boolean value. */
- int integer; /**< The default integer value. */
- char *string; /**< The default string value. */
- GList *list; /**< The default list value. */
- gboolean masked; /**< Whether the value entered should be
- * obscured from view (for passwords and
- * This is used by some protocols to separate the fields of the username
- * into more human-readable components.
- char *text; /**< The text that will appear to the user. */
- char *default_value; /**< The default value. */
- char field_sep; /**< The field separator. */
- gboolean reverse; /**< TRUE if the separator should be found
- starting a the end of the string, FALSE
-} PurpleAccountUserSplit;
-/**************************************************************************/
-/** @name Account Option API */
-/**************************************************************************/
- * Creates a new account option. If you know what @a type will be in advance,
- * consider using purple_account_option_bool_new(),
- * purple_account_option_int_new(), purple_account_option_string_new() or
- * purple_account_option_list_new() (as appropriate) instead.
- * @param type The type of option.
- * @param text The text of the option.
- * @param pref_name The account preference name for the option.
- * @return The account option.
-PurpleAccountOption *purple_account_option_new(PurplePrefType type,
- const char *text, const char *pref_name);
- * Creates a new boolean account option.
- * @param text The text of the option.
- * @param pref_name The account preference name for the option.
- * @param default_value The default value.
- * @return The account option.
-PurpleAccountOption *purple_account_option_bool_new(const char *text,
- const char *pref_name, gboolean default_value);
- * Creates a new integer account option.
- * @param text The text of the option.
- * @param pref_name The account preference name for the option.
- * @param default_value The default value.
- * @return The account option.
-PurpleAccountOption *purple_account_option_int_new(const char *text,
- const char *pref_name, int default_value);
- * Creates a new string account option.
- * @param text The text of the option.
- * @param pref_name The account preference name for the option.
- * @param default_value The default value.
- * @return The account option.
-PurpleAccountOption *purple_account_option_string_new(const char *text,
- const char *pref_name, const char *default_value);
- * Creates a new list account option.
- * The list passed will be owned by the account option, and the
- * strings inside will be freed automatically.
- * The list is a list of #PurpleKeyValuePair items. The key is the label that
- * should be displayed to the user, and the <tt>(const char *)</tt> value is
- * the internal ID that should be passed to purple_account_set_string() to
- * @param text The text of the option.
- * @param pref_name The account preference name for the option.
- * @param list The key, value list.
- * @return The account option.
-PurpleAccountOption *purple_account_option_list_new(const char *text,
- const char *pref_name, GList *list);
- * Destroys an account option.
- * @param option The option to destroy.
-void purple_account_option_destroy(PurpleAccountOption *option);
- * Sets the default boolean value for an account option.
- * @param option The account option.
- * @param value The default boolean value.
-void purple_account_option_set_default_bool(PurpleAccountOption *option,
- * Sets the default integer value for an account option.
- * @param option The account option.
- * @param value The default integer value.
-void purple_account_option_set_default_int(PurpleAccountOption *option,
- * Sets the default string value for an account option.
- * @param option The account option.
- * @param value The default string value.
-void purple_account_option_set_default_string(PurpleAccountOption *option,
- * Sets the masking for an account option. Setting this to %TRUE acts
- * as a hint to the UI that the option's value should be obscured from
- * view, like a password.
- * @param option The account option.
- * @param masked The masking.
-purple_account_option_set_masked(PurpleAccountOption *option, gboolean masked);
- * Sets the list values for an account option.
- * The list passed will be owned by the account option, and the
- * strings inside will be freed automatically.
- * The list is in key, value pairs. The key is the ID stored and used
- * internally, and the value is the label displayed.
- * @param option The account option.
- * @param values The default list value.
-void purple_account_option_set_list(PurpleAccountOption *option, GList *values);
- * Adds an item to a list account option.
- * @param option The account option.
- * @param value The value.
-void purple_account_option_add_list_item(PurpleAccountOption *option,
- const char *key, const char *value);
- * Returns the specified account option's type.
- * @param option The account option.
- * @return The account option's type.
-PurplePrefType purple_account_option_get_type(const PurpleAccountOption *option);
- * Returns the text for an account option.
- * @param option The account option.
- * @return The account option's text.
-const char *purple_account_option_get_text(const PurpleAccountOption *option);
- * Returns the name of an account option. This corresponds to the @c pref_name
- * parameter supplied to purple_account_option_new() or one of the
- * type-specific constructors.
- * @param option The account option.
- * @return The option's name.
-const char *purple_account_option_get_setting(const PurpleAccountOption *option);
- * Returns the default boolean value for an account option.
- * @param option The account option.
- * @return The default boolean value.
-gboolean purple_account_option_get_default_bool(const PurpleAccountOption *option);
- * Returns the default integer value for an account option.
- * @param option The account option.
- * @return The default integer value.
-int purple_account_option_get_default_int(const PurpleAccountOption *option);
- * Returns the default string value for an account option.
- * @param option The account option.
- * @return The default string value.
-const char *purple_account_option_get_default_string(
- const PurpleAccountOption *option);
- * Returns the default string value for a list account option.
- * @param option The account option.
- * @return The default list string value.
-const char *purple_account_option_get_default_list_value(
- const PurpleAccountOption *option);
- * Returns whether an option's value should be masked from view, like a
- * password. If so, the UI might display each character of the option
- * as a '*' (for example).
- * @param option The account option.
- * @return %TRUE if the option's value should be obscured.
-purple_account_option_get_masked(const PurpleAccountOption *option);
- * Returns the list values for an account option.
- * @param option The account option.
- * @constreturn A list of #PurpleKeyValuePair, mapping the human-readable
- * description of the value to the <tt>(const char *)</tt> that
- * should be passed to purple_account_set_string() to set the
-GList *purple_account_option_get_list(const PurpleAccountOption *option);
-/**************************************************************************/
-/** @name Account User Split API */
-/**************************************************************************/
- * Creates a new account username split.
- * @param text The text of the option.
- * @param default_value The default value.
- * @param sep The field separator.
- * @return The new user split.
-PurpleAccountUserSplit *purple_account_user_split_new(const char *text,
- const char *default_value,
- * Destroys an account username split.
- * @param split The split to destroy.
-void purple_account_user_split_destroy(PurpleAccountUserSplit *split);
- * Returns the text for an account username split.
- * @param split The account username split.
- * @return The account username split's text.
-const char *purple_account_user_split_get_text(const PurpleAccountUserSplit *split);
- * Returns the default string value for an account split.
- * @param split The account username split.
- * @return The default string.
-const char *purple_account_user_split_get_default_value(
- const PurpleAccountUserSplit *split);
- * Returns the field separator for an account split.
- * @param split The account username split.
- * @return The field separator.
-char purple_account_user_split_get_separator(const PurpleAccountUserSplit *split);
- * Returns the 'reverse' value for an account split.
- * @param split The account username split.
- * @return The 'reverse' value.
-gboolean purple_account_user_split_get_reverse(const PurpleAccountUserSplit *split);
- * Sets the 'reverse' value for an account split.
- * @param split The account username split.
- * @param reverse The 'reverse' value
-void purple_account_user_split_set_reverse(PurpleAccountUserSplit *split, gboolean reverse);
-#endif /* _PURPLE_ACCOUNTOPT_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/auth.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
- * @file auth.h Authentication routines
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef PURPLE_JABBER_AUTH_H_
-#define PURPLE_JABBER_AUTH_H_
-typedef struct _JabberSaslMech JabberSaslMech;
- JABBER_SASL_STATE_FAIL = -1, /* Abort, Retry, Fail? */
- JABBER_SASL_STATE_OK = 0, /* Hooray! */
- JABBER_SASL_STATE_CONTINUE = 1 /* More authentication required */
-struct _JabberSaslMech {
- gint8 priority; /* Higher priority will be tried before lower priority */
- JabberSaslState (*start)(JabberStream *js, xmlnode *mechanisms, xmlnode **reply, char **msg);
- JabberSaslState (*handle_challenge)(JabberStream *js, xmlnode *packet, xmlnode **reply, char **msg);
- JabberSaslState (*handle_success)(JabberStream *js, xmlnode *packet, char **msg);
- JabberSaslState (*handle_failure)(JabberStream *js, xmlnode *packet, xmlnode **reply, char **msg);
- void (*dispose)(JabberStream *js);
-void jabber_auth_start(JabberStream *js, xmlnode *packet);
-void jabber_auth_start_old(JabberStream *js);
-void jabber_auth_handle_challenge(JabberStream *js, xmlnode *packet);
-void jabber_auth_handle_success(JabberStream *js, xmlnode *packet);
-void jabber_auth_handle_failure(JabberStream *js, xmlnode *packet);
-JabberSaslMech *jabber_auth_get_plain_mech(void);
-JabberSaslMech *jabber_auth_get_digest_md5_mech(void);
-JabberSaslMech **jabber_auth_get_scram_mechs(gint *count);
-JabberSaslMech *jabber_auth_get_cyrus_mech(void);
-void jabber_auth_add_mech(JabberSaslMech *);
-void jabber_auth_remove_mech(JabberSaslMech *);
-void jabber_auth_init(void);
-void jabber_auth_uninit(void);
-#endif /* PURPLE_JABBER_AUTH_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/blist.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1278 +0,0 @@
- * @file blist.h Buddy List API
- * @see @ref blist-signals
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_BLIST_H_
-#define _PURPLE_BLIST_H_
-/* I can't believe I let ChipX86 inspire me to write good code. -Sean */
-/** @copydoc _PurpleBuddyList */
-typedef struct _PurpleBuddyList PurpleBuddyList;
-/** @copydoc _PurpleBlistUiOps */
-typedef struct _PurpleBlistUiOps PurpleBlistUiOps;
-/** @copydoc _PurpleBlistNode */
-typedef struct _PurpleBlistNode PurpleBlistNode;
-/** @copydoc _PurpleChat */
-typedef struct _PurpleChat PurpleChat;
-/** @copydoc _PurpleGroup */
-typedef struct _PurpleGroup PurpleGroup;
-/** @copydoc _PurpleContact */
-typedef struct _PurpleContact PurpleContact;
-/** @copydoc _PurpleBuddy */
-typedef struct _PurpleBuddy PurpleBuddy;
-/**************************************************************************/
-/**************************************************************************/
- PURPLE_BLIST_GROUP_NODE,
- PURPLE_BLIST_CONTACT_NODE,
- PURPLE_BLIST_BUDDY_NODE,
- PURPLE_BLIST_CHAT_NODE,
- PURPLE_BLIST_OTHER_NODE
-#define PURPLE_BLIST_NODE_IS_CHAT(n) (purple_blist_node_get_type(n) == PURPLE_BLIST_CHAT_NODE)
-#define PURPLE_BLIST_NODE_IS_BUDDY(n) (purple_blist_node_get_type(n) == PURPLE_BLIST_BUDDY_NODE)
-#define PURPLE_BLIST_NODE_IS_CONTACT(n) (purple_blist_node_get_type(n) == PURPLE_BLIST_CONTACT_NODE)
-#define PURPLE_BLIST_NODE_IS_GROUP(n) (purple_blist_node_get_type(n) == PURPLE_BLIST_GROUP_NODE)
-#define PURPLE_BUDDY_IS_ONLINE(b) \
- ((b) != NULL && purple_account_is_connected(purple_buddy_get_account(b)) && \
- purple_presence_is_online(purple_buddy_get_presence(b)))
- PURPLE_BLIST_NODE_FLAG_NO_SAVE = 1 << 0 /**< node should not be saved with the buddy list */
-#define PURPLE_BLIST_NODE(obj) ((PurpleBlistNode *)(obj))
-#define PURPLE_BLIST_NODE_HAS_FLAG(b, f) (purple_blist_node_get_flags((PurpleBlistNode*)(b)) & (f))
-#define PURPLE_BLIST_NODE_SHOULD_SAVE(b) (! PURPLE_BLIST_NODE_HAS_FLAG(b, PURPLE_BLIST_NODE_FLAG_NO_SAVE))
-#define PURPLE_BLIST_NODE_NAME(n) (purple_blist_node_get_type(n) == PURPLE_BLIST_CHAT_NODE ? purple_chat_get_name((PurpleChat*)n) : \
- purple_blist_node_get_type(n) == PURPLE_BLIST_BUDDY_NODE ? purple_buddy_get_name((PurpleBuddy*)n) : NULL)
-#define PURPLE_GROUP(obj) ((PurpleGroup *)(obj))
-#define PURPLE_CONTACT(obj) ((PurpleContact *)(obj))
-#define PURPLE_BUDDY(obj) ((PurpleBuddy *)(obj))
-#define PURPLE_CHAT(obj) ((PurpleChat *)(obj))
-/**************************************************************************/
-/**************************************************************************/
-#if !(defined PURPLE_HIDE_STRUCTS) || (defined _PURPLE_BLIST_C_)
- * A Buddy list node. This can represent a group, a buddy, or anything else.
- * This is a base class for PurpleBuddy, PurpleContact, PurpleGroup, and for
- * anything else that wants to put itself in the buddy list. */
-struct _PurpleBlistNode {
- PurpleBlistNodeType type; /**< The type of node this is */
- PurpleBlistNode *prev; /**< The sibling before this buddy. */
- PurpleBlistNode *next; /**< The sibling after this buddy. */
- PurpleBlistNode *parent; /**< The parent of this node */
- PurpleBlistNode *child; /**< The child of this node */
- GHashTable *settings; /**< per-node settings */
- void *ui_data; /**< The UI can put data here. */
- PurpleBlistNodeFlags flags; /**< The buddy flags */
- * A buddy. This contains everything Purple will ever need to know about someone on the buddy list. Everything.
- PurpleBlistNode node; /**< The node that this buddy inherits from */
- char *name; /**< The name of the buddy. */
- char *alias; /**< The user-set alias of the buddy */
- char *server_alias; /**< The server-specified alias of the buddy. (i.e. MSN "Friendly Names") */
- void *proto_data; /**< This allows the prpl to associate whatever data it wants with a buddy */
- PurpleBuddyIcon *icon; /**< The buddy icon. */
- PurpleAccount *account; /**< the account this buddy belongs to */
- PurplePresence *presence;
- PurpleMediaCaps media_caps; /**< The media capabilities of the buddy. */
- * A contact. This contains everything Purple will ever need to know about a contact.
- PurpleBlistNode node; /**< The node that this contact inherits from. */
- char *alias; /**< The user-set alias of the contact */
- int totalsize; /**< The number of buddies in this contact */
- int currentsize; /**< The number of buddies in this contact corresponding to online accounts */
- int online; /**< The number of buddies in this contact who are currently online */
- PurpleBuddy *priority; /**< The "top" buddy for this contact */
- gboolean priority_valid; /**< Is priority valid? */
- * A group. This contains everything Purple will ever need to know about a group.
- PurpleBlistNode node; /**< The node that this group inherits from */
- char *name; /**< The name of this group. */
- int totalsize; /**< The number of chats and contacts in this group */
- int currentsize; /**< The number of chats and contacts in this group corresponding to online accounts */
- int online; /**< The number of chats and contacts in this group who are currently online */
- * A chat. This contains everything Purple needs to put a chat room in the
- PurpleBlistNode node; /**< The node that this chat inherits from */
- char *alias; /**< The display name of this chat. */
- GHashTable *components; /**< the stuff the protocol needs to know to join the chat */
- PurpleAccount *account; /**< The account this chat is attached to */
-struct _PurpleBuddyList {
- PurpleBlistNode *root; /**< The first node in the buddy list */
- GHashTable *buddies; /**< Every buddy in this list */
- void *ui_data; /**< UI-specific data. */
-#endif /* PURPLE_HIDE_STRUCTS && PURPLE_BLIST_STRUCTS */
- * Buddy list UI operations.
- * Any UI representing a buddy list must assign a filled-out PurpleBlistUiOps
- * structure to the buddy list core.
-struct _PurpleBlistUiOps
- void (*new_list)(PurpleBuddyList *list); /**< Sets UI-specific data on a buddy list. */
- void (*new_node)(PurpleBlistNode *node); /**< Sets UI-specific data on a node. */
- void (*show)(PurpleBuddyList *list); /**< The core will call this when it's finished doing its core stuff */
- void (*update)(PurpleBuddyList *list,
- PurpleBlistNode *node); /**< This will update a node in the buddy list. */
- void (*remove)(PurpleBuddyList *list,
- PurpleBlistNode *node); /**< This removes a node from the list */
- void (*destroy)(PurpleBuddyList *list); /**< When the list is destroyed, this is called to destroy the UI. */
- void (*set_visible)(PurpleBuddyList *list,
- gboolean show); /**< Hides or unhides the buddy list */
- void (*request_add_buddy)(PurpleAccount *account, const char *username,
- const char *group, const char *alias);
- void (*request_add_chat)(PurpleAccount *account, PurpleGroup *group,
- const char *alias, const char *name);
- void (*request_add_group)(void);
- * This is called when a node has been modified and should be saved.
- * Implementation of this UI op is OPTIONAL. If not implemented, it will
- * be set to a fallback function that saves data to blist.xml like in
- * previous libpurple versions.
- * @param node The node which has been modified.
- void (*save_node)(PurpleBlistNode *node);
- * Called when a node is about to be removed from the buddy list.
- * The UI op should update the relevant data structures to remove this
- * node (for example, removing a buddy from the group this node is in).
- * Implementation of this UI op is OPTIONAL. If not implemented, it will
- * be set to a fallback function that saves data to blist.xml like in
- * previous libpurple versions.
- * @param node The node which has been modified.
- void (*remove_node)(PurpleBlistNode *node);
- * Called to save all the data for an account. If the UI sets this,
- * the callback must save the privacy and buddy list data for an account.
- * If the account is NULL, save the data for all accounts.
- * Implementation of this UI op is OPTIONAL. If not implemented, it will
- * be set to a fallback function that saves data to blist.xml like in
- * previous libpurple versions.
- * @param account The account whose data to save. If NULL, save all data
- void (*save_account)(PurpleAccount *account);
- void (*_purple_reserved1)(void);
-/**************************************************************************/
-/** @name Buddy List API */
-/**************************************************************************/
- * Creates a new buddy list
- * @return The new buddy list.
- * @deprecated In 3.0.0, this will be handled by purple_blist_init()
-PurpleBuddyList *purple_blist_new(void);
- * Sets the main buddy list.
- * @param blist The buddy list you want to use.
- * @deprecated In 3.0.0, this will be handled by purple_blist_init()
-void purple_set_blist(PurpleBuddyList *blist);
- * Returns the main buddy list.
- * @return The main buddy list.
-PurpleBuddyList *purple_get_blist(void);
- * Returns the root node of the main buddy list.
- * @return The root node.
-PurpleBlistNode *purple_blist_get_root(void);
- * Returns a list of every buddy in the list. Use of this function is
- * discouraged if you do not actually need every buddy in the list. Use
- * purple_find_buddies instead.
- * @return A list of every buddy in the list. Caller is responsible for
- * @see purple_find_buddies
-GSList *purple_blist_get_buddies(void);
- * Returns the UI data for the list.
- * @return The UI data for the list.
-gpointer purple_blist_get_ui_data(void);
- * Sets the UI data for the list.
- * @param ui_data The UI data for the list.
-void purple_blist_set_ui_data(gpointer ui_data);
- * Returns the next node of a given node. This function is to be used to iterate
- * over the tree returned by purple_get_blist.
- * @param offline Whether to include nodes for offline accounts
- * @return The next node
- * @see purple_blist_node_get_parent
- * @see purple_blist_node_get_first_child
- * @see purple_blist_node_get_sibling_next
- * @see purple_blist_node_get_sibling_prev
-PurpleBlistNode *purple_blist_node_next(PurpleBlistNode *node, gboolean offline);
- * Returns the parent node of a given node.
- * @return The parent node.
- * @see purple_blist_node_get_first_child
- * @see purple_blist_node_get_sibling_next
- * @see purple_blist_node_get_sibling_prev
- * @see purple_blist_node_next
-PurpleBlistNode *purple_blist_node_get_parent(PurpleBlistNode *node);
- * Returns the the first child node of a given node.
- * @return The child node.
- * @see purple_blist_node_get_parent
- * @see purple_blist_node_get_sibling_next
- * @see purple_blist_node_get_sibling_prev
- * @see purple_blist_node_next
-PurpleBlistNode *purple_blist_node_get_first_child(PurpleBlistNode *node);
- * Returns the sibling node of a given node.
- * @return The sibling node.
- * @see purple_blist_node_get_parent
- * @see purple_blist_node_get_first_child
- * @see purple_blist_node_get_sibling_prev
- * @see purple_blist_node_next
-PurpleBlistNode *purple_blist_node_get_sibling_next(PurpleBlistNode *node);
- * Returns the previous sibling node of a given node.
- * @return The sibling node.
- * @see purple_blist_node_get_parent
- * @see purple_blist_node_get_first_child
- * @see purple_blist_node_get_sibling_next
- * @see purple_blist_node_next
-PurpleBlistNode *purple_blist_node_get_sibling_prev(PurpleBlistNode *node);
- * Returns the UI data of a given node.
- * @param node The node.
-gpointer purple_blist_node_get_ui_data(const PurpleBlistNode *node);
- * Sets the UI data of a given node.
- * @param node The node.
- * @param ui_data The UI data.
-void purple_blist_node_set_ui_data(PurpleBlistNode *node, gpointer ui_data);
- * Shows the buddy list, creating a new one if necessary.
-void purple_blist_show(void);
- * Destroys the buddy list window.
- * @deprecated The UI is responsible for cleaning up the
- * PurpleBuddyList->ui_data. purple_blist_uninit() will free the
- * PurpleBuddyList* itself.
-void purple_blist_destroy(void);
- * Hides or unhides the buddy list.
- * @param show Whether or not to show the buddy list
-void purple_blist_set_visible(gboolean show);
- * Updates a buddy's status.
- * This should only be called from within Purple.
- * @param buddy The buddy whose status has changed.
- * @param old_status The status from which we are changing.
-void purple_blist_update_buddy_status(PurpleBuddy *buddy, PurpleStatus *old_status);
- * Updates a node's custom icon.
- * @param node The PurpleBlistNode whose custom icon has changed.
-void purple_blist_update_node_icon(PurpleBlistNode *node);
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_BLIST_C_)
- * Updates a buddy's icon.
- * @param buddy The buddy whose buddy icon has changed
- * @deprecated Use purple_blist_update_node_icon() instead.
-void purple_blist_update_buddy_icon(PurpleBuddy *buddy);
- * Renames a buddy in the buddy list.
- * @param buddy The buddy whose name will be changed.
- * @param name The new name of the buddy.
-void purple_blist_rename_buddy(PurpleBuddy *buddy, const char *name);
- * Aliases a contact in the buddy list.
- * @param contact The contact whose alias will be changed.
- * @param alias The contact's alias.
-void purple_blist_alias_contact(PurpleContact *contact, const char *alias);
- * Aliases a buddy in the buddy list.
- * @param buddy The buddy whose alias will be changed.
- * @param alias The buddy's alias.
-void purple_blist_alias_buddy(PurpleBuddy *buddy, const char *alias);
- * Sets the server-sent alias of a buddy in the buddy list.
- * PRPLs should call serv_got_alias() instead of this.
- * @param buddy The buddy whose alias will be changed.
- * @param alias The buddy's "official" alias.
-void purple_blist_server_alias_buddy(PurpleBuddy *buddy, const char *alias);
- * Aliases a chat in the buddy list.
- * @param chat The chat whose alias will be changed.
- * @param alias The chat's new alias.
-void purple_blist_alias_chat(PurpleChat *chat, const char *alias);
- * @param group The group to rename
- * @param name The new name
-void purple_blist_rename_group(PurpleGroup *group, const char *name);
- * Creates a new chat for the buddy list
- * @param account The account this chat will get added to
- * @param alias The alias of the new chat
- * @param components The info the prpl needs to join the chat. The
- * hash function should be g_str_hash() and the
- * equal function should be g_str_equal().
- * @return A newly allocated chat
-PurpleChat *purple_chat_new(PurpleAccount *account, const char *alias, GHashTable *components);
- * @param chat The chat to destroy
-void purple_chat_destroy(PurpleChat *chat);
- * Adds a new chat to the buddy list.
- * The chat will be inserted right after node or appended to the end
- * of group if node is NULL. If both are NULL, the buddy will be added to
- * @param chat The new chat who gets added
- * @param group The group to add the new chat to.
- * @param node The insertion point
-void purple_blist_add_chat(PurpleChat *chat, PurpleGroup *group, PurpleBlistNode *node);
- * This function only creates the PurpleBuddy. Use purple_blist_add_buddy
- * to add the buddy to the list and purple_account_add_buddy to sync up
- * @param account The account this buddy will get added to
- * @param name The name of the new buddy
- * @param alias The alias of the new buddy (or NULL if unaliased)
- * @return A newly allocated buddy
- * @see purple_account_add_buddy
- * @see purple_blist_add_buddy
-PurpleBuddy *purple_buddy_new(PurpleAccount *account, const char *name, const char *alias);
- * @param buddy The buddy to destroy
-void purple_buddy_destroy(PurpleBuddy *buddy);
- * This should only be called from within Purple. You probably want to
- * call purple_buddy_icon_set_data().
- * @param buddy The buddy.
- * @param icon The buddy icon.
- * @see purple_buddy_icon_set_data()
-void purple_buddy_set_icon(PurpleBuddy *buddy, PurpleBuddyIcon *icon);
- * Returns a buddy's account.
- * @param buddy The buddy.
-PurpleAccount *purple_buddy_get_account(const PurpleBuddy *buddy);
- * Returns a buddy's name
- * @param buddy The buddy.
-const char *purple_buddy_get_name(const PurpleBuddy *buddy);
- * Returns a buddy's icon.
- * @param buddy The buddy.
- * @return The buddy icon.
-PurpleBuddyIcon *purple_buddy_get_icon(const PurpleBuddy *buddy);
- * Returns a buddy's protocol-specific data.
- * This should only be called from the associated prpl.
- * @param buddy The buddy.
- * @return The protocol data.
- * @see purple_buddy_set_protocol_data()
-gpointer purple_buddy_get_protocol_data(const PurpleBuddy *buddy);
- * Sets a buddy's protocol-specific data.
- * This should only be called from the associated prpl.
- * @param buddy The buddy.
- * @param data The data.
- * @see purple_buddy_get_protocol_data()
-void purple_buddy_set_protocol_data(PurpleBuddy *buddy, gpointer data);
- * Returns a buddy's contact.
- * @param buddy The buddy.
- * @return The buddy's contact.
-PurpleContact *purple_buddy_get_contact(PurpleBuddy *buddy);
- * Returns a buddy's presence.
- * @param buddy The buddy.
- * @return The buddy's presence.
-PurplePresence *purple_buddy_get_presence(const PurpleBuddy *buddy);
- * Gets the media caps from a buddy.
- * @param buddy The buddy.
- * @return The media caps.
-PurpleMediaCaps purple_buddy_get_media_caps(const PurpleBuddy *buddy);
- * Sets the media caps for a buddy.
- * @param buddy The PurpleBuddy.
- * @param media_caps The PurpleMediaCaps.
-void purple_buddy_set_media_caps(PurpleBuddy *buddy, PurpleMediaCaps media_caps);
- * Adds a new buddy to the buddy list.
- * The buddy will be inserted right after node or prepended to the
- * group if node is NULL. If both are NULL, the buddy will be added to
- * @param buddy The new buddy who gets added
- * @param contact The optional contact to place the buddy in.
- * @param group The group to add the new buddy to.
- * @param node The insertion point. Pass in NULL to add the node as
- * the first child in the given group.
-void purple_blist_add_buddy(PurpleBuddy *buddy, PurpleContact *contact, PurpleGroup *group, PurpleBlistNode *node);
- * You can't have more than one group with the same name. Sorry. If you pass
- * this the name of a group that already exists, it will return that group.
- * @param name The name of the new group
- * @return A new group struct
-PurpleGroup *purple_group_new(const char *name);
- * @param group The group to destroy
-void purple_group_destroy(PurpleGroup *group);
- * Adds a new group to the buddy list.
- * The new group will be inserted after insert or prepended to the list if
- * @param group The group
- * @param node The insertion point
-void purple_blist_add_group(PurpleGroup *group, PurpleBlistNode *node);
- * Creates a new contact
- * @return A new contact struct
-PurpleContact *purple_contact_new(void);
- * @param contact The contact to destroy
-void purple_contact_destroy(PurpleContact *contact);
- * Gets the PurpleGroup from a PurpleContact
- * @param contact The contact
-PurpleGroup *purple_contact_get_group(const PurpleContact *contact);
- * Adds a new contact to the buddy list.
- * The new contact will be inserted after insert or prepended to the list if
- * @param contact The contact
- * @param group The group to add the contact to
- * @param node The insertion point
-void purple_blist_add_contact(PurpleContact *contact, PurpleGroup *group, PurpleBlistNode *node);
- * All of the buddies from source will be moved to target
- * @param source The contact to merge
- * @param node The place to merge to (a buddy or contact)
-void purple_blist_merge_contact(PurpleContact *source, PurpleBlistNode *node);
- * Returns the highest priority buddy for a given contact.
- * @param contact The contact
- * @return The highest priority buddy
-PurpleBuddy *purple_contact_get_priority_buddy(PurpleContact *contact);
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_BLIST_C_)
- * Sets the alias for a contact.
- * @param contact The contact
- * @param alias The alias to set, or NULL to unset
- * @deprecated Use purple_blist_alias_contact() instead.
-void purple_contact_set_alias(PurpleContact *contact, const char *alias);
- * Gets the alias for a contact.
- * @param contact The contact
- * @return The alias, or NULL if it is not set.
-const char *purple_contact_get_alias(PurpleContact *contact);
- * Determines whether an account owns any buddies in a given contact
- * @param contact The contact to search through.
- * @param account The account.
- * @return TRUE if there are any buddies from account in the contact, or FALSE otherwise.
-gboolean purple_contact_on_account(PurpleContact *contact, PurpleAccount *account);
- * Invalidates the priority buddy so that the next call to
- * purple_contact_get_priority_buddy recomputes it.
- * @param contact The contact
-void purple_contact_invalidate_priority_buddy(PurpleContact *contact);
- * Removes a buddy from the buddy list and frees the memory allocated to it.
- * This doesn't actually try to remove the buddy from the server list.
- * @param buddy The buddy to be removed
- * @see purple_account_remove_buddy
-void purple_blist_remove_buddy(PurpleBuddy *buddy);
- * Removes a contact, and any buddies it contains, and frees the memory
- * allocated to it. This calls purple_blist_remove_buddy and therefore
- * doesn't remove the buddies from the server list.
- * @param contact The contact to be removed
- * @see purple_blist_remove_buddy
-void purple_blist_remove_contact(PurpleContact *contact);
- * Removes a chat from the buddy list and frees the memory allocated to it.
- * @param chat The chat to be removed
-void purple_blist_remove_chat(PurpleChat *chat);
- * Removes a group from the buddy list and frees the memory allocated to it and to
- * @param group The group to be removed
-void purple_blist_remove_group(PurpleGroup *group);
- * Returns the alias of a buddy.
- * @param buddy The buddy whose name will be returned.
- * @return The alias (if set), server alias (if set),
-const char *purple_buddy_get_alias_only(PurpleBuddy *buddy);
- * Gets the server alias for a buddy.
- * @param buddy The buddy whose name will be returned
- * @return The server alias, or NULL if it is not set.
-const char *purple_buddy_get_server_alias(PurpleBuddy *buddy);
- * Returns the correct name to display for a buddy, taking the contact alias
- * into account. In order of precedence: the buddy's alias; the buddy's
- * contact alias; the buddy's server alias; the buddy's user name.
- * @param buddy The buddy whose name will be returned
- * @return The appropriate name or alias, or NULL.
-const char *purple_buddy_get_contact_alias(PurpleBuddy *buddy);
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_BLIST_C_)
- * Returns the correct alias for this user, ignoring server aliases. Used
- * when a user-recognizable name is required. In order: buddy's alias; buddy's
- * contact alias; buddy's user name.
- * @param buddy The buddy whose alias will be returned.
- * @return The appropriate name or alias.
- * @deprecated Try purple_buddy_get_alias(), if server aliases are okay.
-const char *purple_buddy_get_local_alias(PurpleBuddy *buddy);
- * Returns the correct name to display for a buddy. In order of precedence:
- * the buddy's alias; the buddy's server alias; the buddy's contact alias;
- * the buddy's user name.
- * @param buddy The buddy whose name will be returned.
- * @return The appropriate name or alias, or NULL
-const char *purple_buddy_get_alias(PurpleBuddy *buddy);
- * Returns the local alias for the buddy, or @c NULL if none exists.
- * @param buddy The buddy
- * @return The local alias for the buddy
-const char *purple_buddy_get_local_buddy_alias(PurpleBuddy *buddy);
- * Returns the correct name to display for a blist chat.
- * @param chat The chat whose name will be returned.
- * @return The alias (if set), or first component value.
-const char *purple_chat_get_name(PurpleChat *chat);
- * Finds the buddy struct given a name and an account
- * @param account The account this buddy belongs to
- * @param name The buddy's name
- * @return The buddy or NULL if the buddy does not exist
-PurpleBuddy *purple_find_buddy(PurpleAccount *account, const char *name);
- * Finds the buddy struct given a name, an account, and a group
- * @param account The account this buddy belongs to
- * @param name The buddy's name
- * @param group The group to look in
- * @return The buddy or NULL if the buddy does not exist in the group
-PurpleBuddy *purple_find_buddy_in_group(PurpleAccount *account, const char *name,
- * Finds all PurpleBuddy structs given a name and an account
- * @param account The account this buddy belongs to
- * @param name The buddy's name (or NULL to return all buddies for the account)
- * @return A GSList of buddies (which must be freed), or NULL if the buddy doesn't exist
-GSList *purple_find_buddies(PurpleAccount *account, const char *name);
- * Finds a group by name
- * @param name The group's name
- * @return The group or NULL if the group does not exist
-PurpleGroup *purple_find_group(const char *name);
- * Finds a chat by name.
- * @param account The chat's account.
- * @param name The chat's name.
- * @return The chat, or @c NULL if the chat does not exist.
-PurpleChat *purple_blist_find_chat(PurpleAccount *account, const char *name);
- * Returns the group of which the chat is a member.
- * @param chat The chat.
- * @return The parent group, or @c NULL if the chat is not in a group.
-PurpleGroup *purple_chat_get_group(PurpleChat *chat);
- * Returns the account the chat belongs to.
- * @param chat The chat.
- * @return The account the chat belongs to.
-PurpleAccount *purple_chat_get_account(PurpleChat *chat);
- * Get a hashtable containing information about a chat.
- * @param chat The chat.
- * @constreturn The hashtable.
-GHashTable *purple_chat_get_components(PurpleChat *chat);
- * Returns the group of which the buddy is a member.
- * @param buddy The buddy
- * @return The group or NULL if the buddy is not in a group
-PurpleGroup *purple_buddy_get_group(PurpleBuddy *buddy);
- * Returns a list of accounts that have buddies in this group
- * @return A GSList of accounts (which must be freed), or NULL if the group
-GSList *purple_group_get_accounts(PurpleGroup *g);
- * Determines whether an account owns any buddies in a given group
- * @param g The group to search through.
- * @param account The account.
- * @return TRUE if there are any buddies in the group, or FALSE otherwise.
-gboolean purple_group_on_account(PurpleGroup *g, PurpleAccount *account);
- * Returns the name of a group.
- * @param group The group.
- * @return The name of the group.
-const char *purple_group_get_name(PurpleGroup *group);
- * Called when an account connects. Tells the UI to update all the
- * @param account The account
-void purple_blist_add_account(PurpleAccount *account);
- * Called when an account disconnects. Sets the presence of all the buddies to 0
- * and tells the UI to update them.
- * @param account The account
-void purple_blist_remove_account(PurpleAccount *account);
- * Determines the total size of a group
- * @param group The group
- * @param offline Count buddies in offline accounts
- * @return The number of buddies in the group
-int purple_blist_get_group_size(PurpleGroup *group, gboolean offline);
- * Determines the number of online buddies in a group
- * @param group The group
- * @return The number of online buddies in the group, or 0 if the group is NULL
-int purple_blist_get_group_online_count(PurpleGroup *group);
-/****************************************************************************************/
-/** @name Buddy list file management API */
-/****************************************************************************************/
- * Loads the buddy list from ~/.purple/blist.xml.
-void purple_blist_load(void);
- * Schedule a save of the blist.xml file. This is used by the privacy
- * API whenever the privacy settings are changed. If you make a change
- * to blist.xml using one of the functions in the buddy list API, then
- * the buddy list is saved automatically, so you should not need to
-void purple_blist_schedule_save(void);
- * Requests from the user information needed to add a buddy to the
- * @param account The account the buddy is added to.
- * @param username The username of the buddy.
- * @param group The name of the group to place the buddy in.
- * @param alias The optional alias for the buddy.
-void purple_blist_request_add_buddy(PurpleAccount *account, const char *username,
- const char *group, const char *alias);
- * Requests from the user information needed to add a chat to the
- * @param account The account the buddy is added to.
- * @param group The optional group to add the chat to.
- * @param alias The optional alias for the chat.
- * @param name The required chat name.
-void purple_blist_request_add_chat(PurpleAccount *account, PurpleGroup *group,
- const char *alias, const char *name);
- * Requests from the user information needed to add a group to the
-void purple_blist_request_add_group(void);
- * Associates a boolean with a node in the buddy list
- * @param node The node to associate the data with
- * @param key The identifier for the data
- * @param value The value to set
-void purple_blist_node_set_bool(PurpleBlistNode *node, const char *key, gboolean value);
- * Retrieves a named boolean setting from a node in the buddy list
- * @param node The node to retrieve the data from
- * @param key The identifier of the data
- * @return The value, or FALSE if there is no setting
-gboolean purple_blist_node_get_bool(PurpleBlistNode *node, const char *key);
- * Associates an integer with a node in the buddy list
- * @param node The node to associate the data with
- * @param key The identifier for the data
- * @param value The value to set
-void purple_blist_node_set_int(PurpleBlistNode *node, const char *key, int value);
- * Retrieves a named integer setting from a node in the buddy list
- * @param node The node to retrieve the data from
- * @param key The identifier of the data
- * @return The value, or 0 if there is no setting
-int purple_blist_node_get_int(PurpleBlistNode *node, const char *key);
- * Associates a string with a node in the buddy list
- * @param node The node to associate the data with
- * @param key The identifier for the data
- * @param value The value to set
-void purple_blist_node_set_string(PurpleBlistNode *node, const char *key,
- * Retrieves a named string setting from a node in the buddy list
- * @param node The node to retrieve the data from
- * @param key The identifier of the data
- * @return The value, or NULL if there is no setting
-const char *purple_blist_node_get_string(PurpleBlistNode *node, const char *key);
- * Removes a named setting from a blist node
- * @param node The node from which to remove the setting
- * @param key The name of the setting
-void purple_blist_node_remove_setting(PurpleBlistNode *node, const char *key);
- * Set the flags for the given node. Setting a node's flags will overwrite
- * the old flags, so if you want to save them, you must first call
- * purple_blist_node_get_flags and modify that appropriately.
- * @param node The node on which to set the flags.
- * @param flags The flags to set. This is a bitmask.
-void purple_blist_node_set_flags(PurpleBlistNode *node, PurpleBlistNodeFlags flags);
- * Get the current flags on a given node.
- * @param node The node from which to get the flags.
- * @return The flags on the node. This is a bitmask.
-PurpleBlistNodeFlags purple_blist_node_get_flags(PurpleBlistNode *node);
- * Get the type of a given node.
- * @param node The node.
- * @return The type of the node.
-PurpleBlistNodeType purple_blist_node_get_type(PurpleBlistNode *node);
- * Retrieves the extended menu items for a buddy list node.
- * @param n The blist node for which to obtain the extended menu items.
- * @return A list of PurpleMenuAction items, as harvested by the
- * blist-node-extended-menu signal.
-GList *purple_blist_node_get_extended_menu(PurpleBlistNode *n);
-/**************************************************************************/
-/** @name UI Registration Functions */
-/**************************************************************************/
- * Sets the UI operations structure to be used for the buddy list.
- * @param ops The ops struct.
-void purple_blist_set_ui_ops(PurpleBlistUiOps *ops);
- * Returns the UI operations structure to be used for the buddy list.
- * @return The UI operations structure.
-PurpleBlistUiOps *purple_blist_get_ui_ops(void);
-/**************************************************************************/
-/** @name Buddy List Subsystem */
-/**************************************************************************/
- * Returns the handle for the buddy list subsystem.
- * @return The buddy list subsystem handle.
-void *purple_blist_get_handle(void);
- * Initializes the buddy list subsystem.
-void purple_blist_init(void);
- * Uninitializes the buddy list subsystem.
-void purple_blist_uninit(void);
-#endif /* _PURPLE_BLIST_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/bosh.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
- * @file bosh.h Bidirectional-streams over Synchronous HTTP (BOSH) (XEP-0124 and XEP-0206)
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef PURPLE_JABBER_BOSH_H_
-#define PURPLE_JABBER_BOSH_H_
-typedef struct _PurpleBOSHConnection PurpleBOSHConnection;
-void jabber_bosh_init(void);
-void jabber_bosh_uninit(void);
-PurpleBOSHConnection* jabber_bosh_connection_init(JabberStream *js, const char *url);
-void jabber_bosh_connection_destroy(PurpleBOSHConnection *conn);
-gboolean jabber_bosh_connection_is_ssl(PurpleBOSHConnection *conn);
-void jabber_bosh_connection_send_keepalive(PurpleBOSHConnection *conn);
-void jabber_bosh_connection_connect(PurpleBOSHConnection *conn);
-void jabber_bosh_connection_close(PurpleBOSHConnection *conn);
-void jabber_bosh_connection_send_raw(PurpleBOSHConnection *conn, const char *data);
-#endif /* PURPLE_JABBER_BOSH_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/buddy.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,125 +0,0 @@
- * @file buddy.h Buddy handlers
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef PURPLE_JABBER_BUDDY_H_
-#define PURPLE_JABBER_BUDDY_H_
-typedef struct _JabberBuddy JabberBuddy;
- * A sorted list of resources in priority descending order.
- * This means that the first resource in the list is the
- * "most available" (see resource_compare_cb in buddy.c for
- * details). Don't play with this yourself, let
- * jabber_buddy_track_resource and jabber_buddy_remove_resource do it.
- JABBER_INVISIBLE_NONE = 0,
- JABBER_INVISIBLE_SERVER = 1 << 1,
- JABBER_INVIS_BUDDY = 1 << 2
- JABBER_SUB_PENDING = 1 << 1,
- JABBER_SUB_TO = 1 << 2,
- JABBER_SUB_FROM = 1 << 3,
- JABBER_SUB_BOTH = (JABBER_SUB_TO | JABBER_SUB_FROM),
- JABBER_SUB_REMOVE = 1 << 4
-typedef struct _JabberAdHocCommands {
-typedef struct _JabberBuddyResource {
- JabberBuddyState state;
- JabberCapabilities capabilities;
- JABBER_CHAT_STATES_UNKNOWN,
- JABBER_CHAT_STATES_UNSUPPORTED,
- JABBER_CHAT_STATES_SUPPORTED
- /* tz_off == PURPLE_NO_TZ_OFF when unset */
- JabberCapsClientInfo *info;
- gboolean commands_fetched;
-void jabber_buddy_free(JabberBuddy *jb);
-JabberBuddy *jabber_buddy_find(JabberStream *js, const char *name,
-JabberBuddyResource *jabber_buddy_find_resource(JabberBuddy *jb,
-JabberBuddyResource *jabber_buddy_track_resource(JabberBuddy *jb, const char *resource,
- int priority, JabberBuddyState state, const char *status);
-void jabber_buddy_remove_resource(JabberBuddy *jb, const char *resource);
-void jabber_buddy_get_info(PurpleConnection *gc, const char *who);
-GList *jabber_blist_node_menu(PurpleBlistNode *node);
-void jabber_set_info(PurpleConnection *gc, const char *info);
-void jabber_setup_set_info(PurplePluginAction *action);
-void jabber_set_buddy_icon(PurpleConnection *gc, PurpleStoredImage *img);
-void jabber_user_search(JabberStream *js, const char *directory);
-void jabber_user_search_begin(PurplePluginAction *);
-void jabber_buddy_remove_all_pending_buddy_info_requests(JabberStream *js);
-void jabber_vcard_fetch_mine(JabberStream *js);
-gboolean jabber_resource_know_capabilities(const JabberBuddyResource *jbr);
-gboolean jabber_resource_has_capability(const JabberBuddyResource *jbr,
-gboolean jabber_buddy_has_capability(const JabberBuddy *jb, const gchar *cap);
-jabber_resource_get_identity_category_type(const JabberBuddyResource *jbr,
- const gchar *category);
-#endif /* PURPLE_JABBER_BUDDY_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/buddyicon.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,441 +0,0 @@
- * @file buddyicon.h Buddy Icon API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_BUDDYICON_H_
-#define _PURPLE_BUDDYICON_H_
-/** An opaque structure representing a buddy icon for a particular user on a
- * particular #PurpleAccount. Instances are reference-counted; use
- * purple_buddy_icon_ref() and purple_buddy_icon_unref() to take and release
-typedef struct _PurpleBuddyIcon PurpleBuddyIcon;
-/**************************************************************************/
-/** @name Buddy Icon API */
-/**************************************************************************/
- * Creates a new buddy icon structure and populates it.
- * If the buddy icon already exists, you'll get a reference to that structure,
- * which will have been updated with the data supplied.
- * @param account The account the user is on.
- * @param username The username the icon belongs to.
- * @param icon_data The buddy icon data.
- * @param icon_len The buddy icon length.
- * @param checksum A protocol checksum from the prpl or @c NULL.
- * @return The buddy icon structure, with a reference for the caller.
-PurpleBuddyIcon *purple_buddy_icon_new(PurpleAccount *account, const char *username,
- void *icon_data, size_t icon_len,
- * Increments the reference count on a buddy icon.
- * @param icon The buddy icon.
-PurpleBuddyIcon *purple_buddy_icon_ref(PurpleBuddyIcon *icon);
- * Decrements the reference count on a buddy icon.
- * If the reference count reaches 0, the icon will be destroyed.
- * @param icon The buddy icon.
- * @return @a icon, or @c NULL if the reference count reached 0.
-PurpleBuddyIcon *purple_buddy_icon_unref(PurpleBuddyIcon *icon);
- * Updates every instance of this icon.
- * @param icon The buddy icon.
-void purple_buddy_icon_update(PurpleBuddyIcon *icon);
- * Sets the buddy icon's data.
- * @param icon The buddy icon.
- * @param data The buddy icon data, which the buddy icon code
- * takes ownership of and will free.
- * @param len The length of the data in @a data.
- * @param checksum A protocol checksum from the prpl or @c NULL.
-purple_buddy_icon_set_data(PurpleBuddyIcon *icon, guchar *data,
- size_t len, const char *checksum);
- * Returns the buddy icon's account.
- * @param icon The buddy icon.
-PurpleAccount *purple_buddy_icon_get_account(const PurpleBuddyIcon *icon);
- * Returns the buddy icon's username.
- * @param icon The buddy icon.
- * @return The username.
-const char *purple_buddy_icon_get_username(const PurpleBuddyIcon *icon);
- * Returns the buddy icon's checksum.
- * This function is really only for prpl use.
- * @param icon The buddy icon.
- * @return The checksum.
-const char *purple_buddy_icon_get_checksum(const PurpleBuddyIcon *icon);
- * Returns the buddy icon's data.
- * @param icon The buddy icon.
- * @param len If not @c NULL, the length of the icon data returned will be
- * set in the location pointed to by this.
- * @return A pointer to the icon data.
-gconstpointer purple_buddy_icon_get_data(const PurpleBuddyIcon *icon, size_t *len);
- * Returns an extension corresponding to the buddy icon's file type.
- * @param icon The buddy icon.
- * @return The icon's extension, "icon" if unknown, or @c NULL if
- * the image data has disappeared.
-const char *purple_buddy_icon_get_extension(const PurpleBuddyIcon *icon);
- * Returns a full path to an icon.
- * If the icon has data and the file exists in the cache, this will return
- * a full path to the cache file.
- * In general, it is not appropriate to be poking in the icon cache
- * directly. If you find yourself wanting to use this function, think
- * very long and hard about it, and then don't.
- * @param icon The buddy icon
- * @return A full path to the file, or @c NULL under various conditions.
-char *purple_buddy_icon_get_full_path(PurpleBuddyIcon *icon);
-/**************************************************************************/
-/** @name Buddy Icon Subsystem API */
-/**************************************************************************/
- * Sets a buddy icon for a user.
- * @param account The account the user is on.
- * @param username The username of the user.
- * @param icon_data The buddy icon data, which the buddy icon code
- * takes ownership of and will free.
- * @param icon_len The length of the icon data.
- * @param checksum A protocol checksum from the prpl or @c NULL.
-purple_buddy_icons_set_for_user(PurpleAccount *account, const char *username,
- void *icon_data, size_t icon_len,
- * Returns the checksum for the buddy icon of a specified buddy.
- * This avoids loading the icon image data from the cache if it's
- * not already loaded for some other reason.
- * @param buddy The buddy
- * @return The checksum.
-purple_buddy_icons_get_checksum_for_user(PurpleBuddy *buddy);
- * Returns the buddy icon information for a user.
- * @param account The account the user is on.
- * @param username The username of the user.
- * @return The icon (with a reference for the caller) if found, or @c NULL if
-purple_buddy_icons_find(PurpleAccount *account, const char *username);
- * Returns the buddy icon image for an account.
- * The caller owns a reference to the image in the store, and must dereference
- * the image with purple_imgstore_unref() for it to be freed.
- * This function deals with loading the icon from the cache, if
- * needed, so it should be called in any case where you want the
- * @param account The account
- * @return The account's buddy icon image.
-purple_buddy_icons_find_account_icon(PurpleAccount *account);
- * Sets a buddy icon for an account.
- * This function will deal with saving a record of the icon,
- * caching the data, etc.
- * @param account The account for which to set a custom icon.
- * @param icon_data The image data of the icon, which the
- * buddy icon code will free.
- * @param icon_len The length of the data in @a icon_data.
- * @return The icon that was set. The caller does NOT own
- * a reference to this, and must call purple_imgstore_ref()
-purple_buddy_icons_set_account_icon(PurpleAccount *account,
- guchar *icon_data, size_t icon_len);
- * Returns the timestamp of when the icon was set.
- * This is intended for use in protocols that require a timestamp for
- * buddy icon update reasons.
- * @param account The account
- * @return The time the icon was set, or 0 if an error occurred.
-purple_buddy_icons_get_account_icon_timestamp(PurpleAccount *account);
- * Returns a boolean indicating if a given blist node has a custom buddy icon.
- * @param node The blist node.
- * @return A boolean indicating if @a node has a custom buddy icon.
-purple_buddy_icons_node_has_custom_icon(PurpleBlistNode *node);
- * Returns the custom buddy icon image for a blist node.
- * The caller owns a reference to the image in the store, and must dereference
- * the image with purple_imgstore_unref() for it to be freed.
- * This function deals with loading the icon from the cache, if
- * needed, so it should be called in any case where you want the
- * @param node The node.
- * @return The custom buddy icon.
-purple_buddy_icons_node_find_custom_icon(PurpleBlistNode *node);
- * Sets a custom buddy icon for a blist node.
- * This function will deal with saving a record of the icon, caching the data,
- * @param node The blist node for which to set a custom icon.
- * @param icon_data The image data of the icon, which the buddy icon code will
- * free. Use NULL to unset the icon.
- * @param icon_len The length of the data in @a icon_data.
- * @return The icon that was set. The caller does NOT own a reference to this,
- * and must call purple_imgstore_ref() if it wants one.
-purple_buddy_icons_node_set_custom_icon(PurpleBlistNode *node,
- guchar *icon_data, size_t icon_len);
- * Sets a custom buddy icon for a blist node.
- * Convenience wrapper around purple_buddy_icons_node_set_custom_icon.
- * @see purple_buddy_icons_node_set_custom_icon()
- * @param node The blist node for which to set a custom icon.
- * @param filename The path to the icon to set for the blist node. Use NULL
- * to unset the custom icon.
- * @return The icon that was set. The caller does NOT own a reference to this,
- * and must call purple_imgstore_ref() if it wants one.
-purple_buddy_icons_node_set_custom_icon_from_file(PurpleBlistNode *node,
- const gchar *filename);
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_BUDDYICON_C_)
- * PurpleContact version of purple_buddy_icons_node_has_custom_icon.
- * @copydoc purple_buddy_icons_node_has_custom_icon()
- * @deprecated Use purple_buddy_icons_node_has_custom_icon instead.
-purple_buddy_icons_has_custom_icon(PurpleContact *contact);
- * PurpleContact version of purple_buddy_icons_node_find_custom_icon.
- * @copydoc purple_buddy_icons_node_find_custom_icon()
- * @deprecated Use purple_buddy_icons_node_find_custom_icon instead.
-purple_buddy_icons_find_custom_icon(PurpleContact *contact);
- * PurpleContact version of purple_buddy_icons_node_set_custom_icon.
- * @copydoc purple_buddy_icons_node_set_custom_icon()
- * @deprecated Use purple_buddy_icons_node_set_custom_icon instead.
-purple_buddy_icons_set_custom_icon(PurpleContact *contact,
- guchar *icon_data, size_t icon_len);
- * Sets whether or not buddy icon caching is enabled.
- * @param caching TRUE of buddy icon caching should be enabled, or
-void purple_buddy_icons_set_caching(gboolean caching);
- * Returns whether or not buddy icon caching should be enabled.
- * The default is TRUE, unless otherwise specified by
- * purple_buddy_icons_set_caching().
- * @return TRUE if buddy icon caching is enabled, or FALSE otherwise.
-gboolean purple_buddy_icons_is_caching(void);
- * Sets the directory used to store buddy icon cache files.
- * @param cache_dir The directory to store buddy icon cache files to.
-void purple_buddy_icons_set_cache_dir(const char *cache_dir);
- * Returns the directory used to store buddy icon cache files.
- * The default directory is PURPLEDIR/icons, unless otherwise specified
- * by purple_buddy_icons_set_cache_dir().
- * @return The directory to store buddy icon cache files to.
-const char *purple_buddy_icons_get_cache_dir(void);
- * Returns the buddy icon subsystem handle.
- * @return The subsystem handle.
-void *purple_buddy_icons_get_handle(void);
- * Initializes the buddy icon subsystem.
-void purple_buddy_icons_init(void);
- * Uninitializes the buddy icon subsystem.
-void purple_buddy_icons_uninit(void);
-/**************************************************************************/
-/** @name Buddy Icon Helper API */
-/**************************************************************************/
- * Gets display size for a buddy icon
-void purple_buddy_icon_get_scale_size(PurpleBuddyIconSpec *spec, int *width, int *height);
-#endif /* _PURPLE_BUDDYICON_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/buddylist.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
- * Copyright (C) 2005 Bartosz Oler <bartosz@bzimage.us>
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_GG_BUDDYLIST_H
-#define _PURPLE_GG_BUDDYLIST_H
-ggp_buddylist_send(PurpleConnection *gc);
- * Load buddylist from server into the roster.
- * @param gc PurpleConnection
- * @param buddylist Pointer to the buddylist that will be loaded.
-/* void ggp_buddylist_load(PurpleConnection *gc, char *buddylist) {{{ */
-ggp_buddylist_load(PurpleConnection *gc, char *buddylist);
- * Get all the buddies in the current account.
- * @param account Current account.
- * @return List of buddies.
-ggp_buddylist_dump(PurpleAccount *account);
-#endif /* _PURPLE_GG_BUDDYLIST_H */
-/* vim: set ts=8 sts=0 sw=8 noet: */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/caps.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,129 +0,0 @@
- * purple - Jabber Protocol Plugin
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef PURPLE_JABBER_CAPS_H_
-#define PURPLE_JABBER_CAPS_H_
-typedef struct _JabberCapsClientInfo JabberCapsClientInfo;
-/* Implementation of XEP-0115 - Entity Capabilities */
-typedef struct _JabberCapsNodeExts JabberCapsNodeExts;
-typedef struct _JabberCapsTuple {
-struct _JabberCapsClientInfo {
- GList *identities; /* JabberIdentity */
- GList *features; /* char * */
- GList *forms; /* xmlnode * */
- JabberCapsNodeExts *exts;
- const JabberCapsTuple tuple;
- * This stores a set of exts "known" for a specific node (which indicates
- * a specific client -- for reference, Pidgin, Finch, Meebo, et al share one
- * node.) In XEP-0115 v1.3, exts are used for features that may or may not be
- * present at a given time (PEP things, buzz might be disabled, etc).
- * This structure is shared among all JabberCapsClientInfo instances matching
- * a specific node (if the capstable key->hash == NULL, which indicates that
- * the ClientInfo is using v1.3 caps as opposed to v1.5 caps).
- * It's only exposed so that jabber_resource_has_capability can use it.
- * Everyone else, STAY AWAY!
-struct _JabberCapsNodeExts {
- GHashTable *exts; /* char *ext_name -> GList *features */
-typedef void (*jabber_caps_get_info_cb)(JabberCapsClientInfo *info, GList *exts, gpointer user_data);
-void jabber_caps_init(void);
-void jabber_caps_uninit(void);
- * Check whether all of the exts in a char* array are known to the given info.
-gboolean jabber_caps_exts_known(const JabberCapsClientInfo *info, char **exts);
- * Main entity capabilites function to get the capabilities of a contact.
- * The callback will be called synchronously if we already have the
- * capabilities for the specified (node,ver,hash) (and, if exts are specified,
- * if we know what each means)
- * @param exts A g_strsplit'd (NULL-terminated) array of strings. This
- * function is responsible for freeing it.
-void jabber_caps_get_info(JabberStream *js, const char *who, const char *node,
- const char *ver, const char *hash,
- char **exts, jabber_caps_get_info_cb cb,
- * Takes a JabberCapsClientInfo pointer and returns the caps hash according to
- * XEP-0115 Version 1.5.
- * @param info A JabberCapsClientInfo pointer.
- * @param hash Hash cipher to be used. Either sha-1 or md5.
- * @return The base64 encoded SHA-1 hash; must be freed by caller
-gchar *jabber_caps_calculate_hash(JabberCapsClientInfo *info, const char *hash);
- * Calculate SHA1 hash for own featureset.
-void jabber_caps_calculate_own_hash(JabberStream *js);
-/** Get the current caps hash.
-const gchar* jabber_caps_get_own_hash(JabberStream *js);
- * Broadcast a new calculated hash using a <presence> stanza.
-void jabber_caps_broadcast_change(void);
- * Parse the <query/> element from an IQ stanza into a JabberCapsClientInfo
- * @param query The 'query' element from an IQ reply stanza.
- * @returns A JabberCapsClientInfo struct, or NULL on error
-JabberCapsClientInfo *jabber_caps_parse_client_info(xmlnode *query);
-#endif /* PURPLE_JABBER_CAPS_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/certificate.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,843 +0,0 @@
- * @file certificate.h Public-Key Certificate API
- * @see @ref certificate-signals
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_CERTIFICATE_H
-#define _PURPLE_CERTIFICATE_H
-#endif /* __cplusplus */
- PURPLE_CERTIFICATE_INVALID = 0,
- PURPLE_CERTIFICATE_VALID = 1
-} PurpleCertificateVerificationStatus;
-typedef struct _PurpleCertificate PurpleCertificate;
-typedef struct _PurpleCertificatePool PurpleCertificatePool;
-typedef struct _PurpleCertificateScheme PurpleCertificateScheme;
-typedef struct _PurpleCertificateVerifier PurpleCertificateVerifier;
-typedef struct _PurpleCertificateVerificationRequest PurpleCertificateVerificationRequest;
- * Callback function for the results of a verification check
- * @param st Status code
- * @param userdata User-defined data
-typedef void (*PurpleCertificateVerifiedCallback)
- (PurpleCertificateVerificationStatus st,
-/** A certificate instance
- * An opaque data structure representing a single certificate under some
-struct _PurpleCertificate
- /** Scheme this certificate is under */
- PurpleCertificateScheme * scheme;
- /** Opaque pointer to internal data */
- * Database for retrieval or storage of Certificates
- * More or less a hash table; all lookups and writes are controlled by a string
-struct _PurpleCertificatePool
- /** Scheme this Pool operates for */
- /** Internal name to refer to the pool by */
- /** User-friendly name for this type
- * ex: N_("SSL Servers")
- * When this is displayed anywhere, it should be i18ned
- * ex: _(pool->fullname)
- /** Internal pool data */
- * Set up the Pool's internal state
- * Upon calling purple_certificate_register_pool() , this function will
- * be called. May be NULL.
- * @return TRUE if the initialization succeeded, otherwise FALSE
- gboolean (* init)(void);
- * Uninit the Pool's internal state
- * Will be called by purple_certificate_unregister_pool() . May be NULL
- /** Check for presence of a certificate in the pool using unique ID */
- gboolean (* cert_in_pool)(const gchar *id);
- /** Retrieve a PurpleCertificate from the pool */
- PurpleCertificate * (* get_cert)(const gchar *id);
- /** Add a certificate to the pool. Must overwrite any other
- * certificates sharing the same ID in the pool.
- * @return TRUE if the operation succeeded, otherwise FALSE
- gboolean (* put_cert)(const gchar *id, PurpleCertificate *crt);
- /** Delete a certificate from the pool */
- gboolean (* delete_cert)(const gchar *id);
- /** Returns a list of IDs stored in the pool */
- GList * (* get_idlist)(void);
- void (*_purple_reserved1)(void);
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
- void (*_purple_reserved4)(void);
- * A CertificateScheme must implement all of the fields in the structure,
- * and register it using purple_certificate_register_scheme()
- * There may be only ONE CertificateScheme provided for each certificate
- * type, as specified by the "name" field.
-struct _PurpleCertificateScheme
- /** Name of the certificate type
- * ex: "x509", "pgp", etc.
- * This must be globally unique - you may not register more than one
- * CertificateScheme of the same name at a time.
- /** User-friendly name for this type
- * ex: N_("X.509 Certificates")
- * When this is displayed anywhere, it should be i18ned
- * ex: _(scheme->fullname)
- /** Imports a certificate from a file
- * @param filename File to import the certificate from
- * @return Pointer to the newly allocated Certificate struct
- PurpleCertificate * (* import_certificate)(const gchar * filename);
- * Exports a certificate to a file
- * @param filename File to export the certificate to
- * @param crt Certificate to export
- * @return TRUE if the export succeeded, otherwise FALSE
- * @see purple_certificate_export()
- gboolean (* export_certificate)(const gchar *filename, PurpleCertificate *crt);
- * Duplicates a certificate
- * Certificates are generally assumed to be read-only, so feel free to
- * do any sort of reference-counting magic you want here. If this ever
- * changes, please remember to change the magic accordingly.
- * @return Reference to the new copy
- PurpleCertificate * (* copy_certificate)(PurpleCertificate *crt);
- /** Destroys and frees a Certificate structure
- * Destroys a Certificate's internal data structures and calls
- * @param crt Certificate instance to be destroyed. It WILL NOT be
- * destroyed if it is not of the correct
- * CertificateScheme. Can be NULL
- void (* destroy_certificate)(PurpleCertificate * crt);
- /** Find whether "crt" has a valid signature from issuer "issuer"
- * @see purple_certificate_signed_by() */
- gboolean (*signed_by)(PurpleCertificate *crt, PurpleCertificate *issuer);
- * Retrieves the certificate public key fingerprint using SHA1
- * @param crt Certificate instance
- * @return Binary representation of SHA1 hash - must be freed using
- GByteArray * (* get_fingerprint_sha1)(PurpleCertificate *crt);
- * Retrieves a unique certificate identifier
- * @param crt Certificate instance
- * @return Newly allocated string that can be used to uniquely
- * identify the certificate.
- gchar * (* get_unique_id)(PurpleCertificate *crt);
- * Retrieves a unique identifier for the certificate's issuer
- * @param crt Certificate instance
- * @return Newly allocated string that can be used to uniquely
- * identify the issuer's certificate.
- gchar * (* get_issuer_unique_id)(PurpleCertificate *crt);
- * Gets the certificate subject's name
- * For X.509, this is the "Common Name" field, as we're only using it
- * for hostname verification at the moment
- * @see purple_certificate_get_subject_name()
- * @param crt Certificate instance
- * @return Newly allocated string with the certificate subject.
- gchar * (* get_subject_name)(PurpleCertificate *crt);
- * Check the subject name against that on the certificate
- * @see purple_certificate_check_subject_name()
- * @return TRUE if it is a match, else FALSE
- gboolean (* check_subject_name)(PurpleCertificate *crt, const gchar *name);
- /** Retrieve the certificate activation/expiration times */
- gboolean (* get_times)(PurpleCertificate *crt, time_t *activation, time_t *expiration);
- /** Imports certificates from a file
- * @param filename File to import the certificates from
- * @return GSList of pointers to the newly allocated Certificate structs
- GSList * (* import_certificates)(const gchar * filename);
- void (*_purple_reserved1)(void);
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
-/** A set of operations used to provide logic for verifying a Certificate's
- * A Verifier provider must fill out these fields, then register it using
- * purple_certificate_register_verifier()
- * The (scheme_name, name) value must be unique for each Verifier - you may not
- * register more than one Verifier of the same name for each Scheme
-struct _PurpleCertificateVerifier
- /** Name of the scheme this Verifier operates on
- * The scheme will be looked up by name when a Request is generated
- /** Name of the Verifier - case insensitive */
- * Start the verification process
- * To be called from purple_certificate_verify once it has
- * constructed the request. This will use the information in the
- * given VerificationRequest to check the certificate and callback
- * the requester with the verification results.
- * @param vrq Request to process
- void (* start_verification)(PurpleCertificateVerificationRequest *vrq);
- * Destroy a completed Request under this Verifier
- * The function pointed to here is only responsible for cleaning up
- * whatever PurpleCertificateVerificationRequest::data points to.
- * It should not call free(vrq)
- * @param vrq Request to destroy
- void (* destroy_request)(PurpleCertificateVerificationRequest *vrq);
- void (*_purple_reserved1)(void);
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
- void (*_purple_reserved4)(void);
-/** Structure for a single certificate request
- * Useful for keeping track of the state of a verification that involves
-struct _PurpleCertificateVerificationRequest
- /** Reference to the verification logic used */
- PurpleCertificateVerifier *verifier;
- /** Reference to the scheme used.
- * This is looked up from the Verifier when the Request is generated
- PurpleCertificateScheme *scheme;
- * Name to check that the certificate is issued to
- * For X.509 certificates, this is the Common Name
- /** List of certificates in the chain to be verified (such as that returned by purple_ssl_get_peer_certificates )
- * This is most relevant for X.509 certificates used in SSL sessions.
- * The list order should be: certificate, issuer, issuer's issuer, etc.
- /** Internal data used by the Verifier code */
- /** Function to call with the verification result */
- PurpleCertificateVerifiedCallback cb;
- /** Data to pass to the post-verification callback */
-/*****************************************************************************/
-/** @name Certificate Verification Functions */
-/*****************************************************************************/
- * Constructs a verification request and passed control to the specified Verifier
- * It is possible that the callback will be called immediately upon calling
- * this function. Plan accordingly.
- * @param verifier Verification logic to use.
- * @see purple_certificate_find_verifier()
- * @param subject_name Name that should match the first certificate in the
- * chain for the certificate to be valid. Will be strdup'd
- * into the Request struct
- * @param cert_chain Certificate chain to check. If there is more than one
- * certificate in the chain (X.509), the peer's
- * certificate comes first, then the issuer/signer's
- * certificate, etc. The whole list is duplicated into the
- * @param cb Callback function to be called with whether the
- * certificate was approved or not.
- * @param cb_data User-defined data for the above.
-purple_certificate_verify (PurpleCertificateVerifier *verifier,
- const gchar *subject_name, GList *cert_chain,
- PurpleCertificateVerifiedCallback cb,
- * Completes and destroys a VerificationRequest
- * @param vrq Request to conclude
- * @param st Success/failure code to pass to the request's
-purple_certificate_verify_complete(PurpleCertificateVerificationRequest *vrq,
- PurpleCertificateVerificationStatus st);
-/*****************************************************************************/
-/** @name Certificate Functions */
-/*****************************************************************************/
- * Makes a duplicate of a certificate
- * @param crt Instance to duplicate
- * @return Pointer to new instance
-purple_certificate_copy(PurpleCertificate *crt);
- * Duplicates an entire list of certificates
- * @param crt_list List to duplicate
- * @return New list copy
-purple_certificate_copy_list(GList *crt_list);
- * Destroys and free()'s a Certificate
- * @param crt Instance to destroy. May be NULL.
-purple_certificate_destroy (PurpleCertificate *crt);
- * Destroy an entire list of Certificate instances and the containing list
- * @param crt_list List of certificates to destroy. May be NULL.
-purple_certificate_destroy_list (GList * crt_list);
- * Check whether 'crt' has a valid signature made by 'issuer'
- * @param crt Certificate instance to check signature of
- * @param issuer Certificate thought to have signed 'crt'
- * @return TRUE if 'crt' has a valid signature made by 'issuer',
- * @todo Find a way to give the reason (bad signature, not the issuer, etc.)
-purple_certificate_signed_by(PurpleCertificate *crt, PurpleCertificate *issuer);
- * Check that a certificate chain is valid and, if not, the failing certificate.
- * Uses purple_certificate_signed_by() to verify that each PurpleCertificate
- * in the chain carries a valid signature from the next. A single-certificate
- * chain is considered to be valid.
- * @param chain List of PurpleCertificate instances comprising the chain,
- * in the order certificate, issuer, issuer's issuer, etc.
- * @param failing A pointer to a PurpleCertificate*. If not NULL, if the
- * chain fails to validate, this will be set to the
- * certificate whose signature could not be validated.
- * @return TRUE if the chain is valid. See description.
- * @deprecated This function will become
- * purple_certificate_check_signature_chain in 3.0.0
-purple_certificate_check_signature_chain_with_failing(GList *chain,
- PurpleCertificate **failing);
- * Check that a certificate chain is valid
- * Uses purple_certificate_signed_by() to verify that each PurpleCertificate
- * in the chain carries a valid signature from the next. A single-certificate
- * chain is considered to be valid.
- * @param chain List of PurpleCertificate instances comprising the chain,
- * in the order certificate, issuer, issuer's issuer, etc.
- * @return TRUE if the chain is valid. See description.
- * @todo Specify which certificate in the chain caused a failure
- * @deprecated This function will be removed in 3.0.0 and replaced with
- * purple_certificate_check_signature_chain_with_failing
-purple_certificate_check_signature_chain(GList *chain);
- * Imports a PurpleCertificate from a file
- * @param scheme Scheme to import under
- * @param filename File path to import from
- * @return Pointer to a new PurpleCertificate, or NULL on failure
-purple_certificate_import(PurpleCertificateScheme *scheme, const gchar *filename);
- * Imports a list of PurpleCertificates from a file
- * @param scheme Scheme to import under
- * @param filename File path to import from
- * @return Pointer to a GSList of new PurpleCertificates, or NULL on failure
-purple_certificates_import(PurpleCertificateScheme *scheme, const gchar *filename);
- * Exports a PurpleCertificate to a file
- * @param filename File to export the certificate to
- * @param crt Certificate to export
- * @return TRUE if the export succeeded, otherwise FALSE
-purple_certificate_export(const gchar *filename, PurpleCertificate *crt);
- * Retrieves the certificate public key fingerprint using SHA1.
- * @param crt Certificate instance
- * @return Binary representation of the hash. You are responsible for free()ing
- * @see purple_base16_encode_chunked()
-purple_certificate_get_fingerprint_sha1(PurpleCertificate *crt);
- * Get a unique identifier for the certificate
- * @param crt Certificate instance
- * @return String representing the certificate uniquely. Must be g_free()'ed
-purple_certificate_get_unique_id(PurpleCertificate *crt);
- * Get a unique identifier for the certificate's issuer
- * @param crt Certificate instance
- * @return String representing the certificate's issuer uniquely. Must be
-purple_certificate_get_issuer_unique_id(PurpleCertificate *crt);
- * Gets the certificate subject's name
- * For X.509, this is the "Common Name" field, as we're only using it
- * for hostname verification at the moment
- * @param crt Certificate instance
- * @return Newly allocated string with the certificate subject.
-purple_certificate_get_subject_name(PurpleCertificate *crt);
- * Check the subject name against that on the certificate
- * @param crt Certificate instance
- * @param name Name to check.
- * @return TRUE if it is a match, else FALSE
-purple_certificate_check_subject_name(PurpleCertificate *crt, const gchar *name);
- * Get the expiration/activation times.
- * @param crt Certificate instance
- * @param activation Reference to store the activation time at. May be NULL
- * if you don't actually want it.
- * @param expiration Reference to store the expiration time at. May be NULL
- * if you don't actually want it.
- * @return TRUE if the requested values were obtained, otherwise FALSE.
-purple_certificate_get_times(PurpleCertificate *crt, time_t *activation, time_t *expiration);
-/*****************************************************************************/
-/** @name Certificate Pool Functions */
-/*****************************************************************************/
- * Helper function for generating file paths in ~/.purple/certificates for
- * CertificatePools that use them.
- * All components will be escaped for filesystem friendliness.
- * @param pool CertificatePool to build a path for
- * @param id Key to look up a Certificate by. May be NULL.
- * @return A newly allocated path of the form
- * ~/.purple/certificates/scheme_name/pool_name/unique_id
-purple_certificate_pool_mkpath(PurpleCertificatePool *pool, const gchar *id);
- * Determines whether a pool can be used.
- * Checks whether the associated CertificateScheme is loaded.
- * @param pool Pool to check
- * @return TRUE if the pool can be used, otherwise FALSE
-purple_certificate_pool_usable(PurpleCertificatePool *pool);
- * Looks up the scheme the pool operates under
- * @param pool Pool to get the scheme of
- * @return Pointer to the pool's scheme, or NULL if it isn't loaded.
- * @see purple_certificate_pool_usable()
-PurpleCertificateScheme *
-purple_certificate_pool_get_scheme(PurpleCertificatePool *pool);
- * Check for presence of an ID in a pool.
- * @param pool Pool to look in
- * @param id ID to look for
- * @return TRUE if the ID is in the pool, else FALSE
-purple_certificate_pool_contains(PurpleCertificatePool *pool, const gchar *id);
- * Retrieve a certificate from a pool.
- * @param pool Pool to fish in
- * @param id ID to look up
- * @return Retrieved certificate, or NULL if it wasn't there
-purple_certificate_pool_retrieve(PurpleCertificatePool *pool, const gchar *id);
- * Add a certificate to a pool
- * Any pre-existing certificate of the same ID will be overwritten.
- * @param pool Pool to add to
- * @param id ID to store the certificate with
- * @param crt Certificate to store
- * @return TRUE if the operation succeeded, otherwise FALSE
-purple_certificate_pool_store(PurpleCertificatePool *pool, const gchar *id, PurpleCertificate *crt);
- * Remove a certificate from a pool
- * @param pool Pool to remove from
- * @param id ID to remove
- * @return TRUE if the operation succeeded, otherwise FALSE
-purple_certificate_pool_delete(PurpleCertificatePool *pool, const gchar *id);
- * Get the list of IDs currently in the pool.
- * @param pool Pool to enumerate
- * @return GList pointing to newly-allocated id strings. Free using
- * purple_certificate_pool_destroy_idlist()
-purple_certificate_pool_get_idlist(PurpleCertificatePool *pool);
- * Destroys the result given by purple_certificate_pool_get_idlist()
- * @param idlist ID List to destroy
-purple_certificate_pool_destroy_idlist(GList *idlist);
-/*****************************************************************************/
-/** @name Certificate Subsystem API */
-/*****************************************************************************/
- * Initialize the certificate system
-purple_certificate_init(void);
- * Un-initialize the certificate system
-purple_certificate_uninit(void);
- * Get the Certificate subsystem handle for signalling purposes
-purple_certificate_get_handle(void);
-/** Look up a registered CertificateScheme by name
- * @param name The scheme name. Case insensitive.
- * @return Pointer to the located Scheme, or NULL if it isn't found.
-PurpleCertificateScheme *
-purple_certificate_find_scheme(const gchar *name);
- * Get all registered CertificateSchemes
- * @return GList pointing to all registered CertificateSchemes . This value
- * is owned by libpurple
-purple_certificate_get_schemes(void);
-/** Register a CertificateScheme with libpurple
- * No two schemes can be registered with the same name; this function enforces
- * @param scheme Pointer to the scheme to register.
- * @return TRUE if the scheme was successfully added, otherwise FALSE
-purple_certificate_register_scheme(PurpleCertificateScheme *scheme);
-/** Unregister a CertificateScheme from libpurple
- * @param scheme Scheme to unregister.
- * If the scheme is not registered, this is a no-op.
- * @return TRUE if the unregister completed successfully
-purple_certificate_unregister_scheme(PurpleCertificateScheme *scheme);
-/** Look up a registered PurpleCertificateVerifier by scheme and name
- * @param scheme_name Scheme name. Case insensitive.
- * @param ver_name The verifier name. Case insensitive.
- * @return Pointer to the located Verifier, or NULL if it isn't found.
-PurpleCertificateVerifier *
-purple_certificate_find_verifier(const gchar *scheme_name, const gchar *ver_name);
- * Get the list of registered CertificateVerifiers
- * @return GList of all registered PurpleCertificateVerifier. This value
- * is owned by libpurple
-purple_certificate_get_verifiers(void);
- * Register a CertificateVerifier with libpurple
- * @param vr Verifier to register.
- * @return TRUE if register succeeded, otherwise FALSE
-purple_certificate_register_verifier(PurpleCertificateVerifier *vr);
- * Unregister a CertificateVerifier with libpurple
- * @param vr Verifier to unregister.
- * @return TRUE if unregister succeeded, otherwise FALSE
-purple_certificate_unregister_verifier(PurpleCertificateVerifier *vr);
-/** Look up a registered PurpleCertificatePool by scheme and name
- * @param scheme_name Scheme name. Case insensitive.
- * @param pool_name Pool name. Case insensitive.
- * @return Pointer to the located Pool, or NULL if it isn't found.
-purple_certificate_find_pool(const gchar *scheme_name, const gchar *pool_name);
- * Get the list of registered Pools
- * @return GList of all registered PurpleCertificatePool s. This value
- * is owned by libpurple
-purple_certificate_get_pools(void);
- * Register a CertificatePool with libpurple and call its init function
- * @param pool Pool to register.
- * @return TRUE if the register succeeded, otherwise FALSE
-purple_certificate_register_pool(PurpleCertificatePool *pool);
- * Unregister a CertificatePool with libpurple and call its uninit function
- * @param pool Pool to unregister.
- * @return TRUE if the unregister succeeded, otherwise FALSE
-purple_certificate_unregister_pool(PurpleCertificatePool *pool);
- * Displays a window showing X.509 certificate information
- * @param crt Certificate under an "x509" Scheme
- * @todo Will break on CA certs, as they have no Common Name
-purple_certificate_display_x509(PurpleCertificate *crt);
- * Add a search path for certificates.
- * @param path Path to search for certificates.
-void purple_certificate_add_ca_search_path(const char *path);
-#endif /* __cplusplus */
-#endif /* _PURPLE_CERTIFICATE_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/chat.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,118 +0,0 @@
- * @file chat.h Chat stuff
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef PURPLE_JABBER_CHAT_H_
-#define PURPLE_JABBER_CHAT_H_
-#include "conversation.h"
-typedef struct _JabberChatMember {
-typedef struct _JabberChat {
- GHashTable *components;
- PurpleConversation *conv;
- PurpleRequestType config_dialog_type;
- void *config_dialog_handle;
-GList *jabber_chat_info(PurpleConnection *gc);
-GHashTable *jabber_chat_info_defaults(PurpleConnection *gc, const char *chat_name);
-char *jabber_get_chat_name(GHashTable *data);
- * in-prpl function for joining a chat room. Doesn't require sticking goop
- * @param room The room to join. This MUST be normalized already.
- * @param server The server the room is on. This MUST be normalized already.
- * @param password The password (if required) to join the room. May be NULL.
- * @param data The chat hash table. May be NULL (it will be generated
- * for current core<>prpl API interface.)
-JabberChat *jabber_join_chat(JabberStream *js, const char *room,
- const char *server, const char *handle,
- const char *password, GHashTable *data);
-void jabber_chat_join(PurpleConnection *gc, GHashTable *data);
-JabberChat *jabber_chat_find(JabberStream *js, const char *room,
-JabberChat *jabber_chat_find_by_id(JabberStream *js, int id);
-JabberChat *jabber_chat_find_by_conv(PurpleConversation *conv);
-void jabber_chat_destroy(JabberChat *chat);
-void jabber_chat_free(JabberChat *chat);
-gboolean jabber_chat_find_buddy(PurpleConversation *conv, const char *name);
-void jabber_chat_invite(PurpleConnection *gc, int id, const char *message,
-void jabber_chat_leave(PurpleConnection *gc, int id);
-char *jabber_chat_buddy_real_name(PurpleConnection *gc, int id, const char *who);
-void jabber_chat_request_room_configure(JabberChat *chat);
-void jabber_chat_create_instant_room(JabberChat *chat);
-void jabber_chat_register(JabberChat *chat);
-void jabber_chat_change_topic(JabberChat *chat, const char *topic);
-void jabber_chat_set_topic(PurpleConnection *gc, int id, const char *topic);
-gboolean jabber_chat_change_nick(JabberChat *chat, const char *nick);
-void jabber_chat_part(JabberChat *chat, const char *msg);
-void jabber_chat_track_handle(JabberChat *chat, const char *handle,
- const char *jid, const char *affiliation, const char *role);
-void jabber_chat_remove_handle(JabberChat *chat, const char *handle);
-gboolean jabber_chat_ban_user(JabberChat *chat, const char *who,
-gboolean jabber_chat_affiliate_user(JabberChat *chat, const char *who,
- const char *affiliation);
-gboolean jabber_chat_affiliation_list(JabberChat *chat, const char *affiliation);
-gboolean jabber_chat_role_user(JabberChat *chat, const char *who,
- const char *role, const char *why);
-gboolean jabber_chat_role_list(JabberChat *chat, const char *role);
-PurpleRoomlist *jabber_roomlist_get_list(PurpleConnection *gc);
-void jabber_roomlist_cancel(PurpleRoomlist *list);
-void jabber_chat_disco_traffic(JabberChat *chat);
-char *jabber_roomlist_room_serialize(PurpleRoomlistRoom *room);
-gboolean jabber_chat_all_participants_have_capability(const JabberChat *chat,
-guint jabber_chat_get_num_participants(const JabberChat *chat);
-#endif /* PURPLE_JABBER_CHAT_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/cipher.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,502 +0,0 @@
- * @file cipher.h Purple Cipher API
- * @see @ref cipher-signals
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#define PURPLE_CIPHER(obj) ((PurpleCipher *)(obj)) /**< PurpleCipher typecast helper */
-#define PURPLE_CIPHER_OPS(obj) ((PurpleCipherOps *)(obj)) /**< PurpleCipherInfo typecase helper */
-#define PURPLE_CIPHER_CONTEXT(obj) ((PurpleCipherContext *)(obj)) /**< PurpleCipherContext typecast helper */
-typedef struct _PurpleCipher PurpleCipher; /**< A handle to a PurpleCipher */
-typedef struct _PurpleCipherOps PurpleCipherOps; /**< Ops for a PurpleCipher */
-typedef struct _PurpleCipherContext PurpleCipherContext; /**< A context for a PurpleCipher */
- * Modes for batch encrypters
-typedef enum _PurpleCipherBatchMode {
- PURPLE_CIPHER_BATCH_MODE_ECB,
- PURPLE_CIPHER_BATCH_MODE_CBC
-} PurpleCipherBatchMode;
- * The operation flags for a cipher
-typedef enum _PurpleCipherCaps {
- PURPLE_CIPHER_CAPS_SET_OPT = 1 << 1, /**< Set option flag */
- PURPLE_CIPHER_CAPS_GET_OPT = 1 << 2, /**< Get option flag */
- PURPLE_CIPHER_CAPS_INIT = 1 << 3, /**< Init flag */
- PURPLE_CIPHER_CAPS_RESET = 1 << 4, /**< Reset flag */
- PURPLE_CIPHER_CAPS_UNINIT = 1 << 5, /**< Uninit flag */
- PURPLE_CIPHER_CAPS_SET_IV = 1 << 6, /**< Set IV flag */
- PURPLE_CIPHER_CAPS_APPEND = 1 << 7, /**< Append flag */
- PURPLE_CIPHER_CAPS_DIGEST = 1 << 8, /**< Digest flag */
- PURPLE_CIPHER_CAPS_ENCRYPT = 1 << 9, /**< Encrypt flag */
- PURPLE_CIPHER_CAPS_DECRYPT = 1 << 10, /**< Decrypt flag */
- PURPLE_CIPHER_CAPS_SET_SALT = 1 << 11, /**< Set salt flag */
- PURPLE_CIPHER_CAPS_GET_SALT_SIZE = 1 << 12, /**< Get salt size flag */
- PURPLE_CIPHER_CAPS_SET_KEY = 1 << 13, /**< Set key flag */
- PURPLE_CIPHER_CAPS_GET_KEY_SIZE = 1 << 14, /**< Get key size flag */
- PURPLE_CIPHER_CAPS_SET_BATCH_MODE = 1 << 15, /**< Set batch mode flag */
- PURPLE_CIPHER_CAPS_GET_BATCH_MODE = 1 << 16, /**< Get batch mode flag */
- PURPLE_CIPHER_CAPS_GET_BLOCK_SIZE = 1 << 17, /**< The get block size flag */
- PURPLE_CIPHER_CAPS_SET_KEY_WITH_LEN = 1 << 18, /**< The set key with length flag */
- PURPLE_CIPHER_CAPS_UNKNOWN = 1 << 19 /**< Unknown */
- * The operations of a cipher. Every cipher must implement one of these.
-struct _PurpleCipherOps {
- /** The set option function */
- void (*set_option)(PurpleCipherContext *context, const gchar *name, void *value);
- /** The get option function */
- void *(*get_option)(PurpleCipherContext *context, const gchar *name);
- /** The init function */
- void (*init)(PurpleCipherContext *context, void *extra);
- /** The reset function */
- void (*reset)(PurpleCipherContext *context, void *extra);
- /** The uninit function */
- void (*uninit)(PurpleCipherContext *context);
- /** The set initialization vector function */
- void (*set_iv)(PurpleCipherContext *context, guchar *iv, size_t len);
- /** The append data function */
- void (*append)(PurpleCipherContext *context, const guchar *data, size_t len);
- /** The digest function */
- gboolean (*digest)(PurpleCipherContext *context, size_t in_len, guchar digest[], size_t *out_len);
- /** The encrypt function */
- int (*encrypt)(PurpleCipherContext *context, const guchar data[], size_t len, guchar output[], size_t *outlen);
- /** The decrypt function */
- int (*decrypt)(PurpleCipherContext *context, const guchar data[], size_t len, guchar output[], size_t *outlen);
- /** The set salt function */
- void (*set_salt)(PurpleCipherContext *context, guchar *salt);
- /** The get salt size function */
- size_t (*get_salt_size)(PurpleCipherContext *context);
- /** The set key function */
- void (*set_key)(PurpleCipherContext *context, const guchar *key);
- /** The get key size function */
- size_t (*get_key_size)(PurpleCipherContext *context);
- /** The set batch mode function */
- void (*set_batch_mode)(PurpleCipherContext *context, PurpleCipherBatchMode mode);
- /** The get batch mode function */
- PurpleCipherBatchMode (*get_batch_mode)(PurpleCipherContext *context);
- /** The get block size function */
- size_t (*get_block_size)(PurpleCipherContext *context);
- /** The set key with length function */
- void (*set_key_with_len)(PurpleCipherContext *context, const guchar *key, size_t len);
-/*****************************************************************************/
-/** @name PurpleCipher API */
-/*****************************************************************************/
- * @param cipher The cipher handle
- * @return The cipher's name
-const gchar *purple_cipher_get_name(PurpleCipher *cipher);
- * Gets a cipher's capabilities
- * @param cipher The cipher handle
- * @return The cipher's info
-guint purple_cipher_get_capabilities(PurpleCipher *cipher);
- * Gets a digest from a cipher
- * @param name The cipher's name
- * @param data The data to hash
- * @param data_len The length of the data
- * @param in_len The length of the buffer
- * @param digest The returned digest
- * @param out_len The length written
- * @return @c TRUE if successful, @c FALSE otherwise
-gboolean purple_cipher_digest_region(const gchar *name, const guchar *data, size_t data_len, size_t in_len, guchar digest[], size_t *out_len);
-/******************************************************************************/
-/** @name PurpleCiphers API */
-/******************************************************************************/
- * Finds a cipher by it's name
- * @param name The name of the cipher to find
- * @return The cipher handle or @c NULL
-PurpleCipher *purple_ciphers_find_cipher(const gchar *name);
- * Registers a cipher as a usable cipher
- * @param name The name of the new cipher
- * @param ops The cipher ops to register
- * @return The handle to the new cipher or @c NULL if it failed
-PurpleCipher *purple_ciphers_register_cipher(const gchar *name, PurpleCipherOps *ops);
- * @param cipher The cipher handle to unregister
- * @return Whether or not the cipher was successfully unloaded
-gboolean purple_ciphers_unregister_cipher(PurpleCipher *cipher);
- * Gets the list of ciphers
- * @return The list of available ciphers
- * @note This list should not be modified, it is owned by the cipher core
-GList *purple_ciphers_get_ciphers(void);
-/******************************************************************************/
-/** @name PurpleCipher Subsystem API */
-/******************************************************************************/
- * Gets the handle to the cipher subsystem
- * @return The handle to the cipher subsystem
-gpointer purple_ciphers_get_handle(void);
- * Initializes the cipher core
-void purple_ciphers_init(void);
- * Uninitializes the cipher core
-void purple_ciphers_uninit(void);
-/******************************************************************************/
-/** @name PurpleCipherContext API */
-/******************************************************************************/
- * Sets the value an option on a cipher context
- * @param context The cipher context
- * @param name The name of the option
- * @param value The value to set
-void purple_cipher_context_set_option(PurpleCipherContext *context, const gchar *name, gpointer value);
- * Gets the vale of an option on a cipher context
- * @param context The cipher context
- * @param name The name of the option
- * @return The value of the option
-gpointer purple_cipher_context_get_option(PurpleCipherContext *context, const gchar *name);
- * Creates a new cipher context and initializes it
- * @param cipher The cipher to use
- * @param extra Extra data for the specific cipher
- * @return The new cipher context
-PurpleCipherContext *purple_cipher_context_new(PurpleCipher *cipher, void *extra);
- * Creates a new cipher context by the cipher name and initializes it
- * @param name The cipher's name
- * @param extra Extra data for the specific cipher
- * @return The new cipher context
-PurpleCipherContext *purple_cipher_context_new_by_name(const gchar *name, void *extra);
- * Resets a cipher context to it's default value
- * @note If you have set an IV you will have to set it after resetting
- * @param context The context to reset
- * @param extra Extra data for the specific cipher
-void purple_cipher_context_reset(PurpleCipherContext *context, gpointer extra);
- * Destorys a cipher context and deinitializes it
- * @param context The cipher context to destory
-void purple_cipher_context_destroy(PurpleCipherContext *context);
- * Sets the initialization vector for a context
- * @note This should only be called right after a cipher context is created or reset
- * @param context The context to set the IV to
- * @param iv The initialization vector to set
- * @param len The len of the IV
-void purple_cipher_context_set_iv(PurpleCipherContext *context, guchar *iv, size_t len);
- * Appends data to the context
- * @param context The context to append data to
- * @param data The data to append
- * @param len The length of the data
-void purple_cipher_context_append(PurpleCipherContext *context, const guchar *data, size_t len);
- * @param context The context to digest
- * @param in_len The length of the buffer
- * @param digest The return buffer for the digest
- * @param out_len The length of the returned value
-gboolean purple_cipher_context_digest(PurpleCipherContext *context, size_t in_len, guchar digest[], size_t *out_len);
- * Converts a guchar digest into a hex string
- * @param context The context to get a digest from
- * @param in_len The length of the buffer
- * @param digest_s The return buffer for the string digest
- * @param out_len The length of the returned value
-gboolean purple_cipher_context_digest_to_str(PurpleCipherContext *context, size_t in_len, gchar digest_s[], size_t *out_len);
- * Encrypts data using the context
- * @param context The context
- * @param data The data to encrypt
- * @param len The length of the data
- * @param output The output buffer
- * @param outlen The len of data that was outputed
- * @return A cipher specific status code
-gint purple_cipher_context_encrypt(PurpleCipherContext *context, const guchar data[], size_t len, guchar output[], size_t *outlen);
- * Decrypts data using the context
- * @param context The context
- * @param data The data to encrypt
- * @param len The length of the returned value
- * @param output The output buffer
- * @param outlen The len of data that was outputed
- * @return A cipher specific status code
-gint purple_cipher_context_decrypt(PurpleCipherContext *context, const guchar data[], size_t len, guchar output[], size_t *outlen);
- * Sets the salt on a context
- * @param context The context whose salt to set
-void purple_cipher_context_set_salt(PurpleCipherContext *context, guchar *salt);
- * Gets the size of the salt if the cipher supports it
- * @param context The context whose salt size to get
- * @return The size of the salt
-size_t purple_cipher_context_get_salt_size(PurpleCipherContext *context);
- * Sets the key on a context
- * @param context The context whose key to set
-void purple_cipher_context_set_key(PurpleCipherContext *context, const guchar *key);
- * Gets the key size for a context
- * @param context The context whose key size to get
- * @return The size of the key
-size_t purple_cipher_context_get_key_size(PurpleCipherContext *context);
- * Sets the batch mode of a context
- * @param context The context whose batch mode to set
- * @param mode The batch mode under which the cipher should operate
-void purple_cipher_context_set_batch_mode(PurpleCipherContext *context, PurpleCipherBatchMode mode);
- * Gets the batch mode of a context
- * @param context The context whose batch mode to get
- * @return The batch mode under which the cipher is operating
-PurpleCipherBatchMode purple_cipher_context_get_batch_mode(PurpleCipherContext *context);
- * Gets the block size of a context
- * @param context The context whose block size to get
- * @return The block size of the context
-size_t purple_cipher_context_get_block_size(PurpleCipherContext *context);
- * Sets the key with a given length on a context
- * @param context The context whose key to set
- * @param len The length of the key
-void purple_cipher_context_set_key_with_len(PurpleCipherContext *context, const guchar *key, size_t len);
- * Sets the cipher data for a context
- * @param context The context whose cipher data to set
- * @param data The cipher data to set
-void purple_cipher_context_set_data(PurpleCipherContext *context, gpointer data);
- * Gets the cipher data for a context
- * @param context The context whose cipher data to get
- * @return The cipher data
-gpointer purple_cipher_context_get_data(PurpleCipherContext *context);
-/*****************************************************************************/
-/** @name Purple Cipher HTTP Digest Helper Functions */
-/*****************************************************************************/
- * Calculates a session key for HTTP Digest authentation
- * See RFC 2617 for more information.
- * @param algorithm The hash algorithm to use
- * @param username The username provided by the user
- * @param realm The authentication realm provided by the server
- * @param password The password provided by the user
- * @param nonce The nonce provided by the server
- * @param client_nonce The nonce provided by the client
- * @return The session key, or @c NULL if an error occurred.
-gchar *purple_cipher_http_digest_calculate_session_key(
- const gchar *algorithm, const gchar *username,
- const gchar *realm, const gchar *password,
- const gchar *nonce, const gchar *client_nonce);
-/** Calculate a response for HTTP Digest authentication
- * See RFC 2617 for more information.
- * @param algorithm The hash algorithm to use
- * @param method The HTTP method in use
- * @param digest_uri The URI from the initial request
- * @param qop The "quality of protection"
- * @param entity The entity body
- * @param nonce The nonce provided by the server
- * @param nonce_count The nonce count
- * @param client_nonce The nonce provided by the client
- * @param session_key The session key from purple_cipher_http_digest_calculate_session_key()
- * @return The hashed response, or @c NULL if an error occurred.
-gchar *purple_cipher_http_digest_calculate_response(
- const gchar *algorithm, const gchar *method,
- const gchar *digest_uri, const gchar *qop,
- const gchar *entity, const gchar *nonce,
- const gchar *nonce_count, const gchar *client_nonce,
- const gchar *session_key);
-#endif /* PURPLE_CIPHER_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/circbuffer.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,118 +0,0 @@
- * @file circbuffer.h Buffer Utility Functions
-/* 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-typedef struct _PurpleCircBuffer {
- /** A pointer to the starting address of our chunk of memory. */
- /** The incremental amount to increase this buffer by when
- * the buffer is not big enough to hold incoming data, in bytes. */
- /** The length of this buffer, in bytes. */
- /** The number of bytes of this buffer that contain unread data. */
- /** A pointer to the next byte where new incoming data is
- /** A pointer to the next byte of buffered data that should be
- * read by the consumer. */
- * Creates a new circular buffer. This will not allocate any memory for the
- * actual buffer until data is appended to it.
- * @param growsize The amount that the buffer should grow the first time data
- * is appended and every time more space is needed. Pass in
- * "0" to use the default of 256 bytes.
- * @return The new PurpleCircBuffer. This should be freed with
- * purple_circ_buffer_destroy when you are done with it
-PurpleCircBuffer *purple_circ_buffer_new(gsize growsize);
- * Dispose of the PurpleCircBuffer and free any memory used by it (including any
- * memory used by the internal buffer).
- * @param buf The PurpleCircBuffer to free
-void purple_circ_buffer_destroy(PurpleCircBuffer *buf);
- * Append data to the PurpleCircBuffer. This will grow the internal
- * buffer to fit the added data, if needed.
- * @param buf The PurpleCircBuffer to which to append the data
- * @param src pointer to the data to copy into the buffer
- * @param len number of bytes to copy into the buffer
-void purple_circ_buffer_append(PurpleCircBuffer *buf, gconstpointer src, gsize len);
- * Determine the maximum number of contiguous bytes that can be read from the
- * Note: This may not be the total number of bytes that are buffered - a
- * subsequent call after calling purple_circ_buffer_mark_read() may indicate more
- * data is available to read.
- * @param buf the PurpleCircBuffer for which to determine the maximum contiguous
- * bytes that can be read.
- * @return the number of bytes that can be read from the PurpleCircBuffer
-gsize purple_circ_buffer_get_max_read(const PurpleCircBuffer *buf);
- * Mark the number of bytes that have been read from the buffer.
- * @param buf The PurpleCircBuffer to mark bytes read from
- * @param len The number of bytes to mark as read
- * @return TRUE if we successfully marked the bytes as having been read, FALSE
-gboolean purple_circ_buffer_mark_read(PurpleCircBuffer *buf, gsize len);
-#endif /* _CIRCBUFFER_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/cmdproc.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
- * @file cmdproc.h MSN command processor functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-typedef struct _MsnCmdProc MsnCmdProc;
- GHashTable *multiparts; /**< Multi-part message ID's */
- void *data; /**< Extra data, like the switchboard. */
- * Creates a MsnCmdProc structure.
- * @param session The session to associate with.
- * @return A new MsnCmdProc structure.
-MsnCmdProc *msn_cmdproc_new(MsnSession *session);
- * Destroys an MsnCmdProc.
- * @param cmdproc The object structure.
-void msn_cmdproc_destroy(MsnCmdProc *cmdproc);
- * Process the queued transactions.
- * @param cmdproc The MsnCmdProc.
-void msn_cmdproc_process_queue(MsnCmdProc *cmdproc);
- * Sends transaction using this servconn.
- * @param cmdproc The MsnCmdProc to be used.
- * @param trans The MsnTransaction to be sent.
-gboolean msn_cmdproc_send_trans(MsnCmdProc *cmdproc, MsnTransaction *trans);
- * Add a transaction to the queue to be processed latter.
- * @param cmdproc The MsnCmdProc in which the transaction will be queued.
- * @param trans The MsnTransaction to be queued.
-void msn_cmdproc_queue_trans(MsnCmdProc *cmdproc,
- MsnTransaction *trans);
-void msn_cmdproc_process_msg(MsnCmdProc *cmdproc,
-void msn_cmdproc_process_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd);
-void msn_cmdproc_process_cmd_text(MsnCmdProc *cmdproc, const char *command);
-void msn_cmdproc_process_payload(MsnCmdProc *cmdproc,
- char *payload, int payload_len);
-#endif /* MSN_CMDPROC_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/cmds.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,250 +0,0 @@
- * @file cmds.h Commands API
- * @see @ref cmd-signals
-/* Copyright (C) 2003 Timothy Ringenbach <omarvo@hotmail.com>
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#include "conversation.h"
-/**************************************************************************/
-/**************************************************************************/
-/** The possible results of running a command with purple_cmd_do_command(). */
-typedef enum _PurpleCmdStatus {
- PURPLE_CMD_STATUS_FAILED,
- PURPLE_CMD_STATUS_NOT_FOUND,
- PURPLE_CMD_STATUS_WRONG_ARGS,
- PURPLE_CMD_STATUS_WRONG_PRPL,
- PURPLE_CMD_STATUS_WRONG_TYPE
-/** Commands registered with the core return one of these values when run.
- * Normally, a command will want to return one of the first two; in some
- * unusual cases, you might want to have several functions called for a
- * particular command; in this case, they should return
- * #PURPLE_CMD_RET_CONTINUE to cause the core to fall through to other
- * commands with the same name.
-typedef enum _PurpleCmdRet {
- PURPLE_CMD_RET_OK, /**< Everything's okay; Don't look for another command to call. */
- PURPLE_CMD_RET_FAILED, /**< The command failed, but stop looking.*/
- PURPLE_CMD_RET_CONTINUE /**< Continue, looking for other commands with the same name to call. */
-#define PURPLE_CMD_FUNC(func) ((PurpleCmdFunc)func)
-/** A function implementing a command, as passed to purple_cmd_register().
- * @todo document the arguments to these functions.
-typedef PurpleCmdRet (*PurpleCmdFunc)(PurpleConversation *, const gchar *cmd,
- gchar **args, gchar **error, void *data);
-/** A unique integer representing a command registered with
- * purple_cmd_register(), which can subsequently be passed to
- * purple_cmd_unregister() to unregister that command.
-typedef guint PurpleCmdId;
-typedef enum _PurpleCmdPriority {
- PURPLE_CMD_P_VERY_LOW = -1000,
- PURPLE_CMD_P_DEFAULT = 1000,
- PURPLE_CMD_P_PRPL = 2000,
- PURPLE_CMD_P_PLUGIN = 3000,
- PURPLE_CMD_P_ALIAS = 4000,
- PURPLE_CMD_P_HIGH = 5000,
- PURPLE_CMD_P_VERY_HIGH = 6000
-/** Flags used to set various properties of commands. Every command should
- * have at least one of #PURPLE_CMD_FLAG_IM and #PURPLE_CMD_FLAG_CHAT set in
- * order to be even slighly useful.
- * @see purple_cmd_register
-typedef enum _PurpleCmdFlag {
- /** Command is usable in IMs. */
- PURPLE_CMD_FLAG_IM = 0x01,
- /** Command is usable in multi-user chats. */
- PURPLE_CMD_FLAG_CHAT = 0x02,
- /** Command is usable only for a particular prpl. */
- PURPLE_CMD_FLAG_PRPL_ONLY = 0x04,
- /** Incorrect arguments to this command should be accepted anyway. */
- PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS = 0x08
-/**************************************************************************/
-/** @name Commands API */
-/**************************************************************************/
- * Register a new command with the core.
- * The command will only happen if commands are enabled,
- * which is a UI pref. UIs don't have to support commands at all.
- * @param cmd The command. This should be a UTF-8 (or ASCII) string, with no spaces
- * or other white space.
- * @param args A string of characters describing to libpurple how to parse this
- * command's arguments. If what the user types doesn't match this
- * pattern, libpurple will keep looking for another command, unless
- * the flag #PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS is passed in @a f.
- * This string should contain no whitespace, and use a single
- * character for each argument. The recognized characters are:
- * <li><tt>'w'</tt>: Matches a single word.</li>
- * <li><tt>'W'</tt>: Matches a single word, with formatting.</li>
- * <li><tt>'s'</tt>: Matches the rest of the arguments after this
- * point, as a single string.</li>
- * <li><tt>'S'</tt>: Same as <tt>'s'</tt> but with formatting.</li>
- * If args is the empty string, then the command accepts no arguments.
- * The args passed to the callback @a func will be a @c NULL
- * terminated array of @c NULL terminated strings, and will always
- * match the number of arguments asked for, unless
- * #PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS is passed.
- * @param p This is the priority. Higher priority commands will be run first,
- * and usually the first command will stop any others from being
- * @param f Flags specifying various options about this command, combined with
- * <tt>|</tt> (bitwise OR). You need to at least pass one of
- * #PURPLE_CMD_FLAG_IM or #PURPLE_CMD_FLAG_CHAT (you may pass both) in
- * order for the command to ever actually be called.
- * @param prpl_id If the #PURPLE_CMD_FLAG_PRPL_ONLY flag is set, this is the id
- * of the prpl to which the command applies (such as
- * <tt>"prpl-msn"</tt>). If the flag is not set, this parameter
- * is ignored; pass @c NULL (or a humourous string of your
- * @param func This is the function to call when someone enters this command.
- * @param helpstr a whitespace sensitive, UTF-8, HTML string describing how to
- * use the command. The preferred format of this string is the
- * command's name, followed by a space and any arguments it
- * accepts (if it takes any arguments, otherwise no space),
- * followed by a colon, two spaces, and a description of the
- * command in sentence form. Do not include a slash before the
- * @param data User defined data to pass to the #PurpleCmdFunc @a f.
- * @return A #PurpleCmdId, which is only used for calling
- * #purple_cmd_unregister, or @a 0 on failure.
-PurpleCmdId purple_cmd_register(const gchar *cmd, const gchar *args, PurpleCmdPriority p, PurpleCmdFlag f,
- const gchar *prpl_id, PurpleCmdFunc func, const gchar *helpstr, void *data);
- * Unregister a command with the core.
- * All registered commands must be unregistered, if they're registered by a plugin
- * or something else that might go away. Normally this is called when the plugin
- * @param id The #PurpleCmdId to unregister, as returned by #purple_cmd_register.
-void purple_cmd_unregister(PurpleCmdId id);
- * Normally the UI calls this to perform a command. This might also be useful
- * if aliases are ever implemented.
- * @param conv The conversation the command was typed in.
- * @param cmdline The command the user typed (including all arguments) as a single string.
- * The caller doesn't have to do any parsing, except removing the command
- * prefix, which the core has no knowledge of. cmd should not contain any
- * formatting, and should be in plain text (no html entities).
- * @param markup This is the same as cmd, but is the formatted version. It should be in
- * HTML, with < > and &, at least, escaped to html entities, and should
- * include both the default formatting and any extra manual formatting.
- * @param errormsg If the command failed errormsg is filled in with the appropriate error
- * message. It must be freed by the caller with g_free().
- * @return A #PurpleCmdStatus indicating if the command succeeded or failed.
-PurpleCmdStatus purple_cmd_do_command(PurpleConversation *conv, const gchar *cmdline,
- const gchar *markup, gchar **errormsg);
- * List registered commands.
- * Returns a <tt>GList</tt> (which must be freed by the caller) of all commands
- * that are valid in the context of @a conv, or all commands, if @a conv is @c
- * NULL. Don't keep this list around past the main loop, or anything else that
- * might unregister a command, as the <tt>const char *</tt>'s used get freed
- * @param conv The conversation, or @c NULL.
- * @return A @c GList of <tt>const char *</tt>, which must be freed with
- * <tt>g_list_free()</tt>.
-GList *purple_cmd_list(PurpleConversation *conv);
- * Get the help string for a command.
- * Returns the help strings for a given command in the form of a GList,
- * one node for each matching command.
- * @param conv The conversation, or @c NULL for no context.
- * @param cmd The command. No wildcards accepted, but returns help for all
- * @return A <tt>GList</tt> of <tt>const char *</tt>s, which is the help string
-GList *purple_cmd_help(PurpleConversation *conv, const gchar *cmd);
- * Get the handle for the commands API
-gpointer purple_cmds_get_handle(void);
- * Initialize the commands subsystem.
-void purple_cmds_init(void);
- * Uninitialize the commands subsystem.
-void purple_cmds_uninit(void);
-#endif /* _PURPLE_CMDS_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/command.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
- * @file command.h MSN command functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-typedef struct _MsnCommand MsnCommand;
-#include "transaction.h"
-typedef void (*MsnPayloadCb)(MsnCmdProc *cmdproc, MsnCommand *cmd,
- char *payload, size_t len);
- MsnPayloadCb payload_cb;
- * Create a command object from the incoming string and ref it.
- * @param string The incoming string.
- * @return A MsnCommand object.
-MsnCommand *msn_command_from_string(const char *string);
- * Increment the ref count.
- * @param cmd The MsnCommand to be ref.
- * @return The ref command.
-MsnCommand *msn_command_ref(MsnCommand *cmd);
- * Decrement the ref count. If the count goes to 0, destroy it.
- * @param cmd The MsnCommand to be unref.
-void msn_command_unref(MsnCommand *cmd);
-#endif /* MSN_COMMAND_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/connection.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,626 +0,0 @@
- * @file connection.h Connection API
- * @see @ref connection-signals
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_CONNECTION_H_
-#define _PURPLE_CONNECTION_H_
-/** @copydoc _PurpleConnection */
-typedef struct _PurpleConnection PurpleConnection;
- * Flags to change behavior of the client for a given connection.
- PURPLE_CONNECTION_HTML = 0x0001, /**< Connection sends/receives in 'HTML'. */
- PURPLE_CONNECTION_NO_BGCOLOR = 0x0002, /**< Connection does not send/receive
- PURPLE_CONNECTION_AUTO_RESP = 0x0004, /**< Send auto responses when away. */
- PURPLE_CONNECTION_FORMATTING_WBFO = 0x0008, /**< The text buffer must be formatted as a whole */
- PURPLE_CONNECTION_NO_NEWLINES = 0x0010, /**< No new lines are allowed in outgoing messages */
- PURPLE_CONNECTION_NO_FONTSIZE = 0x0020, /**< Connection does not send/receive font sizes */
- PURPLE_CONNECTION_NO_URLDESC = 0x0040, /**< Connection does not support descriptions with links */
- PURPLE_CONNECTION_NO_IMAGES = 0x0080, /**< Connection does not support sending of images */
- PURPLE_CONNECTION_ALLOW_CUSTOM_SMILEY = 0x0100, /**< Connection supports sending and receiving custom smileys */
- PURPLE_CONNECTION_SUPPORT_MOODS = 0x0200, /**< Connection supports setting moods */
- PURPLE_CONNECTION_SUPPORT_MOOD_MESSAGES = 0x0400 /**< Connection supports setting a message on moods */
-} PurpleConnectionFlags;
- PURPLE_DISCONNECTED = 0, /**< Disconnected. */
- PURPLE_CONNECTED, /**< Connected. */
- PURPLE_CONNECTING /**< Connecting. */
-} PurpleConnectionState;
- * Possible errors that can cause a connection to be closed.
- /** There was an error sending or receiving on the network socket, or
- * there was some protocol error (such as the server sending malformed
- PURPLE_CONNECTION_ERROR_NETWORK_ERROR = 0,
- /** The username supplied was not valid. */
- PURPLE_CONNECTION_ERROR_INVALID_USERNAME = 1,
- /** The username, password or some other credential was incorrect. Use
- * #PURPLE_CONNECTION_ERROR_INVALID_USERNAME instead if the username
- * is known to be invalid.
- PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED = 2,
- /** libpurple doesn't speak any of the authentication methods the
- PURPLE_CONNECTION_ERROR_AUTHENTICATION_IMPOSSIBLE = 3,
- /** libpurple was built without SSL support, and the connection needs
- PURPLE_CONNECTION_ERROR_NO_SSL_SUPPORT = 4,
- /** There was an error negotiating SSL on this connection, or the
- * server does not support encryption but an account option was set to
- PURPLE_CONNECTION_ERROR_ENCRYPTION_ERROR = 5,
- /** Someone is already connected to the server using the name you are
- * trying to connect with.
- PURPLE_CONNECTION_ERROR_NAME_IN_USE = 6,
- /** The username/server/other preference for the account isn't valid.
- * For instance, on IRC the username cannot contain white space.
- * This reason should not be used for incorrect passwords etc: use
- * #PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED for that.
- * @todo This reason really shouldn't be necessary. Usernames and
- * other account preferences should be validated when the
- PURPLE_CONNECTION_ERROR_INVALID_SETTINGS = 7,
- /** The server did not provide a SSL certificate. */
- PURPLE_CONNECTION_ERROR_CERT_NOT_PROVIDED = 8,
- /** The server's SSL certificate could not be trusted. */
- PURPLE_CONNECTION_ERROR_CERT_UNTRUSTED = 9,
- /** The server's SSL certificate has expired. */
- PURPLE_CONNECTION_ERROR_CERT_EXPIRED = 10,
- /** The server's SSL certificate is not yet valid. */
- PURPLE_CONNECTION_ERROR_CERT_NOT_ACTIVATED = 11,
- /** The server's SSL certificate did not match its hostname. */
- PURPLE_CONNECTION_ERROR_CERT_HOSTNAME_MISMATCH = 12,
- /** The server's SSL certificate does not have the expected
- PURPLE_CONNECTION_ERROR_CERT_FINGERPRINT_MISMATCH = 13,
- /** The server's SSL certificate is self-signed. */
- PURPLE_CONNECTION_ERROR_CERT_SELF_SIGNED = 14,
- /** There was some other error validating the server's SSL certificate.
- PURPLE_CONNECTION_ERROR_CERT_OTHER_ERROR = 15,
- /** Some other error occurred which fits into none of the other
- /* purple_connection_error_reason() in connection.c uses the fact that
- * this is the last member of the enum when sanity-checking; if other
- * reasons are added after it, the check must be updated.
- PURPLE_CONNECTION_ERROR_OTHER_ERROR = 16
-} PurpleConnectionError;
-/** Holds the type of an error along with its description. */
- /** The type of error. */
- PurpleConnectionError type;
- /** A localised, human-readable description of the error. */
-} PurpleConnectionErrorInfo;
- * Connection UI operations. Used to notify the user of changes to
- * connections, such as being disconnected, and to respond to the
- * underlying network connection appearing and disappearing. UIs should
- * call #purple_connections_set_ui_ops() with an instance of this struct.
- * When an account is connecting, this operation is called to notify
- * the UI of what is happening, as well as which @a step out of @a
- * step_count has been reached (which might be displayed as a progress
- * @see #purple_connection_update_progress
- void (*connect_progress)(PurpleConnection *gc,
- * Called when a connection is established (just before the
- * @ref signed-on signal).
- void (*connected)(PurpleConnection *gc);
- * Called when a connection is ended (between the @ref signing-off
- * and @ref signed-off signals).
- void (*disconnected)(PurpleConnection *gc);
- * Used to display connection-specific notices. (Pidgin's Gtk user
- * interface implements this as a no-op; #purple_connection_notice(),
- * which uses this operation, is not used by any of the protocols
- * shipped with libpurple.)
- void (*notice)(PurpleConnection *gc, const char *text);
- * Called when an error causes a connection to be disconnected.
- * Called before #disconnected.
- * @param text a localized error message.
- * @see #purple_connection_error
- * @deprecated in favour of
- * #PurpleConnectionUiOps.report_disconnect_reason.
- void (*report_disconnect)(PurpleConnection *gc, const char *text);
- * Called when libpurple discovers that the computer's network
- * connection is active. On Linux, this uses Network Manager if
- * available; on Windows, it uses Win32's network change notification
- void (*network_connected)(void);
- * Called when libpurple discovers that the computer's network
- * connection has gone away.
- void (*network_disconnected)(void);
- * Called when an error causes a connection to be disconnected.
- * Called before #disconnected. This op is intended to replace
- * #report_disconnect. If both are implemented, this will be called
- * first; however, there's no real reason to implement both.
- * @param reason why the connection ended, if known, or
- * #PURPLE_CONNECTION_ERROR_OTHER_ERROR, if not.
- * @param text a localized message describing the disconnection
- * in more detail to the user.
- * @see #purple_connection_error_reason
- void (*report_disconnect_reason)(PurpleConnection *gc,
- PurpleConnectionError reason,
- void (*_purple_reserved1)(void);
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
-} PurpleConnectionUiOps;
-/* Represents an active connection on an account. */
-struct _PurpleConnection
- PurplePlugin *prpl; /**< The protocol plugin. */
- PurpleConnectionFlags flags; /**< Connection flags. */
- PurpleConnectionState state; /**< The connection state. */
- PurpleAccount *account; /**< The account being connected to. */
- char *password; /**< The password used. */
- int inpa; /**< The input watcher. */
- GSList *buddy_chats; /**< A list of active chats
- (#PurpleConversation structs of type
- #PURPLE_CONV_TYPE_CHAT). */
- void *proto_data; /**< Protocol-specific data. */
- char *display_name; /**< How you appear to other people. */
- guint keepalive; /**< Keep-alive. */
- /** Wants to Die state. This is set when the user chooses to log out, or
- * when the protocol is disconnected and should not be automatically
- * reconnected (incorrect password, etc.). prpls should rely on
- * purple_connection_error_reason() to set this for them rather than
- * setting it themselves.
- * @see purple_connection_error_is_fatal
- guint disconnect_timeout; /**< Timer used for nasty stack tricks */
- time_t last_received; /**< When we last received a packet. Set by the
- prpl to avoid sending unneeded keepalives */
-/**************************************************************************/
-/** @name Connection API */
-/**************************************************************************/
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_CONNECTION_C_)
- * This function should only be called by purple_account_connect()
- * in account.c. If you're trying to sign on an account, use that
- * Creates a connection to the specified account and either connects
- * or attempts to register a new account. If you are logging in,
- * the connection uses the current active status for this account.
- * So if you want to sign on as "away," for example, you need to
- * have called purple_account_set_status(account, "away").
- * (And this will call purple_account_connect() automatically).
- * @param account The account the connection should be connecting to.
- * @param regist Whether we are registering a new account or just
- * trying to do a normal signon.
- * @param password The password to use.
- * @deprecated As this is internal, we should make it private in 3.0.0.
-void purple_connection_new(PurpleAccount *account, gboolean regist,
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_CONNECTION_C_)
- * This function should only be called by purple_account_unregister()
- * Tries to unregister the account on the server. If the account is not
- * connected, also creates a new connection.
- * @param account The account to unregister
- * @param password The password to use.
- * @param cb Optional callback to be called when unregistration is complete
- * @param user_data user data to pass to the callback
- * @deprecated As this is internal, we should make it private in 3.0.0.
-void purple_connection_new_unregister(PurpleAccount *account, const char *password, PurpleAccountUnregistrationCb cb, void *user_data);
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_CONNECTION_C_)
- * Disconnects and destroys a PurpleConnection.
- * This function should only be called by purple_account_disconnect()
- * in account.c. If you're trying to sign off an account, use that
- * @param gc The purple connection to destroy.
- * @deprecated As this is internal, we should make it private in 3.0.0.
-void purple_connection_destroy(PurpleConnection *gc);
- * Sets the connection state. PRPLs should call this and pass in
- * the state #PURPLE_CONNECTED when the account is completely
- * signed on. What does it mean to be completely signed on? If
- * the core can call prpl->set_status, and it successfully changes
- * your status, then the account is online.
- * @param gc The connection.
- * @param state The connection state.
-void purple_connection_set_state(PurpleConnection *gc, PurpleConnectionState state);
- * Sets the connection's account.
- * @param gc The connection.
- * @param account The account.
-void purple_connection_set_account(PurpleConnection *gc, PurpleAccount *account);
- * Sets the connection's displayed name.
- * @param gc The connection.
- * @param name The displayed name.
-void purple_connection_set_display_name(PurpleConnection *gc, const char *name);
- * Sets the protocol data for a connection.
- * @param connection The PurpleConnection.
- * @param proto_data The protocol data to set for the connection.
-void purple_connection_set_protocol_data(PurpleConnection *connection, void *proto_data);
- * Returns the connection state.
- * @param gc The connection.
- * @return The connection state.
-PurpleConnectionState purple_connection_get_state(const PurpleConnection *gc);
- * Returns TRUE if the account is connected, otherwise returns FALSE.
- * @return TRUE if the account is connected, otherwise returns FALSE.
-#define PURPLE_CONNECTION_IS_CONNECTED(gc) \
- (purple_connection_get_state(gc) == PURPLE_CONNECTED)
- * Returns the connection's account.
- * @param gc The connection.
- * @return The connection's account.
-PurpleAccount *purple_connection_get_account(const PurpleConnection *gc);
- * Returns the protocol plugin managing a connection.
- * @param gc The connection.
- * @return The protocol plugin.
-PurplePlugin * purple_connection_get_prpl(const PurpleConnection *gc);
- * Returns the connection's password.
- * @param gc The connection.
- * @return The connection's password.
-const char *purple_connection_get_password(const PurpleConnection *gc);
- * Returns the connection's displayed name.
- * @param gc The connection.
- * @return The connection's displayed name.
-const char *purple_connection_get_display_name(const PurpleConnection *gc);
- * Gets the protocol data from a connection.
- * @param connection The PurpleConnection.
- * @return The protocol data for the connection.
-void *purple_connection_get_protocol_data(const PurpleConnection *connection);
- * Updates the connection progress.
- * @param gc The connection.
- * @param text Information on the current step.
- * @param step The current step.
- * @param count The total number of steps.
-void purple_connection_update_progress(PurpleConnection *gc, const char *text,
- size_t step, size_t count);
- * Displays a connection-specific notice.
- * @param gc The connection.
- * @param text The notice text.
-void purple_connection_notice(PurpleConnection *gc, const char *text);
- * Closes a connection with an error.
- * @param gc The connection.
- * @param reason The error text, which may not be @c NULL.
- * @deprecated in favour of #purple_connection_error_reason. Calling
- * @c purple_connection_error(gc, text) is equivalent to calling
- * @c purple_connection_error_reason(gc, reason, text) where @c reason is
- * #PURPLE_CONNECTION_ERROR_OTHER_ERROR if @c gc->wants_to_die is @c TRUE, and
- * #PURPLE_CONNECTION_ERROR_NETWORK_ERROR if not. (This is to keep
- * auto-reconnection behaviour the same when using old prpls which don't use
-void purple_connection_error(PurpleConnection *gc, const char *reason);
- * Closes a connection with an error and a human-readable description of the
- * error. It also sets @c gc->wants_to_die to the value of
- * #purple_connection_error_is_fatal(@a reason), mainly for
- * backwards-compatibility.
- * @param gc the connection which is closing.
- * @param reason why the connection is closing.
- * @param description a non-@c NULL localized description of the error.
-purple_connection_error_reason (PurpleConnection *gc,
- PurpleConnectionError reason,
- const char *description);
- * Closes a connection due to an SSL error; this is basically a shortcut to
- * turning the #PurpleSslErrorType into a #PurpleConnectionError and a
- * human-readable string and then calling purple_connection_error_reason().
-purple_connection_ssl_error (PurpleConnection *gc,
- PurpleSslErrorType ssl_error);
- * Reports whether a disconnection reason is fatal (in which case the account
- * should probably not be automatically reconnected) or transient (so
- * auto-reconnection is a good idea).
- * For instance, #PURPLE_CONNECTION_ERROR_NETWORK_ERROR is a temporary error,
- * which might be caused by losing the network connection, so <tt>
- * purple_connection_error_is_fatal (PURPLE_CONNECTION_ERROR_NETWORK_ERROR)</tt>
- * is @c FALSE. On the other hand,
- * #PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED probably indicates a
- * misconfiguration of the account which needs the user to go fix it up, so
- * <tt> purple_connection_error_is_fatal
- * (PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED)</tt> is @c TRUE.
- * (This function is meant to replace checking PurpleConnection.wants_to_die.)
- * @return @c TRUE if the account should not be automatically reconnected, and
-purple_connection_error_is_fatal (PurpleConnectionError reason);
-/**************************************************************************/
-/** @name Connections API */
-/**************************************************************************/
- * Disconnects from all connections.
-void purple_connections_disconnect_all(void);
- * Returns a list of all active connections. This does not
- * include connections that are in the process of connecting.
- * @constreturn A list of all active connections.
-GList *purple_connections_get_all(void);
- * Returns a list of all connections in the process of connecting.
- * @constreturn A list of connecting connections.
-GList *purple_connections_get_connecting(void);
- * Checks if gc is still a valid pointer to a gc.
- * @return @c TRUE if gc is valid.
- * @deprecated Do not use this. Instead, cancel your asynchronous request
- * when the PurpleConnection is destroyed.
- * TODO: Eventually this bad boy will be removed, because it is
- * a gross fix for a crashy problem.
-#define PURPLE_CONNECTION_IS_VALID(gc) (g_list_find(purple_connections_get_all(), (gc)) != NULL)
-/**************************************************************************/
-/** @name UI Registration Functions */
-/**************************************************************************/
- * Sets the UI operations structure to be used for connections.
- * @param ops The UI operations structure.
-void purple_connections_set_ui_ops(PurpleConnectionUiOps *ops);
- * Returns the UI operations structure used for connections.
- * @return The UI operations structure in use.
-PurpleConnectionUiOps *purple_connections_get_ui_ops(void);
-/**************************************************************************/
-/** @name Connections Subsystem */
-/**************************************************************************/
- * Initializes the connections subsystem.
-void purple_connections_init(void);
- * Uninitializes the connections subsystem.
-void purple_connections_uninit(void);
- * Returns the handle to the connections subsystem.
- * @return The connections subsystem handle.
-void *purple_connections_get_handle(void);
-#endif /* _PURPLE_CONNECTION_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/contact.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,744 +0,0 @@
- * @file contact.h Header file for contact.c
- * MaYuan<mayuan2006@gmail.com>
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
-typedef struct _MsnCallbackState MsnCallbackState;
- MSN_ACCEPTED_BUDDY = 0x04,
- MSN_DENIED_BUDDY = 0x08,
- MSN_RENAME_GROUP = 0x40,
- MSN_UPDATE_INFO = 0x80,
- MSN_ANNOTATE_USER = 0x100
- MSN_UPDATE_DISPLAY, /* Real display name */
- MSN_UPDATE_ALIAS, /* Aliased display name */
-} MsnSoapPartnerScenario;
-#define MSN_APPLICATION_ID "CFE80F9D-180F-4399-82AB-413F33A1FA11"
-#define MSN_CONTACT_SERVER "omega.contacts.msn.com"
-#define MSN_GET_CONTACT_POST_URL "/abservice/SharingService.asmx"
-#define MSN_GET_CONTACT_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/FindMembership"
-#define MSN_GET_CONTACT_UPDATE_XML \
- "<deltasOnly>true</deltasOnly>"\
- "<lastChange>%s</lastChange>"
-#define MSN_GET_CONTACT_TEMPLATE "<?xml version='1.0' encoding='utf-8'?>"\
-"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"\
- "<soap:Header xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"\
- "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ApplicationId xmlns=\"http://www.msn.com/webservices/AddressBook\">" MSN_APPLICATION_ID "</ApplicationId>"\
- "<IsMigration xmlns=\"http://www.msn.com/webservices/AddressBook\">false</IsMigration>"\
- "<PartnerScenario xmlns=\"http://www.msn.com/webservices/AddressBook\">%s</PartnerScenario>"\
- "</ABApplicationHeader>"\
- "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ManagedGroupRequest xmlns=\"http://www.msn.com/webservices/AddressBook\">false</ManagedGroupRequest>"\
- "<TicketToken>EMPTY</TicketToken>"\
- "<soap:Body xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"\
- "<FindMembership xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<serviceFilter xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<Types xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ServiceType xmlns=\"http://www.msn.com/webservices/AddressBook\">Messenger</ServiceType>"\
- "<ServiceType xmlns=\"http://www.msn.com/webservices/AddressBook\">Invitation</ServiceType>"\
- "<ServiceType xmlns=\"http://www.msn.com/webservices/AddressBook\">SocialNetwork</ServiceType>"\
- "<ServiceType xmlns=\"http://www.msn.com/webservices/AddressBook\">Space</ServiceType>"\
- "<ServiceType xmlns=\"http://www.msn.com/webservices/AddressBook\">Profile</ServiceType>"\
-/************************************************
- * *********************************************/
-#define MSN_ADDRESS_BOOK_POST_URL "/abservice/abservice.asmx"
-/* Create AddressBook template */
-#define MSN_ADD_ADDRESSBOOK_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/ABAdd"
-#define MSN_ADD_ADDRESSBOOK_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
- " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
- " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
- " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
- " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
- "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
- "<IsMigration>false</IsMigration>"\
- "<PartnerScenario>Initial</PartnerScenario>"\
- "</ABApplicationHeader>"\
- "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ManagedGroupRequest>false</ManagedGroupRequest>"\
- "<TicketToken>EMPTY</TicketToken>"\
- "<ABAdd xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ownerPuid>0</ownerPuid>"\
- "<ownerEmail>%s</ownerEmail>"\
- "<fDefault>true</fDefault>"\
-#define MSN_GET_ADDRESS_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/ABFindAll"
-#define MSN_GET_ADDRESS_FULL_TIME "0001-01-01T00:00:00.0000000-08:00"
-#define MSN_GET_ADDRESS_UPDATE_XML \
- "<deltasOnly>true</deltasOnly>"\
- "<lastChange>%s</lastChange>"
-#define MSN_GET_GLEAM_UPDATE_XML \
- "<dynamicItemView>Gleam</dynamicItemView>"\
- "<dynamicItemLastChange>%s</dynamicItemLastChange>"
-#define MSN_GET_ADDRESS_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
- " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
- " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
- " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
- " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
- "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
- "<IsMigration>false</IsMigration>"\
- "<PartnerScenario>%s</PartnerScenario>"\
- "</ABApplicationHeader>"\
- "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ManagedGroupRequest>false</ManagedGroupRequest>"\
- "<TicketToken>EMPTY</TicketToken>"\
- "<ABFindAll xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<abId>00000000-0000-0000-0000-000000000000</abId>"\
- "<abView>Full</abView>"\
-/*Gleams SOAP request template*/
-#define MSN_GET_GLEAMS_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/ABFindAll"
-#define MSN_GLEAMS_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
- " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
- " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
- " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
- " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
- "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
- "<IsMigration>false</IsMigration>"\
- "<PartnerScenario>Initial</PartnerScenario>"\
- "</ABApplicationHeader>"\
- "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ManagedGroupRequest>false</ManagedGroupRequest>"\
- "<TicketToken>EMPTY</TicketToken>"\
- "<ABFindAll xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<abId>00000000-0000-0000-0000-000000000000</abId>"\
- "<abView>Full</abView>"\
- "<dynamicItemView>Gleam</dynamicItemView>"\
- "<dynamicItemLastChange>0001-01-01T00:00:00.0000000-08:00</dynamicItemLastChange>"\
-/*******************************************************
- * Contact Management SOAP actions
- *******************************************************/
-#define MSN_CONTACT_ADD_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/ABContactAdd"
-#define MSN_CONTACT_LIVE_PENDING_XML \
- "<Contact xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<contactType>LivePending</contactType>"\
- "<passportName>%s</passportName>"\
- "<isMessengerUser>true</isMessengerUser>"\
-#define MSN_CONTACT_XML \
- "<Contact xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<passportName>%s</passportName>"\
- "<isSmtp>false</isSmtp>"\
- "<isMessengerUser>true</isMessengerUser>"\
-#define MSN_CONTACT_DISPLAYNAME_XML \
- "<Contact xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<displayName>%s</displayName>"\
- "<passportName>%s</passportName>"\
- "<isMessengerUser>true</isMessengerUser>"\
-#define MSN_CONTACT_ID_XML \
- "<contactId>%s</contactId>"\
-#define MSN_CONTACT_EMAIL_XML \
- "<contactEmailType>%s</contactEmailType>"\
- "<isMessengerEnabled>true</isMessengerEnabled>"\
- "<Capability>%d</Capability>"\
- "<MessengerEnabledExternally>false</MessengerEnabledExternally>"\
- "<propertiesChanged/>"\
-#define MSN_CONTACT_INVITE_MESSAGE_XML \
- "<MessengerMemberInfo>"\
- "<PendingAnnotations>"\
- "<Name>MSN.IM.InviteMessage</Name>"\
- "</PendingAnnotations>"\
- "<DisplayName>%s</DisplayName>"\
- "</MessengerMemberInfo>"
-#define MSN_ADD_CONTACT_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
-"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
- " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
- " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
- " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
- "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
- "<IsMigration>false</IsMigration>"\
- "<PartnerScenario>ContactSave</PartnerScenario>"\
- "</ABApplicationHeader>"\
- "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ManagedGroupRequest>false</ManagedGroupRequest>"\
- "<TicketToken>EMPTY</TicketToken>"\
- "<ABContactAdd xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<abId>00000000-0000-0000-0000-000000000000</abId>"\
- "<contacts>%s</contacts>"\
- "<EnableAllowListManagement>true</EnableAllowListManagement>"\
-/* Add a contact to a group */
-#define MSN_ADD_CONTACT_GROUP_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/ABGroupContactAdd"
-#define MSN_ADD_CONTACT_GROUP_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
-"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
- " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
- " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
- " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
- "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
- "<IsMigration>false</IsMigration>"\
- "<PartnerScenario>ContactSave</PartnerScenario>"\
- "</ABApplicationHeader>"\
- "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ManagedGroupRequest>false</ManagedGroupRequest>"\
- "<TicketToken>EMPTY</TicketToken>"\
- "<ABGroupContactAdd xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<abId>00000000-0000-0000-0000-000000000000</abId>"\
- "<contacts>%s</contacts>"\
- "<groupContactAddOptions>"\
- "<fGenerateMissingQuickName>true</fGenerateMissingQuickName>"\
- "<EnableAllowListManagement>true</EnableAllowListManagement>"\
- "</groupContactAddOptions>"\
- "</ABGroupContactAdd>"\
-/* Delete a contact from the Contact List */
-#define MSN_CONTACT_DEL_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/ABContactDelete"
-#define MSN_DEL_CONTACT_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
- " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
- " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
- " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
- " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
- "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
- "<IsMigration>false</IsMigration>"\
- "<PartnerScenario>Timer</PartnerScenario>"\
- "</ABApplicationHeader>"\
- "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ManagedGroupRequest>false</ManagedGroupRequest>"\
- "<TicketToken>EMPTY</TicketToken>"\
- "<ABContactDelete xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<abId>00000000-0000-0000-0000-000000000000</abId>"\
- "<contacts>%s</contacts>"\
-/* Remove a contact from a group */
-#define MSN_CONTACT_DEL_GROUP_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/ABGroupContactDelete"
-#define MSN_CONTACT_DEL_GROUP_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
- " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
- " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
- " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
- " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
- "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
- "<IsMigration>false</IsMigration>"\
- "<PartnerScenario>Timer</PartnerScenario>"\
- "</ABApplicationHeader>"\
- "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ManagedGroupRequest>false</ManagedGroupRequest>"\
- "<TicketToken>EMPTY</TicketToken>"\
- "<ABGroupContactDelete xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<abId>00000000-0000-0000-0000-000000000000</abId>"\
- "<contacts>%s</contacts>"\
- "</ABGroupContactDelete>"\
-/* Update Contact Information */
-#define MSN_CONTACT_UPDATE_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/ABContactUpdate"
-#define MSN_CONTACT_UPDATE_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
- " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
- " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
- " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
- " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
- "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
- "<IsMigration>false</IsMigration>"\
- "<PartnerScenario></PartnerScenario>"\
- "</ABApplicationHeader>"\
- "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ManagedGroupRequest>false</ManagedGroupRequest>"\
- "<TicketToken>EMPTY</TicketToken>"\
- "<ABContactUpdate xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<abId>00000000-0000-0000-0000-000000000000</abId>"\
- "<Contact xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
-/* Update Contact Annotations */
-#define MSN_CONTACT_ANNOTATE_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/ABContactUpdate"
-#define MSN_CONTACT_ANNOTATE_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
- " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
- " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
- " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
- " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
- "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
- "<IsMigration>false</IsMigration>"\
- "<PartnerScenario></PartnerScenario>"\
- "</ABApplicationHeader>"\
- "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ManagedGroupRequest>false</ManagedGroupRequest>"\
- "<TicketToken>EMPTY</TicketToken>"\
- "<ABContactUpdate xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<abId>00000000-0000-0000-0000-000000000000</abId>"\
- "<Contact xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<propertiesChanged>Annotation</propertiesChanged>"\
-/*******************************************************
- * Add/Delete contact from lists SOAP actions
- *******************************************************/
-/* block means delete from allow list and add contact to block list */
-#define MSN_SHARE_POST_URL "/abservice/SharingService.asmx"
-#define MSN_ADD_MEMBER_TO_LIST_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/AddMember"
-#define MSN_DELETE_MEMBER_FROM_LIST_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/DeleteMember"
-#define MSN_MEMBER_PASSPORT_XML \
- "<Member xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"%s\">"\
- "<State>Accepted</State>"\
-#define MSN_MEMBER_MEMBERSHIPID_XML \
- "<Member xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"%s\">"\
- "<MembershipId>%u</MembershipId>"\
- "<State>Accepted</State>"\
-/* first delete contact from allow list */
-#define MSN_CONTACT_DELETE_FROM_LIST_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
- " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
- " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
- " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
- " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
- "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
- "<IsMigration>false</IsMigration>"\
- "<PartnerScenario>%s</PartnerScenario>"\
- "</ABApplicationHeader>"\
- "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ManagedGroupRequest>false</ManagedGroupRequest>"\
- "<TicketToken>EMPTY</TicketToken>"\
- "<DeleteMember xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<Type>Messenger</Type>"\
- "<ForeignId></ForeignId>"\
- "<MemberRole>%s</MemberRole>"\
-#define MSN_CONTACT_ADD_TO_LIST_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
- " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
- " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
- " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
- " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
- "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
- "<IsMigration>false</IsMigration>"\
- "<PartnerScenario>%s</PartnerScenario>"\
- "</ABApplicationHeader>"\
- "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ManagedGroupRequest>false</ManagedGroupRequest>"\
- "<TicketToken>EMPTY</TicketToken>"\
- "<AddMember xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<Type>Messenger</Type>"\
- "<ForeignId></ForeignId>"\
- "<MemberRole>%s</MemberRole>"\
-/*******************************************************
- * Group management SOAP actions
- *******************************************************/
-#define MSN_GROUP_ADD_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/ABGroupAdd"
-#define MSN_GROUP_ADD_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
- " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
- " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
- " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
- " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
- "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
- "<IsMigration>false</IsMigration>"\
- "<PartnerScenario>GroupSave</PartnerScenario>"\
- "</ABApplicationHeader>"\
- "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ManagedGroupRequest>false</ManagedGroupRequest>"\
- "<TicketToken>EMPTY</TicketToken>"\
- "<ABGroupAdd xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<abId>00000000-0000-0000-0000-000000000000</abId>"\
- "<fRenameOnMsgrConflict>false</fRenameOnMsgrConflict>"\
- "<groupType>C8529CE2-6EAD-434d-881F-341E17DB3FF8</groupType>"\
- "<fMessenger>false</fMessenger>"\
- "<Name>MSN.IM.Display</Name>"\
-#define MSN_GROUP_DEL_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/ABGroupDelete"
-#define MSN_GROUP_DEL_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
- " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
- " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
- " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
- " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
- "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
- "<IsMigration>false</IsMigration>"\
- "<PartnerScenario>Timer</PartnerScenario>"\
- "</ABApplicationHeader>"\
- "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ManagedGroupRequest>false</ManagedGroupRequest>"\
- "<TicketToken>EMPTY</TicketToken>"\
- "<ABGroupDelete xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<abId>00000000-0000-0000-0000-000000000000</abId>"\
-/* change a group's name */
-#define MSN_GROUP_RENAME_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/ABGroupUpdate"
-#define MSN_GROUP_RENAME_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
- " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
- " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
- " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
- " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
- "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
- "<IsMigration>false</IsMigration>"\
- "<PartnerScenario>Timer</PartnerScenario>"\
- "</ABApplicationHeader>"\
- "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<ManagedGroupRequest>false</ManagedGroupRequest>"\
- "<TicketToken>EMPTY</TicketToken>"\
- "<ABGroupUpdate xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
- "<abId>00000000-0000-0000-0000-000000000000</abId>"\
- "<groupId>%s</groupId>"\
- "<propertiesChanged>GroupName </propertiesChanged>"\
-struct _MsnCallbackState
- gchar * old_group_name;
- gchar * new_group_name;
- MsnCallbackAction action;
- const gchar *post_action;
- /* For msn_get_contact_list only */
- MsnSoapPartnerScenario partner_scenario;
-/************************************************
- ************************************************/
-MsnCallbackState * msn_callback_state_new(MsnSession *session);
-MsnCallbackState * msn_callback_state_dup(MsnCallbackState *state);
-void msn_callback_state_free(MsnCallbackState *state);
-void msn_callback_state_set_who(MsnCallbackState *state, const gchar *who);
-void msn_callback_state_set_uid(MsnCallbackState *state, const gchar *uid);
-void msn_callback_state_set_old_group_name(MsnCallbackState *state,
- const gchar *old_group_name);
-void msn_callback_state_set_new_group_name(MsnCallbackState *state,
- const gchar *new_group_name);
-void msn_callback_state_set_guid(MsnCallbackState *state, const gchar *guid);
-void msn_callback_state_set_list_id(MsnCallbackState *state, MsnListId list_id);
-void msn_callback_state_set_action(MsnCallbackState *state,
- MsnCallbackAction action);
-void msn_get_contact_list(MsnSession *session,
- const MsnSoapPartnerScenario partner_scenario,
-void msn_get_address_book(MsnSession *session,
- const MsnSoapPartnerScenario partner_scenario,
- const char * update, const char * gupdate);
-/* contact SOAP operations */
-void msn_update_contact(MsnSession *session, const char *passport, MsnContactUpdateType type, const char* value);
-void msn_annotate_contact(MsnSession *session, const char *passport, ...) G_GNUC_NULL_TERMINATED;
-void msn_add_contact(MsnSession *session, MsnCallbackState *state,
-void msn_delete_contact(MsnSession *session, MsnUser *user);
-void msn_add_contact_to_group(MsnSession *session, MsnCallbackState *state,
- const char *passport, const char *groupId);
-void msn_del_contact_from_group(MsnSession *session, const char *passport,
- const char *group_name);
-void msn_add_group(MsnSession *session, MsnCallbackState *state,
- const char* group_name);
-void msn_del_group(MsnSession *session, const gchar *group_name);
-void msn_contact_rename_group(MsnSession *session, const char *old_group_name,
- const char *new_group_name);
-void msn_add_contact_to_list(MsnSession *session, MsnCallbackState *state,
- const gchar *passport, const MsnListId list);
-void msn_del_contact_from_list(MsnSession *session, MsnCallbackState *state,
- const gchar *passport, const MsnListId list);
-#endif /* MSN_CONTACT_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/conversation.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1476 +0,0 @@
- * @file conversation.h Conversation API
- * @see @ref conversation-signals
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_CONVERSATION_H_
-#define _PURPLE_CONVERSATION_H_
-/**************************************************************************/
-/**************************************************************************/
-/** @copydoc _PurpleConversationUiOps */
-typedef struct _PurpleConversationUiOps PurpleConversationUiOps;
-/** @copydoc _PurpleConversation */
-typedef struct _PurpleConversation PurpleConversation;
-/** @copydoc _PurpleConvIm */
-typedef struct _PurpleConvIm PurpleConvIm;
-/** @copydoc _PurpleConvChat */
-typedef struct _PurpleConvChat PurpleConvChat;
-/** @copydoc _PurpleConvChatBuddy */
-typedef struct _PurpleConvChatBuddy PurpleConvChatBuddy;
-/** @copydoc _PurpleConvMessage */
-typedef struct _PurpleConvMessage PurpleConvMessage;
- * A type of conversation.
- PURPLE_CONV_TYPE_UNKNOWN = 0, /**< Unknown conversation type. */
- PURPLE_CONV_TYPE_IM, /**< Instant Message. */
- PURPLE_CONV_TYPE_CHAT, /**< Chat room. */
- PURPLE_CONV_TYPE_MISC, /**< A misc. conversation. */
- PURPLE_CONV_TYPE_ANY /**< Any type of conversation. */
-} PurpleConversationType;
- * Conversation update type.
- PURPLE_CONV_UPDATE_ADD = 0, /**< The buddy associated with the conversation
- PURPLE_CONV_UPDATE_REMOVE, /**< The buddy associated with the conversation
- PURPLE_CONV_UPDATE_ACCOUNT, /**< The purple_account was changed. */
- PURPLE_CONV_UPDATE_TYPING, /**< The typing state was updated. */
- PURPLE_CONV_UPDATE_UNSEEN, /**< The unseen state was updated. */
- PURPLE_CONV_UPDATE_LOGGING, /**< Logging for this conversation was
- enabled or disabled. */
- PURPLE_CONV_UPDATE_TOPIC, /**< The topic for a chat was updated. */
- * XXX These need to go when we implement a more generic core/UI event
- PURPLE_CONV_ACCOUNT_ONLINE, /**< One of the user's accounts went online. */
- PURPLE_CONV_ACCOUNT_OFFLINE, /**< One of the user's accounts went offline. */
- PURPLE_CONV_UPDATE_AWAY, /**< The other user went away. */
- PURPLE_CONV_UPDATE_ICON, /**< The other user's buddy icon changed. */
- PURPLE_CONV_UPDATE_TITLE,
- PURPLE_CONV_UPDATE_CHATLEFT,
- PURPLE_CONV_UPDATE_FEATURES /**< The features for a chat have changed */
- * The typing state of a user.
- PURPLE_NOT_TYPING = 0, /**< Not typing. */
- PURPLE_TYPING, /**< Currently typing. */
- PURPLE_TYPED /**< Stopped typing momentarily. */
- * Flags applicable to a message. Most will have send, recv or system.
- PURPLE_MESSAGE_SEND = 0x0001, /**< Outgoing message. */
- PURPLE_MESSAGE_RECV = 0x0002, /**< Incoming message. */
- PURPLE_MESSAGE_SYSTEM = 0x0004, /**< System message. */
- PURPLE_MESSAGE_AUTO_RESP = 0x0008, /**< Auto response. */
- PURPLE_MESSAGE_ACTIVE_ONLY = 0x0010, /**< Hint to the UI that this
- which are only open for
- (e.g. for contact-aware
- PURPLE_MESSAGE_NICK = 0x0020, /**< Contains your nick. */
- PURPLE_MESSAGE_NO_LOG = 0x0040, /**< Do not log. */
- PURPLE_MESSAGE_WHISPER = 0x0080, /**< Whispered message. */
- PURPLE_MESSAGE_ERROR = 0x0200, /**< Error message. */
- PURPLE_MESSAGE_DELAYED = 0x0400, /**< Delayed message. */
- PURPLE_MESSAGE_RAW = 0x0800, /**< "Raw" message - don't
- PURPLE_MESSAGE_IMAGES = 0x1000, /**< Message contains images */
- PURPLE_MESSAGE_NOTIFY = 0x2000, /**< Message is a notification */
- PURPLE_MESSAGE_NO_LINKIFY = 0x4000, /**< Message should not be auto-
- linkified @since 2.1.0 */
- PURPLE_MESSAGE_INVISIBLE = 0x8000 /**< Message should not be displayed */
- * Flags applicable to users in Chats.
- PURPLE_CBFLAGS_NONE = 0x0000, /**< No flags */
- PURPLE_CBFLAGS_VOICE = 0x0001, /**< Voiced user or "Participant" */
- PURPLE_CBFLAGS_HALFOP = 0x0002, /**< Half-op */
- PURPLE_CBFLAGS_OP = 0x0004, /**< Channel Op or Moderator */
- PURPLE_CBFLAGS_FOUNDER = 0x0008, /**< Channel Founder */
- PURPLE_CBFLAGS_TYPING = 0x0010, /**< Currently typing */
- PURPLE_CBFLAGS_AWAY = 0x0020 /**< Currently away. @since 2.8.0 */
-} PurpleConvChatBuddyFlags;
- * Conversation operations and events.
- * Any UI representing a conversation must assign a filled-out
- * PurpleConversationUiOps structure to the PurpleConversation.
-struct _PurpleConversationUiOps
- /** Called when @a conv is created (but before the @ref
- * conversation-created signal is emitted).
- void (*create_conversation)(PurpleConversation *conv);
- /** Called just before @a conv is freed. */
- void (*destroy_conversation)(PurpleConversation *conv);
- /** Write a message to a chat. If this field is @c NULL, libpurple will
- * fall back to using #write_conv.
- * @see purple_conv_chat_write()
- void (*write_chat)(PurpleConversation *conv, const char *who,
- const char *message, PurpleMessageFlags flags,
- /** Write a message to an IM conversation. If this field is @c NULL,
- * libpurple will fall back to using #write_conv.
- * @see purple_conv_im_write()
- void (*write_im)(PurpleConversation *conv, const char *who,
- const char *message, PurpleMessageFlags flags,
- /** Write a message to a conversation. This is used rather than the
- * chat- or im-specific ops for errors, system messages (such as "x is
- * now know as y"), and as the fallback if #write_im and #write_chat
- * are not implemented. It should be implemented, or the UI will miss
- * conversation error messages and your users will hate you.
- * @see purple_conversation_write()
- void (*write_conv)(PurpleConversation *conv,
- PurpleMessageFlags flags,
- /** Add @a cbuddies to a chat.
- * @param cbuddies A @c GList of #PurpleConvChatBuddy structs.
- * @param new_arrivals Whether join notices should be shown.
- * (Join notices are actually written to the
- * conversation by #purple_conv_chat_add_users().)
- void (*chat_add_users)(PurpleConversation *conv,
- gboolean new_arrivals);
- /** Rename the user in this chat named @a old_name to @a new_name. (The
- * rename message is written to the conversation by libpurple.)
- * @param new_alias @a new_name's new alias, if they have one.
- * @see purple_conv_chat_add_users()
- void (*chat_rename_user)(PurpleConversation *conv, const char *old_name,
- const char *new_name, const char *new_alias);
- /** Remove @a users from a chat.
- * @param users A @c GList of <tt>const char *</tt>s.
- * @see purple_conv_chat_rename_user()
- void (*chat_remove_users)(PurpleConversation *conv, GList *users);
- /** Called when a user's flags are changed.
- * @see purple_conv_chat_user_set_flags()
- void (*chat_update_user)(PurpleConversation *conv, const char *user);
- /** Present this conversation to the user; for example, by displaying
- void (*present)(PurpleConversation *conv);
- /** If this UI has a concept of focus (as in a windowing system) and
- * this conversation has the focus, return @c TRUE; otherwise, return
- gboolean (*has_focus)(PurpleConversation *conv);
- gboolean (*custom_smiley_add)(PurpleConversation *conv, const char *smile, gboolean remote);
- void (*custom_smiley_write)(PurpleConversation *conv, const char *smile,
- const guchar *data, gsize size);
- void (*custom_smiley_close)(PurpleConversation *conv, const char *smile);
- /** Prompt the user for confirmation to send @a message. This function
- * should arrange for the message to be sent if the user accepts. If
- * this field is @c NULL, libpurple will fall back to using
- * #purple_request_action().
- void (*send_confirm)(PurpleConversation *conv, const char *message);
- void (*_purple_reserved1)(void);
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
- void (*_purple_reserved4)(void);
- * Data specific to Instant Messages.
- PurpleConversation *conv; /**< The parent conversation. */
- PurpleTypingState typing_state; /**< The current typing state. */
- guint typing_timeout; /**< The typing timer handle. */
- time_t type_again; /**< The type again time. */
- guint send_typed_timeout; /**< The type again timer handle. */
- PurpleBuddyIcon *icon; /**< The buddy icon. */
- * Data specific to Chats.
- PurpleConversation *conv; /**< The parent conversation. */
- GList *in_room; /**< The users in the room.
- * @deprecated Will be removed in 3.0.0
- GList *ignored; /**< Ignored users. */
- char *who; /**< The person who set the topic. */
- char *topic; /**< The topic. */
- int id; /**< The chat ID. */
- char *nick; /**< Your nick in this chat. */
- gboolean left; /**< We left the chat and kept the window open */
- GHashTable *users; /**< Hash table of the users in the room.
- * Data for "Chat Buddies"
-struct _PurpleConvChatBuddy
- char *name; /**< The chat participant's name in the chat. */
- char *alias; /**< The chat participant's alias, if known;
- char *alias_key; /**< A string by which this buddy will be sorted,
- * or @c NULL if the buddy should be sorted by
- * its @c name. (This is currently always @c
- gboolean buddy; /**< @a TRUE if this chat participant is on the
- * buddy list; @a FALSE otherwise.
- PurpleConvChatBuddyFlags flags; /**< A bitwise OR of flags for this participant,
- * such as whether they are a channel operator.
- GHashTable *attributes; /**< A hash table of attributes about the user, such as
- * real name, user@host, etc.
- gpointer ui_data; /** < The UI can put whatever it wants here. */
- * Description of a conversation message
-struct _PurpleConvMessage
- PurpleMessageFlags flags;
- PurpleConversation *conv; /**< @since 2.3.0 */
- char *alias; /**< @since 2.3.0 */
- * A core representation of a conversation between two or more people.
- * The conversation can be an IM or a chat.
-struct _PurpleConversation
- PurpleConversationType type; /**< The type of conversation. */
- PurpleAccount *account; /**< The user using this conversation. */
- char *name; /**< The name of the conversation. */
- char *title; /**< The window title. */
- gboolean logging; /**< The status of logging. */
- GList *logs; /**< This conversation's logs */
- PurpleConvIm *im; /**< IM-specific data. */
- PurpleConvChat *chat; /**< Chat-specific data. */
- void *misc; /**< Misc. data. */
- PurpleConversationUiOps *ui_ops; /**< UI-specific operations. */
- void *ui_data; /**< UI-specific data. */
- GHashTable *data; /**< Plugin-specific data. */
- PurpleConnectionFlags features; /**< The supported features */
- GList *message_history; /**< Message history, as a GList of PurpleConvMessage's */
-/**************************************************************************/
-/** @name Conversation API */
-/**************************************************************************/
- * Creates a new conversation of the specified type.
- * @param type The type of conversation.
- * @param account The account opening the conversation window on the purple
- * @param name The name of the conversation. For PURPLE_CONV_TYPE_IM,
- * this is the name of the buddy.
- * @return The new conversation.
-PurpleConversation *purple_conversation_new(PurpleConversationType type,
- PurpleAccount *account,
- * Destroys the specified conversation and removes it from the parent
- * If this conversation is the only one contained in the parent window,
- * that window is also destroyed.
- * @param conv The conversation to destroy.
-void purple_conversation_destroy(PurpleConversation *conv);
- * Present a conversation to the user. This allows core code to initiate a
- * conversation by displaying the IM dialog.
- * @param conv The conversation to present
-void purple_conversation_present(PurpleConversation *conv);
- * Returns the specified conversation's type.
- * @param conv The conversation.
- * @return The conversation's type.
-PurpleConversationType purple_conversation_get_type(const PurpleConversation *conv);
- * Sets the specified conversation's UI operations structure.
- * @param conv The conversation.
- * @param ops The UI conversation operations structure.
-void purple_conversation_set_ui_ops(PurpleConversation *conv,
- PurpleConversationUiOps *ops);
- * Sets the default conversation UI operations structure.
- * @param ops The UI conversation operations structure.
-void purple_conversations_set_ui_ops(PurpleConversationUiOps *ops);
- * Returns the specified conversation's UI operations structure.
- * @param conv The conversation.
- * @return The operations structure.
-PurpleConversationUiOps *purple_conversation_get_ui_ops(
- const PurpleConversation *conv);
- * Sets the specified conversation's purple_account.
- * This purple_account represents the user using purple, not the person the user
- * is having a conversation/chat/flame with.
- * @param conv The conversation.
- * @param account The purple_account.
-void purple_conversation_set_account(PurpleConversation *conv,
- PurpleAccount *account);
- * Returns the specified conversation's purple_account.
- * This purple_account represents the user using purple, not the person the user
- * is having a conversation/chat/flame with.
- * @param conv The conversation.
- * @return The conversation's purple_account.
-PurpleAccount *purple_conversation_get_account(const PurpleConversation *conv);
- * Returns the specified conversation's purple_connection.
- * This is the same as purple_conversation_get_user(conv)->gc.
- * @param conv The conversation.
- * @return The conversation's purple_connection.
-PurpleConnection *purple_conversation_get_gc(const PurpleConversation *conv);
- * Sets the specified conversation's title.
- * @param conv The conversation.
- * @param title The title.
-void purple_conversation_set_title(PurpleConversation *conv, const char *title);
- * Returns the specified conversation's title.
- * @param conv The conversation.
-const char *purple_conversation_get_title(const PurpleConversation *conv);
- * Automatically sets the specified conversation's title.
- * This function takes OPT_IM_ALIAS_TAB into account, as well as the
- * @param conv The conversation.
-void purple_conversation_autoset_title(PurpleConversation *conv);
- * Sets the specified conversation's name.
- * @param conv The conversation.
- * @param name The conversation's name.
-void purple_conversation_set_name(PurpleConversation *conv, const char *name);
- * Returns the specified conversation's name.
- * @param conv The conversation.
- * @return The conversation's name. If the conversation is an IM with a PurpleBuddy,
- * then it's the name of the PurpleBuddy.
-const char *purple_conversation_get_name(const PurpleConversation *conv);
- * Get an attribute of a chat buddy
- * @param cb The chat buddy.
- * @param key The key of the attribute.
- * @return The value of the attribute key.
-const char *purple_conv_chat_cb_get_attribute(PurpleConvChatBuddy *cb, const char *key);
- * Get the keys of all atributes of a chat buddy
- * @param cb The chat buddy.
- * @return A list of the attributes of a chat buddy.
-GList *purple_conv_chat_cb_get_attribute_keys(PurpleConvChatBuddy *cb);
- * Set an attribute of a chat buddy
- * @param chat The chat.
- * @param cb The chat buddy.
- * @param key The key of the attribute.
- * @param value The value of the attribute.
-void purple_conv_chat_cb_set_attribute(PurpleConvChat *chat, PurpleConvChatBuddy *cb, const char *key, const char *value);
- * Set attributes of a chat buddy
- * @param chat The chat.
- * @param cb The chat buddy.
- * @param keys A GList of the keys.
- * @param values A GList of the values.
-purple_conv_chat_cb_set_attributes(PurpleConvChat *chat, PurpleConvChatBuddy *cb, GList *keys, GList *values);
- * Enables or disables logging for this conversation.
- * @param conv The conversation.
- * @param log @c TRUE if logging should be enabled, or @c FALSE otherwise.
-void purple_conversation_set_logging(PurpleConversation *conv, gboolean log);
- * Returns whether or not logging is enabled for this conversation.
- * @param conv The conversation.
- * @return @c TRUE if logging is enabled, or @c FALSE otherwise.
-gboolean purple_conversation_is_logging(const PurpleConversation *conv);
- * Closes any open logs for this conversation.
- * Note that new logs will be opened as necessary (e.g. upon receipt of a
- * message, if the conversation has logging enabled. To disable logging for
- * the remainder of the conversation, use purple_conversation_set_logging().
- * @param conv The conversation.
-void purple_conversation_close_logs(PurpleConversation *conv);
- * Returns the specified conversation's IM-specific data.
- * If the conversation type is not PURPLE_CONV_TYPE_IM, this will return @c NULL.
- * @param conv The conversation.
- * @return The IM-specific data.
-PurpleConvIm *purple_conversation_get_im_data(const PurpleConversation *conv);
-#define PURPLE_CONV_IM(c) (purple_conversation_get_im_data(c))
- * Returns the specified conversation's chat-specific data.
- * If the conversation type is not PURPLE_CONV_TYPE_CHAT, this will return @c NULL.
- * @param conv The conversation.
- * @return The chat-specific data.
-PurpleConvChat *purple_conversation_get_chat_data(const PurpleConversation *conv);
-#define PURPLE_CONV_CHAT(c) (purple_conversation_get_chat_data(c))
- * Sets extra data for a conversation.
- * @param conv The conversation.
- * @param key The unique key.
- * @param data The data to assign.
-void purple_conversation_set_data(PurpleConversation *conv, const char *key,
- * Returns extra data in a conversation.
- * @param conv The conversation.
- * @param key The unqiue key.
- * @return The data associated with the key.
-gpointer purple_conversation_get_data(PurpleConversation *conv, const char *key);
- * Returns a list of all conversations.
- * This list includes both IMs and chats.
- * @constreturn A GList of all conversations.
-GList *purple_get_conversations(void);
- * Returns a list of all IMs.
- * @constreturn A GList of all IMs.
-GList *purple_get_ims(void);
- * Returns a list of all chats.
- * @constreturn A GList of all chats.
-GList *purple_get_chats(void);
- * Finds a conversation with the specified type, name, and Purple account.
- * @param type The type of the conversation.
- * @param name The name of the conversation.
- * @param account The purple_account associated with the conversation.
- * @return The conversation if found, or @c NULL otherwise.
-PurpleConversation *purple_find_conversation_with_account(
- PurpleConversationType type, const char *name,
- const PurpleAccount *account);
- * Writes to a conversation window.
- * This function should not be used to write IM or chat messages. Use
- * purple_conv_im_write() and purple_conv_chat_write() instead. Those functions will
- * most likely call this anyway, but they may do their own formatting,
- * This can be used to write generic messages, such as "so and so closed
- * the conversation window."
- * @param conv The conversation.
- * @param who The user who sent the message.
- * @param message The message.
- * @param flags The message flags.
- * @param mtime The time the message was sent.
- * @see purple_conv_im_write()
- * @see purple_conv_chat_write()
-void purple_conversation_write(PurpleConversation *conv, const char *who,
- const char *message, PurpleMessageFlags flags,
- Set the features as supported for the given conversation.
- @param conv The conversation
- @param features Bitset defining supported features
-void purple_conversation_set_features(PurpleConversation *conv,
- PurpleConnectionFlags features);
- Get the features supported by the given conversation.
- @param conv The conversation
-PurpleConnectionFlags purple_conversation_get_features(PurpleConversation *conv);
- * Determines if a conversation has focus
- * @param conv The conversation.
- * @return @c TRUE if the conversation has focus, @c FALSE if
- * it does not or the UI does not have a concept of conversation focus
-gboolean purple_conversation_has_focus(PurpleConversation *conv);
- * Updates the visual status and UI of a conversation.
- * @param conv The conversation.
- * @param type The update type.
-void purple_conversation_update(PurpleConversation *conv, PurpleConvUpdateType type);
- * Calls a function on each conversation.
- * @param func The function.
-void purple_conversation_foreach(void (*func)(PurpleConversation *conv));
- * Retrieve the message history of a conversation.
- * @param conv The conversation
- * @return A GList of PurpleConvMessage's. The must not modify the list or the data within.
- * The list contains the newest message at the beginning, and the oldest message at
-GList *purple_conversation_get_message_history(PurpleConversation *conv);
- * Clear the message history of a conversation.
- * @param conv The conversation
-void purple_conversation_clear_message_history(PurpleConversation *conv);
- * Get the sender from a PurpleConvMessage
- * @param msg A PurpleConvMessage
- * @return The name of the sender of the message
-const char *purple_conversation_message_get_sender(PurpleConvMessage *msg);
- * Get the message from a PurpleConvMessage
- * @param msg A PurpleConvMessage
- * @return The name of the sender of the message
-const char *purple_conversation_message_get_message(PurpleConvMessage *msg);
- * Get the message-flags of a PurpleConvMessage
- * @param msg A PurpleConvMessage
- * @return The message flags
-PurpleMessageFlags purple_conversation_message_get_flags(PurpleConvMessage *msg);
- * Get the timestamp of a PurpleConvMessage
- * @param msg A PurpleConvMessage
- * @return The timestamp of the message
-time_t purple_conversation_message_get_timestamp(PurpleConvMessage *msg);
-/**************************************************************************/
-/** @name IM Conversation API */
-/**************************************************************************/
- * Gets an IM's parent conversation.
- * @return The parent conversation.
-PurpleConversation *purple_conv_im_get_conversation(const PurpleConvIm *im);
- * Sets the IM's buddy icon.
- * This should only be called from within Purple. You probably want to
- * call purple_buddy_icon_set_data().
- * @param icon The buddy icon.
- * @see purple_buddy_icon_set_data()
-void purple_conv_im_set_icon(PurpleConvIm *im, PurpleBuddyIcon *icon);
- * Returns the IM's buddy icon.
- * @return The buddy icon.
-PurpleBuddyIcon *purple_conv_im_get_icon(const PurpleConvIm *im);
- * Sets the IM's typing state.
- * @param state The typing state.
-void purple_conv_im_set_typing_state(PurpleConvIm *im, PurpleTypingState state);
- * Returns the IM's typing state.
- * @return The IM's typing state.
-PurpleTypingState purple_conv_im_get_typing_state(const PurpleConvIm *im);
- * Starts the IM's typing timeout.
- * @param timeout The timeout.
-void purple_conv_im_start_typing_timeout(PurpleConvIm *im, int timeout);
- * Stops the IM's typing timeout.
-void purple_conv_im_stop_typing_timeout(PurpleConvIm *im);
- * Returns the IM's typing timeout.
-guint purple_conv_im_get_typing_timeout(const PurpleConvIm *im);
- * Sets the quiet-time when no PURPLE_TYPING messages will be sent.
- * Few protocols need this (maybe only MSN). If the user is still
- * typing after this quiet-period, then another PURPLE_TYPING message
- * @param val The number of seconds to wait before allowing another
- * PURPLE_TYPING message to be sent to the user. Or 0 to
- * not send another PURPLE_TYPING message.
-void purple_conv_im_set_type_again(PurpleConvIm *im, unsigned int val);
- * Returns the time after which another PURPLE_TYPING message should be sent.
- * @return The time in seconds since the epoch. Or 0 if no additional
- * PURPLE_TYPING message should be sent.
-time_t purple_conv_im_get_type_again(const PurpleConvIm *im);
- * Starts the IM's type again timeout.
-void purple_conv_im_start_send_typed_timeout(PurpleConvIm *im);
- * Stops the IM's type again timeout.
-void purple_conv_im_stop_send_typed_timeout(PurpleConvIm *im);
- * Returns the IM's type again timeout interval.
- * @return The type again timeout interval.
-guint purple_conv_im_get_send_typed_timeout(const PurpleConvIm *im);
- * Updates the visual typing notification for an IM conversation.
-void purple_conv_im_update_typing(PurpleConvIm *im);
- * @param who The user who sent the message.
- * @param message The message to write.
- * @param flags The message flags.
- * @param mtime The time the message was sent.
-void purple_conv_im_write(PurpleConvIm *im, const char *who,
- const char *message, PurpleMessageFlags flags,
- * Presents an IM-error to the user
- * This is a helper function to find a conversation, write an error to it, and
- * raise the window. If a conversation with this user doesn't already exist,
- * the function will return FALSE and the calling function can attempt to present
- * the error another way (purple_notify_error, most likely)
- * @param who The user this error is about
- * @param account The account this error is on
- * @param what The error
- * @return TRUE if the error was presented, else FALSE
-gboolean purple_conv_present_error(const char *who, PurpleAccount *account, const char *what);
- * Sends a message to this IM conversation.
- * @param message The message to send.
-void purple_conv_im_send(PurpleConvIm *im, const char *message);
- * Sends a message to a conversation after confirming with
- * This function is intended for use in cases where the user
- * hasn't explicitly and knowingly caused a message to be sent.
- * The confirmation ensures that the user isn't sending a
- * @param conv The conversation.
- * @param message The message to send.
-void purple_conv_send_confirm(PurpleConversation *conv, const char *message);
- * Sends a message to this IM conversation with specified flags.
- * @param message The message to send.
- * @param flags The PurpleMessageFlags flags to use in addition to PURPLE_MESSAGE_SEND.
-void purple_conv_im_send_with_flags(PurpleConvIm *im, const char *message, PurpleMessageFlags flags);
- * Adds a smiley to the conversation's smiley tree. If this returns
- * @c TRUE you should call purple_conv_custom_smiley_write() one or more
- * times, and then purple_conv_custom_smiley_close(). If this returns
- * @c FALSE, either the conv or smile were invalid, or the icon was
- * found in the cache. In either case, calling write or close would
- * @param conv The conversation to associate the smiley with.
- * @param smile The text associated with the smiley
- * @param cksum_type The type of checksum.
- * @param chksum The checksum, as a NUL terminated base64 string.
- * @param remote @c TRUE if the custom smiley is set by the remote user (buddy).
- * @return @c TRUE if an icon is expected, else FALSE. Note that
- * it is an error to never call purple_conv_custom_smiley_close if
- * this function returns @c TRUE, but an error to call it if
- * @c FALSE is returned.
-gboolean purple_conv_custom_smiley_add(PurpleConversation *conv, const char *smile,
- const char *cksum_type, const char *chksum,
- * Updates the image associated with the current smiley.
- * @param conv The conversation associated with the smiley.
- * @param smile The text associated with the smiley.
- * @param data The actual image data.
- * @param size The length of the data.
-void purple_conv_custom_smiley_write(PurpleConversation *conv,
- * Close the custom smiley, all data has been written with
- * purple_conv_custom_smiley_write, and it is no longer valid
- * to call that function on that smiley.
- * @param conv The purple conversation associated with the smiley.
- * @param smile The text associated with the smiley
-void purple_conv_custom_smiley_close(PurpleConversation *conv, const char *smile);
-/**************************************************************************/
-/** @name Chat Conversation API */
-/**************************************************************************/
- * Gets a chat's parent conversation.
- * @param chat The chat.
- * @return The parent conversation.
-PurpleConversation *purple_conv_chat_get_conversation(const PurpleConvChat *chat);
- * Sets the list of users in the chat room.
- * @note Calling this function will not update the display of the users.
- * Please use purple_conv_chat_add_user(), purple_conv_chat_add_users(),
- * purple_conv_chat_remove_user(), and purple_conv_chat_remove_users() instead.
- * @param chat The chat.
- * @param users The list of users.
- * @return The list passed.
- * @deprecated This function will be removed in 3.0.0. You shouldn't be using it anyway.
-GList *purple_conv_chat_set_users(PurpleConvChat *chat, GList *users);
- * Returns a list of users in the chat room. The members of the list
- * are PurpleConvChatBuddy objects.
- * @param chat The chat.
- * @constreturn The list of users.
-GList *purple_conv_chat_get_users(const PurpleConvChat *chat);
- * Ignores a user in a chat room.
- * @param chat The chat.
- * @param name The name of the user.
-void purple_conv_chat_ignore(PurpleConvChat *chat, const char *name);
- * Unignores a user in a chat room.
- * @param chat The chat.
- * @param name The name of the user.
-void purple_conv_chat_unignore(PurpleConvChat *chat, const char *name);
- * Sets the list of ignored users in the chat room.
- * @param chat The chat.
- * @param ignored The list of ignored users.
- * @return The list passed.
-GList *purple_conv_chat_set_ignored(PurpleConvChat *chat, GList *ignored);
- * Returns the list of ignored users in the chat room.
- * @param chat The chat.
- * @constreturn The list of ignored users.
-GList *purple_conv_chat_get_ignored(const PurpleConvChat *chat);
- * Returns the actual name of the specified ignored user, if it exists in
- * If the user found contains a prefix, such as '+' or '\@', this is also
- * returned. The username passed to the function does not have to have this
- * @param chat The chat.
- * @param user The user to check in the ignore list.
- * @return The ignored user if found, complete with prefixes, or @c NULL
-const char *purple_conv_chat_get_ignored_user(const PurpleConvChat *chat,
- * Returns @c TRUE if the specified user is ignored.
- * @param chat The chat.
- * @param user The user.
- * @return @c TRUE if the user is in the ignore list; @c FALSE otherwise.
-gboolean purple_conv_chat_is_user_ignored(const PurpleConvChat *chat,
- * Sets the chat room's topic.
- * @param chat The chat.
- * @param who The user that set the topic.
- * @param topic The topic.
-void purple_conv_chat_set_topic(PurpleConvChat *chat, const char *who,
- * Returns the chat room's topic.
- * @param chat The chat.
- * @return The chat's topic.
-const char *purple_conv_chat_get_topic(const PurpleConvChat *chat);
- * Sets the chat room's ID.
- * @param chat The chat.
-void purple_conv_chat_set_id(PurpleConvChat *chat, int id);
- * Returns the chat room's ID.
- * @param chat The chat.
-int purple_conv_chat_get_id(const PurpleConvChat *chat);
- * @param chat The chat.
- * @param who The user who sent the message.
- * @param message The message to write.
- * @param flags The flags.
- * @param mtime The time the message was sent.
-void purple_conv_chat_write(PurpleConvChat *chat, const char *who,
- const char *message, PurpleMessageFlags flags,
- * Sends a message to this chat conversation.
- * @param chat The chat.
- * @param message The message to send.
-void purple_conv_chat_send(PurpleConvChat *chat, const char *message);
- * Sends a message to this chat conversation with specified flags.
- * @param chat The chat.
- * @param message The message to send.
- * @param flags The PurpleMessageFlags flags to use.
-void purple_conv_chat_send_with_flags(PurpleConvChat *chat, const char *message, PurpleMessageFlags flags);
- * Adds a user to a chat.
- * @param chat The chat.
- * @param user The user to add.
- * @param extra_msg An extra message to display with the join message.
- * @param flags The users flags
- * @param new_arrival Decides whether or not to show a join notice.
-void purple_conv_chat_add_user(PurpleConvChat *chat, const char *user,
- const char *extra_msg, PurpleConvChatBuddyFlags flags,
- * Adds a list of users to a chat.
- * The data is copied from @a users, @a extra_msgs, and @a flags, so it is up to
- * the caller to free this list after calling this function.
- * @param chat The chat.
- * @param users The list of users to add.
- * @param extra_msgs An extra message to display with the join message for each
- * user. This list may be shorter than @a users, in which
- * case, the users after the end of extra_msgs will not have
- * an extra message. By extension, this means that extra_msgs
- * can simply be @c NULL and none of the users will have an
- * @param flags The list of flags for each user.
- * @param new_arrivals Decides whether or not to show join notices.
-void purple_conv_chat_add_users(PurpleConvChat *chat, GList *users, GList *extra_msgs,
- GList *flags, gboolean new_arrivals);
- * Renames a user in a chat.
- * @param chat The chat.
- * @param old_user The old username.
- * @param new_user The new username.
-void purple_conv_chat_rename_user(PurpleConvChat *chat, const char *old_user,
- * Removes a user from a chat, optionally with a reason.
- * It is up to the developer to free this list after calling this function.
- * @param chat The chat.
- * @param user The user that is being removed.
- * @param reason The optional reason given for the removal. Can be @c NULL.
-void purple_conv_chat_remove_user(PurpleConvChat *chat, const char *user,
- * Removes a list of users from a chat, optionally with a single reason.
- * @param chat The chat.
- * @param users The users that are being removed.
- * @param reason The optional reason given for the removal. Can be @c NULL.
-void purple_conv_chat_remove_users(PurpleConvChat *chat, GList *users,
- * Finds a user in a chat
- * @param chat The chat.
- * @param user The user to look for.
- * @return TRUE if the user is in the chat, FALSE if not
-gboolean purple_conv_chat_find_user(PurpleConvChat *chat, const char *user);
- * Set a users flags in a chat
- * @param chat The chat.
- * @param user The user to update.
- * @param flags The new flags.
-void purple_conv_chat_user_set_flags(PurpleConvChat *chat, const char *user,
- PurpleConvChatBuddyFlags flags);
- * Get the flags for a user in a chat
- * @param chat The chat.
- * @param user The user to find the flags for
- * @return The flags for the user
-PurpleConvChatBuddyFlags purple_conv_chat_user_get_flags(PurpleConvChat *chat,
- * Clears all users from a chat.
- * @param chat The chat.
-void purple_conv_chat_clear_users(PurpleConvChat *chat);
- * Sets your nickname (used for hilighting) for a chat.
- * @param chat The chat.
- * @param nick The nick.
-void purple_conv_chat_set_nick(PurpleConvChat *chat, const char *nick);
- * Gets your nickname (used for hilighting) for a chat.
- * @param chat The chat.
-const char *purple_conv_chat_get_nick(PurpleConvChat *chat);
- * Finds a chat with the specified chat ID.
- * @param gc The purple_connection.
- * @param id The chat ID.
- * @return The chat conversation.
-PurpleConversation *purple_find_chat(const PurpleConnection *gc, int id);
- * Lets the core know we left a chat, without destroying it.
- * Called from serv_got_chat_left().
- * @param chat The chat.
-void purple_conv_chat_left(PurpleConvChat *chat);
- * Invite a user to a chat.
- * The user will be prompted to enter the user's name or a message if one is
- * @param chat The chat.
- * @param user The user to invite to the chat.
- * @param message The message to send with the invitation.
- * @param confirm Prompt before sending the invitation. The user is always
- * prompted if either \a user or \a message is @c NULL.
-void purple_conv_chat_invite_user(PurpleConvChat *chat, const char *user,
- const char *message, gboolean confirm);
- * Returns true if we're no longer in this chat,
- * and just left the window open.
- * @param chat The chat.
- * @return @c TRUE if we left the chat already, @c FALSE if
-gboolean purple_conv_chat_has_left(PurpleConvChat *chat);
- * Creates a new chat buddy
- * @param name The name.
- * @param alias The alias.
- * @param flags The flags.
- * @return The new chat buddy
-PurpleConvChatBuddy *purple_conv_chat_cb_new(const char *name, const char *alias,
- PurpleConvChatBuddyFlags flags);
- * Find a chat buddy in a chat
- * @param chat The chat.
- * @param name The name of the chat buddy to find.
-PurpleConvChatBuddy *purple_conv_chat_cb_find(PurpleConvChat *chat, const char *name);
- * Get the name of a chat buddy
- * @param cb The chat buddy.
- * @return The name of the chat buddy.
-const char *purple_conv_chat_cb_get_name(PurpleConvChatBuddy *cb);
- * Destroys a chat buddy
- * @param cb The chat buddy to destroy
-void purple_conv_chat_cb_destroy(PurpleConvChatBuddy *cb);
- * Retrieves the extended menu items for the conversation.
- * @param conv The conversation.
- * @return A list of PurpleMenuAction items, harvested by the
- * chat-extended-menu signal. The list and the menuaction
- * items should be freed by the caller.
-GList * purple_conversation_get_extended_menu(PurpleConversation *conv);
- * Perform a command in a conversation. Similar to @see purple_cmd_do_command
- * @param conv The conversation.
- * @param cmdline The entire command including the arguments.
- * @param markup @c NULL, or the formatted command line.
- * @param error If the command failed errormsg is filled in with the appropriate error
- * message, if not @c NULL. It must be freed by the caller with g_free().
- * @return @c TRUE if the command was executed successfully, @c FALSE otherwise.
-gboolean purple_conversation_do_command(PurpleConversation *conv, const gchar *cmdline, const gchar *markup, gchar **error);
-/**************************************************************************/
-/** @name Conversations Subsystem */
-/**************************************************************************/
- * Returns the conversation subsystem handle.
- * @return The conversation subsystem handle.
-void *purple_conversations_get_handle(void);
- * Initializes the conversation subsystem.
-void purple_conversations_init(void);
- * Uninitializes the conversation subsystem.
-void purple_conversations_uninit(void);
-#endif /* _PURPLE_CONVERSATION_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/core.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,251 +0,0 @@
- * @file core.h Startup and shutdown of libpurple
- * @defgroup core libpurple
- * @see @ref core-signals
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-/*! @mainpage Pidgin/Finch/libpurple API Documentation
- * <a href="group__core.html">libpurple</a> is intended to be the core of an IM
- * program. <a href="group__pidgin.html">Pidgin</a> is a GTK+ frontend
- * to libpurple, and <a href="group__finch.html">Finch</a> is an ncurses
- * frontend built using <a href="group__gnt.html">libgnt</a>
- * (GLib Ncurses Toolkit).
-typedef struct PurpleCore PurpleCore;
-/** Callbacks that fire at different points of the initialization and teardown
- * of libpurple, along with a hook to return descriptive information about the
- /** Called just after the preferences subsystem is initialized; the UI
- * could use this callback to add some preferences it needs to be in
- * place when other subsystems are initialized.
- void (*ui_prefs_init)(void);
- /** Called just after the debug subsystem is initialized, but before
- * just about every other component's initialization. The UI should
- * use this hook to call purple_debug_set_ui_ops() so that debugging
- * information for other components can be logged during their
- void (*debug_ui_init)(void);
- /** Called after all of libpurple has been initialized. The UI should
- * use this hook to set all other necessary UiOps structures.
- /** Called after most of libpurple has been uninitialized. */
- /** Called by purple_core_get_ui_info(); should return the information
- GHashTable* (*get_ui_info)(void);
- void (*_purple_reserved1)(void);
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
- * Initializes the core of purple.
- * This will setup preferences for all the core subsystems.
- * @param ui The ID of the UI using the core. This should be a
- * unique ID, registered with the purple team.
- * @return @c TRUE if successful, or @c FALSE otherwise.
-gboolean purple_core_init(const char *ui);
- * Quits the core of purple, which, depending on the UI, may quit the
- * application using the purple core.
-void purple_core_quit(void);
- * Calls purple_core_quit(). This can be used as the function
- * passed to purple_timeout_add() when you want to shutdown Purple
- * in a specified amount of time. When shutting down Purple
- * from a plugin, you must use this instead of purple_core_quit();
- * for an immediate exit, use a timeout value of 0:
- * <code>purple_timeout_add(0, purple_core_quitcb, NULL);</code>
- * This is ensures that code from your plugin is not being
- * executed when purple_core_quit() is called. If the plugin
- * called purple_core_quit() directly, you would get a core dump
- * after purple_core_quit() executes and control returns to your
- * plugin because purple_core_quit() frees all plugins.
-gboolean purple_core_quit_cb(gpointer unused);
- * Returns the version of the core library.
- * @return The version of the core library.
-const char *purple_core_get_version(void);
- * Returns the ID of the UI that is using the core, as passed to
- * @return The ID of the UI that is currently using the core.
-const char *purple_core_get_ui(void);
- * Returns a handle to the purple core.
- * This is used to connect to @ref core-signals "core signals".
-PurpleCore *purple_get_core(void);
- * Sets the UI ops for the core.
- * @param ops A UI ops structure for the core.
-void purple_core_set_ui_ops(PurpleCoreUiOps *ops);
- * Returns the UI ops for the core.
- * @return The core's UI ops structure.
-PurpleCoreUiOps *purple_core_get_ui_ops(void);
- * Migrates from <tt>.gaim</tt> to <tt>.purple</tt>.
- * UIs <strong>must not</strong> call this if they have been told to use a
- * custom user directory.
- * @return A boolean indicating success or migration failure. On failure,
- * the application must display an error to the user and then exit.
-gboolean purple_core_migrate(void);
- * Ensures that only one instance is running. If libpurple is built with D-Bus
- * support, this checks if another process owns the libpurple bus name and if
- * so whether that process is using the same configuration directory as this
- * @return @c TRUE if this is the first instance of libpurple running;
- * @c FALSE if there is another instance running.
-gboolean purple_core_ensure_single_instance(void);
- * Returns a hash table containing various information about the UI. The
- * following well-known entries may be in the table (along with any others the
- * UI might choose to include):
- * <dt><tt>name</tt></dt>
- * <dd>the user-readable name for the UI.</dd>
- * <dt><tt>version</tt></dt>
- * <dd>a user-readable description of the current version of the UI.</dd>
- * <dt><tt>website</tt></dt>
- * <dd>the UI's website, such as http://pidgin.im.</dd>
- * <dt><tt>dev_website</tt></dt>
- * <dd>the UI's development/support website, such as http://developer.pidgin.im.</dd>
- * <dt><tt>client_type</tt></dt>
- * <dd>the type of UI. Possible values include 'pc', 'console', 'phone',
- * 'handheld', 'web', and 'bot'. These values are compared
- * programmatically and should not be localized.</dd>
- * @return A GHashTable with strings for keys and values. This
- * hash table must not be freed and should not be modified.
-GHashTable* purple_core_get_ui_info(void);
-#endif /* _PURPLE_CORE_H_ */
- `//"\\ """"`---.___.-""
- __--""" ,-/-==\\ | | `\ ,'
- _-" /' | \\ ___ / / \ /
- .' / | \\ /" "\ /' / \ /'
- / ____ / | \`\.__/-"" D O \_/' / \/'
-/-'" """""---__ | "-/" O G R /' _--"`
- \_| / R __--_ t ), __--""
- '""--_/ T _-"_>--<_\ h '-" \
- {\__--_/} / \\__>--<__\ e B \
- /' (_/ _-" | |__>--<__| U |
- | _/) )-" | |__>--<__| R |
- / /" ,_/ / /__>---<__/ N |
- o-o _// /-"_>---<__-" I /
- ,//('( |__>--<__| T / .----_
- ( ( ')) |__>--<__| | /' _---_"\
- `-)) )) ( |__>--<__| O | /' / "\`\
- ,/,'//( ( \__>--<__\ R \ /' // ||
- ,( ( ((, )) "-__>--<_"-_ "--____---"' _/'/ /'
- `"/ )` ) ,/| "-_">--<_/-__ __-" _/
- ._-"//( )/ )) ` ""-'_/_/ /"""""""__--"
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/dbus-maybe.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/* This file contains macros that wrap calls to the purple dbus module.
- These macros call the appropriate functions if the build includes
- dbus support and do nothing otherwise. See "dbus-server.h" for
-#ifndef _PURPLE_DBUS_MAYBE_H_
-#define _PURPLE_DBUS_MAYBE_H_
-#ifndef DBUS_API_SUBJECT_TO_CHANGE
-#define DBUS_API_SUBJECT_TO_CHANGE
-#include "dbus-server.h"
-/* this provides a type check */
-#define PURPLE_DBUS_REGISTER_POINTER(ptr, type) { \
- type *typed_ptr = ptr; \
- purple_dbus_register_pointer(typed_ptr, PURPLE_DBUS_TYPE(type)); \
-#define PURPLE_DBUS_UNREGISTER_POINTER(ptr) purple_dbus_unregister_pointer(ptr)
-#define PURPLE_DBUS_REGISTER_POINTER(ptr, type) { \
-#define PURPLE_DBUS_UNREGISTER_POINTER(ptr)
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/debug.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,243 +0,0 @@
- * @file debug.h Debug API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_DEBUG_H_
-#define _PURPLE_DEBUG_H_
- PURPLE_DEBUG_ALL = 0, /**< All debug levels. */
- PURPLE_DEBUG_MISC, /**< General chatter. */
- PURPLE_DEBUG_INFO, /**< General operation Information. */
- PURPLE_DEBUG_WARNING, /**< Warnings. */
- PURPLE_DEBUG_ERROR, /**< Errors. */
- PURPLE_DEBUG_FATAL /**< Fatal errors. */
- void (*print)(PurpleDebugLevel level, const char *category,
- gboolean (*is_enabled)(PurpleDebugLevel level,
- void (*_purple_reserved1)(void);
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
- void (*_purple_reserved4)(void);
-/**************************************************************************/
-/**************************************************************************/
- * Outputs debug information.
- * @param level The debug level.
- * @param category The category (or @c NULL).
- * @param format The format string.
-void purple_debug(PurpleDebugLevel level, const char *category,
- const char *format, ...) G_GNUC_PRINTF(3, 4);
- * Outputs misc. level debug information.
- * This is a wrapper for purple_debug(), and uses PURPLE_DEBUG_MISC as
- * @param category The category (or @c NULL).
- * @param format The format string.
-void purple_debug_misc(const char *category, const char *format, ...) G_GNUC_PRINTF(2, 3);
- * Outputs info level debug information.
- * This is a wrapper for purple_debug(), and uses PURPLE_DEBUG_INFO as
- * @param category The category (or @c NULL).
- * @param format The format string.
-void purple_debug_info(const char *category, const char *format, ...) G_GNUC_PRINTF(2, 3);
- * Outputs warning level debug information.
- * This is a wrapper for purple_debug(), and uses PURPLE_DEBUG_WARNING as
- * @param category The category (or @c NULL).
- * @param format The format string.
-void purple_debug_warning(const char *category, const char *format, ...) G_GNUC_PRINTF(2, 3);
- * Outputs error level debug information.
- * This is a wrapper for purple_debug(), and uses PURPLE_DEBUG_ERROR as
- * @param category The category (or @c NULL).
- * @param format The format string.
-void purple_debug_error(const char *category, const char *format, ...) G_GNUC_PRINTF(2, 3);
- * Outputs fatal error level debug information.
- * This is a wrapper for purple_debug(), and uses PURPLE_DEBUG_ERROR as
- * @param category The category (or @c NULL).
- * @param format The format string.
-void purple_debug_fatal(const char *category, const char *format, ...) G_GNUC_PRINTF(2, 3);
- * Enable or disable printing debug output to the console.
- * @param enabled TRUE to enable debug output or FALSE to disable it.
-void purple_debug_set_enabled(gboolean enabled);
- * Check if console debug output is enabled.
- * @return TRUE if debugging is enabled, FALSE if it is not.
-gboolean purple_debug_is_enabled(void);
- * Enable or disable verbose debugging. This ordinarily should only be called
- * by #purple_debug_init, but there are cases where this can be useful for
- * @param verbose TRUE to enable verbose debugging or FALSE to disable it.
-void purple_debug_set_verbose(gboolean verbose);
- * Check if verbose logging is enabled.
- * @return TRUE if verbose debugging is enabled, FALSE if it is not.
-gboolean purple_debug_is_verbose(void);
- * Enable or disable unsafe debugging. This ordinarily should only be called
- * by #purple_debug_init, but there are cases where this can be useful for
- * @param unsafe TRUE to enable debug logging of messages that could
- * potentially contain passwords and other sensitive information.
-void purple_debug_set_unsafe(gboolean unsafe);
- * Check if unsafe debugging is enabled. Defaults to FALSE.
- * @return TRUE if the debug logging of all messages is enabled, FALSE
- * if messages that could potentially contain passwords and other
- * sensitive information are not logged.
-gboolean purple_debug_is_unsafe(void);
-/**************************************************************************/
-/** @name UI Registration Functions */
-/**************************************************************************/
- * Sets the UI operations structure to be used when outputting debug
- * @param ops The UI operations structure.
-void purple_debug_set_ui_ops(PurpleDebugUiOps *ops);
- * Returns the UI operations structure used when outputting debug
- * @return The UI operations structure in use.
-PurpleDebugUiOps *purple_debug_get_ui_ops(void);
-/**************************************************************************/
-/** @name Debug Subsystem */
-/**************************************************************************/
- * Initializes the debug subsystem.
-void purple_debug_init(void);
-#endif /* _PURPLE_DEBUG_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/desktopitem.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,172 +0,0 @@
- * @file desktopitem.h Functions for managing .desktop files
-/* 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
- * The following code has been adapted from gnome-desktop-item.[ch],
- * as found on gnome-desktop-2.8.1.
- * Copyright (C) 2004 by Alceste Scalas <alceste.scalas@gmx.net>.
- * Original copyright notice:
- * Copyright (C) 1999, 2000 Red Hat Inc.
- * Copyright (C) 2001 Sid Vicious
- * This file is part of the Gnome Library.
- * The Gnome Library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- * The Gnome Library 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
- * Library General Public License for more details.
- * You should have received a copy of the GNU Library General Public
- * License along with the Gnome Library; see the file COPYING.LIB. If not,
- * write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02111-1301, USA.
-#ifndef _PURPLE_DESKTOP_ITEM_H_
-#define _PURPLE_DESKTOP_ITEM_H_
-#include <glib-object.h>
- PURPLE_DESKTOP_ITEM_TYPE_NULL = 0 /* This means its NULL, that is, not
- PURPLE_DESKTOP_ITEM_TYPE_OTHER /* This means it's not one of the below
- strings types, and you must get the
- /* These are the standard compliant types: */
- PURPLE_DESKTOP_ITEM_TYPE_APPLICATION,
- PURPLE_DESKTOP_ITEM_TYPE_LINK,
- PURPLE_DESKTOP_ITEM_TYPE_FSDEVICE,
- PURPLE_DESKTOP_ITEM_TYPE_MIME_TYPE,
- PURPLE_DESKTOP_ITEM_TYPE_DIRECTORY,
- PURPLE_DESKTOP_ITEM_TYPE_SERVICE,
- PURPLE_DESKTOP_ITEM_TYPE_SERVICE_TYPE
-} PurpleDesktopItemType;
-typedef struct _PurpleDesktopItem PurpleDesktopItem;
-#define PURPLE_TYPE_DESKTOP_ITEM (purple_desktop_item_get_type ())
-GType purple_desktop_item_get_type (void);
-#define PURPLE_DESKTOP_ITEM_ENCODING "Encoding" /* string */
-#define PURPLE_DESKTOP_ITEM_VERSION "Version" /* numeric */
-#define PURPLE_DESKTOP_ITEM_NAME "Name" /* localestring */
-#define PURPLE_DESKTOP_ITEM_GENERIC_NAME "GenericName" /* localestring */
-#define PURPLE_DESKTOP_ITEM_TYPE "Type" /* string */
-#define PURPLE_DESKTOP_ITEM_FILE_PATTERN "FilePattern" /* regexp(s) */
-#define PURPLE_DESKTOP_ITEM_TRY_EXEC "TryExec" /* string */
-#define PURPLE_DESKTOP_ITEM_NO_DISPLAY "NoDisplay" /* boolean */
-#define PURPLE_DESKTOP_ITEM_COMMENT "Comment" /* localestring */
-#define PURPLE_DESKTOP_ITEM_EXEC "Exec" /* string */
-#define PURPLE_DESKTOP_ITEM_ACTIONS "Actions" /* strings */
-#define PURPLE_DESKTOP_ITEM_ICON "Icon" /* string */
-#define PURPLE_DESKTOP_ITEM_MINI_ICON "MiniIcon" /* string */
-#define PURPLE_DESKTOP_ITEM_HIDDEN "Hidden" /* boolean */
-#define PURPLE_DESKTOP_ITEM_PATH "Path" /* string */
-#define PURPLE_DESKTOP_ITEM_TERMINAL "Terminal" /* boolean */
-#define PURPLE_DESKTOP_ITEM_TERMINAL_OPTIONS "TerminalOptions" /* string */
-#define PURPLE_DESKTOP_ITEM_SWALLOW_TITLE "SwallowTitle" /* string */
-#define PURPLE_DESKTOP_ITEM_SWALLOW_EXEC "SwallowExec" /* string */
-#define PURPLE_DESKTOP_ITEM_MIME_TYPE "MimeType" /* regexp(s) */
-#define PURPLE_DESKTOP_ITEM_PATTERNS "Patterns" /* regexp(s) */
-#define PURPLE_DESKTOP_ITEM_DEFAULT_APP "DefaultApp" /* string */
-#define PURPLE_DESKTOP_ITEM_DEV "Dev" /* string */
-#define PURPLE_DESKTOP_ITEM_FS_TYPE "FSType" /* string */
-#define PURPLE_DESKTOP_ITEM_MOUNT_POINT "MountPoint" /* string */
-#define PURPLE_DESKTOP_ITEM_READ_ONLY "ReadOnly" /* boolean */
-#define PURPLE_DESKTOP_ITEM_UNMOUNT_ICON "UnmountIcon" /* string */
-#define PURPLE_DESKTOP_ITEM_SORT_ORDER "SortOrder" /* strings */
-#define PURPLE_DESKTOP_ITEM_URL "URL" /* string */
-#define PURPLE_DESKTOP_ITEM_DOC_PATH "X-GNOME-DocPath" /* string */
- * This function loads 'filename' and turns it into a PurpleDesktopItem.
- * @param filename The filename or directory path to load the PurpleDesktopItem from
- * @return The newly loaded item, or NULL on error.
-PurpleDesktopItem *purple_desktop_item_new_from_file (const char *filename);
- * Gets the type attribute (the 'Type' field) of the item. This should
- * usually be 'Application' for an application, but it can be 'Directory'
- * for a directory description. There are other types available as well.
- * The type usually indicates how the desktop item should be handeled and
- * how the 'Exec' field should be handeled.
- * @param item A desktop item
- * @return The type of the specified 'item'. The returned memory
- * remains owned by the PurpleDesktopItem and should not be freed.
-PurpleDesktopItemType purple_desktop_item_get_entry_type (const PurpleDesktopItem *item);
- * Gets the value of an attribute of the item, as a string.
- * @param item A desktop item
- * @param attr The attribute to look for
- * @return The value of the specified item attribute.
-const char *purple_desktop_item_get_string (const PurpleDesktopItem *item,
- * Creates a copy of a PurpleDesktopItem. The new copy has a refcount of 1.
- * Note: Section stack is NOT copied.
- * @param item The item to be copied
-PurpleDesktopItem *purple_desktop_item_copy (const PurpleDesktopItem *item);
- * Decreases the reference count of the specified item, and destroys
- * the item if there are no more references left.
- * @param item A desktop item
-void purple_desktop_item_unref (PurpleDesktopItem *item);
-#endif /* _PURPLE_DESKTOP_ITEM_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/directconn.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,200 +0,0 @@
- * @file directconn.h MSN direct connection functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef MSN_DIRECTCONN_H
-#define MSN_DIRECTCONN_H
-typedef struct _MsnDirectConn MsnDirectConn;
-#include "slpmsg_part.h"
-#define MSN_DCCONN_MAX_SIZE 1352
- DC_STATE_CLOSED, /*< No socket opened yet */
- DC_STATE_FOO, /*< Waiting for FOO message */
- DC_STATE_HANDSHAKE, /*< Waiting for handshake message */
- DC_STATE_HANDSHAKE_REPLY, /*< Waiting for handshake reply message */
- DC_STATE_ESTABLISHED /*< Handshake complete */
-} MsnDirectConnProcessResult;
- DC_NONCE_UNKNOWN, /**< Invalid scheme */
- DC_NONCE_PLAIN, /**< No hashing */
- DC_NONCE_SHA1 /**< First 16 bytes of SHA1 of nonce */
-} MsnDirectConnNonceType;
-typedef struct _MsnDirectConnPacket MsnDirectConnPacket;
-struct _MsnDirectConnPacket {
- void (*sent_cb)(struct _MsnDirectConnPacket*);
- MsnSlpMessagePart *part;
- MsnDirectConnState state; /**< Direct connection status */
- MsnSlpLink *slplink; /**< The slplink using this direct connection */
- MsnSlpCall *slpcall; /**< The slpcall which initiated the direct connection */
- char *msg_body; /**< The body of message sent by send_connection_info_msg_cb */
- MsnSlpMessage *prev_ack; /**< The saved SLP ACK message */
- MsnDirectConnNonceType nonce_type; /**< The type of nonce hashing */
- guchar nonce[16]; /**< The nonce used for handshake */
- gchar nonce_hash[37]; /**< The hash of nonce */
- gchar remote_nonce[37]; /**< The remote side's nonce */
- PurpleNetworkListenData *listen_data; /**< The pending socket creation request */
- PurpleProxyConnectData *connect_data; /**< The pending connection attempt */
- int listenfd; /**< The socket we're listening for incoming connections */
- guint listenfd_handle; /**< The timeout handle for incoming connection */
- guint connect_timeout_handle; /**< The timeout handle for outgoing connection */
- int fd; /**< The direct connection socket */
- guint recv_handle; /**< The incoming data callback handle */
- guint send_handle; /**< The outgoing data callback handle */
- gchar *in_buffer; /**< The receive buffer */
- int in_size; /**< The receive buffer size */
- int in_pos; /**< The first free position in receive buffer */
- GQueue *out_queue; /**< The outgoing packet queue */
- int msg_pos; /**< The position of next byte to be sent in the actual packet */
- /** The callback used for sending information to the peer about the opened socket */
- void (*send_connection_info_msg_cb)(MsnDirectConn *);
- gchar *ext_ip; /**< Our external IP address */
- int ext_port; /**< Our external port */
- /*int num_calls;*/ /**< The number of slpcalls using this direct connection */
-#define DC_OUTGOING_TIMEOUT (5)
-/* Time for internal + external connection attempts */
-#define DC_INCOMING_TIMEOUT (DC_OUTGOING_TIMEOUT * 3)
-/* Timeout for lack of activity */
- * Queues an MSN message to be sent via direct connection.
-msn_dc_enqueue_part(MsnDirectConn *dc, MsnSlpMessagePart *part);
- * Creates, initializes, and returns a new MsnDirectConn structure.
-msn_dc_new(MsnSlpCall *slpcall);
- * Destroys an MsnDirectConn structure. Frees every buffer allocated earlier
- * restores saved callbacks, etc.
-msn_dc_destroy(MsnDirectConn *dc);
- * Fallback to switchboard connection. Used when neither side is able to
- * create a listening socket.
-msn_dc_fallback_to_sb(MsnDirectConn *dc);
- * Increases the slpcall counter in DC. The direct connection remains open
- * until all slpcalls using it are destroyed.
-msn_dc_ref(MsnDirectConn *dc);
- * Decrease the slpcall counter in DC. The direct connection remains open
- * until all slpcalls using it are destroyed.
-msn_dc_unref(MsnDirectConn *dc);
- * Sends a direct connect INVITE message on the associated slplink
- * with the corresponding connection type and information.
-msn_dc_send_invite(MsnDirectConn *dc);
- * Sends a direct connect OK message as a response to an INVITE received earliaer
- * on the corresponding slplink.
-msn_dc_send_ok(MsnDirectConn *dc);
- * This callback will be called when we're successfully connected to
-msn_dc_connected_to_peer_cb(gpointer data, gint fd, const gchar *error_msg);
- * This callback will be called when we're unable to connect to
- * the remote host in DC_CONNECT_TIMEOUT seconds.
-msn_dc_outgoing_connection_timeout_cb(gpointer data);
- * This callback will be called when the listening socket is successfully
- * created and its parameters (IP/port) are available.
-msn_dc_listen_socket_created_cb(int listenfd, gpointer data);
-#endif /* MSN_DIRECTCONN_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/dnsquery.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,180 +0,0 @@
- * @file dnsquery.h DNS query API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_DNSQUERY_H_
-#define _PURPLE_DNSQUERY_H_
- * An opaque structure representing a DNS query. The hostname and port
- * associated with the query can be retrieved using
- * purple_dnsquery_get_host() and purple_dnsquery_get_port().
-typedef struct _PurpleDnsQueryData PurpleDnsQueryData;
- * The "hosts" parameter is a linked list containing pairs of
- * one size_t addrlen and one struct sockaddr *addr. It should
- * be free'd by the callback function.
-typedef void (*PurpleDnsQueryConnectFunction)(GSList *hosts, gpointer data, const char *error_message);
- * Callbacks used by the UI if it handles resolving DNS
-typedef void (*PurpleDnsQueryResolvedCallback) (PurpleDnsQueryData *query_data, GSList *hosts);
-typedef void (*PurpleDnsQueryFailedCallback) (PurpleDnsQueryData *query_data, const gchar *error_message);
- * DNS Request UI operations; UIs should implement this if they want to do DNS
- * lookups themselves, rather than relying on the core.
- /** If implemented, return TRUE if the UI takes responsibility for DNS
- * queries. When returning FALSE, the standard implementation is used. */
- gboolean (*resolve_host)(PurpleDnsQueryData *query_data,
- PurpleDnsQueryResolvedCallback resolved_cb,
- PurpleDnsQueryFailedCallback failed_cb);
- /** Called just before @a query_data is freed; this should cancel any
- * further use of @a query_data the UI would make. Unneeded if
- * #resolve_host is not implemented.
- void (*destroy)(PurpleDnsQueryData *query_data);
- void (*_purple_reserved1)(void);
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
- void (*_purple_reserved4)(void);
-/**************************************************************************/
-/** @name DNS query API */
-/**************************************************************************/
- * Perform an asynchronous DNS query.
- * @param account the account that the query is being done for (or NULL)
- * @param hostname The hostname to resolve.
- * @param port A port number which is stored in the struct sockaddr.
- * @param callback The callback function to call after resolving.
- * @param data Extra data to pass to the callback function.
- * @return NULL if there was an error, otherwise return a reference to
- * a data structure that can be used to cancel the pending
- * DNS query, if needed.
-PurpleDnsQueryData *purple_dnsquery_a_account(PurpleAccount *account, const char *hostname, int port, PurpleDnsQueryConnectFunction callback, gpointer data);
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_DNSQUERY_C_)
- * Perform an asynchronous DNS query.
- * @param hostname The hostname to resolve.
- * @param port A port number which is stored in the struct sockaddr.
- * @param callback The callback function to call after resolving.
- * @param data Extra data to pass to the callback function.
- * @return NULL if there was an error, otherwise return a reference to
- * a data structure that can be used to cancel the pending
- * DNS query, if needed.
- * @deprecated Use purple_dnsquery_a_account instead
-PurpleDnsQueryData *purple_dnsquery_a(const char *hostname, int port, PurpleDnsQueryConnectFunction callback, gpointer data);
- * Cancel a DNS query and destroy the associated data structure.
- * @param query_data The DNS query to cancel. This data structure
- * is freed by this function.
-void purple_dnsquery_destroy(PurpleDnsQueryData *query_data);
- * Sets the UI operations structure to be used when doing a DNS
- * resolve. The UI operations need only be set if the UI wants to
- * handle the resolve itself; otherwise, leave it as NULL.
- * @param ops The UI operations structure.
-void purple_dnsquery_set_ui_ops(PurpleDnsQueryUiOps *ops);
- * Returns the UI operations structure to be used when doing a DNS
- * @return The UI operations structure.
-PurpleDnsQueryUiOps *purple_dnsquery_get_ui_ops(void);
- * Get the host associated with a PurpleDnsQueryData
- * @param query_data The DNS query
-char *purple_dnsquery_get_host(PurpleDnsQueryData *query_data);
- * Get the port associated with a PurpleDnsQueryData
- * @param query_data The DNS query
-unsigned short purple_dnsquery_get_port(PurpleDnsQueryData *query_data);
- * Initializes the DNS query subsystem.
-void purple_dnsquery_init(void);
- * Uninitializes the DNS query subsystem.
-void purple_dnsquery_uninit(void);
-#endif /* _PURPLE_DNSQUERY_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/dnssrv.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,242 +0,0 @@
- * Copyright (C) 2005, Thomas Butter <butter@uni-mannheim.de>
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_DNSSRV_H
-#define _PURPLE_DNSSRV_H
-typedef struct _PurpleSrvTxtQueryData PurpleSrvTxtQueryData;
-typedef struct _PurpleSrvResponse PurpleSrvResponse;
-typedef struct _PurpleTxtResponse PurpleTxtResponse;
-/* For compatibility, should be removed for 3.0.0
-typedef struct _PurpleSrvTxtQueryData PurpleSrvQueryData;
-struct _PurpleSrvResponse {
-struct _PurpleTxtResponse {
-typedef void (*PurpleSrvTxtQueryResolvedCallback) (PurpleSrvTxtQueryData *query_data, GList *records);
-typedef void (*PurpleSrvTxtQueryFailedCallback) (PurpleSrvTxtQueryData *query_data, const gchar *error_message);
- * SRV Request UI operations; UIs should implement this if they want to do SRV
- * lookups themselves, rather than relying on the core.
- /** If implemented, return TRUE if the UI takes responsibility for SRV
- * queries. When returning FALSE, the standard implementation is used.
- * These callbacks MUST be called asynchronously. */
- gboolean (*resolve)(PurpleSrvTxtQueryData *query_data,
- PurpleSrvTxtQueryResolvedCallback resolved_cb,
- PurpleSrvTxtQueryFailedCallback failed_cb);
- /** Called just before @a query_data is freed; this should cancel any
- * further use of @a query_data the UI would make. Unneeded if
- * #resolve_host is not implemented.
- void (*destroy)(PurpleSrvTxtQueryData *query_data);
- void (*_purple_reserved1)(void);
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
- void (*_purple_reserved4)(void);
-} PurpleSrvTxtQueryUiOps;
- * @param resp An array of PurpleSrvResponse of size results. The array
- * is sorted based on the order described in the DNS SRV RFC.
- * Users of this API should try each record in resp in order,
- * starting at the beginning.
-typedef void (*PurpleSrvCallback)(PurpleSrvResponse *resp, int results, gpointer data);
- * Callback that returns the data retrieved from a DNS TXT lookup.
- * @param responses A GList of PurpleTxtResponse objects.
- * @param data The extra data passed to purple_txt_resolve.
-typedef void (*PurpleTxtCallback)(GList *responses, gpointer data);
- * Queries an SRV record.
- * @param account the account that the query is being done for (or NULL)
- * @param protocol Name of the protocol (e.g. "sip")
- * @param transport Name of the transport ("tcp" or "udp")
- * @param domain Domain name to query (e.g. "blubb.com")
- * @param cb A callback which will be called with the results
- * @param extradata Extra data to be passed to the callback
-PurpleSrvTxtQueryData *purple_srv_resolve_account(PurpleAccount *account, const char *protocol, const char *transport, const char *domain, PurpleSrvCallback cb, gpointer extradata);
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_DNSSRV_C_)
- * Queries an SRV record.
- * @param protocol Name of the protocol (e.g. "sip")
- * @param transport Name of the transport ("tcp" or "udp")
- * @param domain Domain name to query (e.g. "blubb.com")
- * @param cb A callback which will be called with the results
- * @param extradata Extra data to be passed to the callback
- * @deprecated Use purple_srv_resolve_account instead
-PurpleSrvTxtQueryData *purple_srv_resolve(const char *protocol, const char *transport, const char *domain, PurpleSrvCallback cb, gpointer extradata);
- * Cancel an SRV or DNS query.
- * @param query_data The request to cancel.
- * @deprecated Use purple_srv_txt_query_destroy instead
-void purple_srv_cancel(PurpleSrvTxtQueryData *query_data);
- * Queries an TXT record.
- * @param account the account that the query is being done for (or NULL)
- * @param owner Name of the protocol (e.g. "_xmppconnect")
- * @param domain Domain name to query (e.g. "blubb.com")
- * @param cb A callback which will be called with the results
- * @param extradata Extra data to be passed to the callback
-PurpleSrvTxtQueryData *purple_txt_resolve_account(PurpleAccount *account, const char *owner, const char *domain, PurpleTxtCallback cb, gpointer extradata);
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_DNSSRV_C_)
- * Queries an TXT record.
- * @param owner Name of the protocol (e.g. "_xmppconnect")
- * @param domain Domain name to query (e.g. "blubb.com")
- * @param cb A callback which will be called with the results
- * @param extradata Extra data to be passed to the callback
- * @deprecated Use purple_txt_resolve_account instead
-PurpleSrvTxtQueryData *purple_txt_resolve(const char *owner, const char *domain, PurpleTxtCallback cb, gpointer extradata);
- * Cancel an TXT DNS query.
- * @param query_data The request to cancel.
- * @deprecated Use purple_srv_txt_query_destroy instead
-void purple_txt_cancel(PurpleSrvTxtQueryData *query_data);
- * Get the value of the current TXT record.
- * @param response The TXT response record
- * @returns The value of the current TXT record.
-const gchar *purple_txt_response_get_content(PurpleTxtResponse *response);
- * Destroy a TXT DNS response object.
- * @param response The PurpleTxtResponse to destroy.
-void purple_txt_response_destroy(PurpleTxtResponse *response);
- * Cancel a SRV/TXT query and destroy the associated data structure.
- * @param query_data The SRV/TXT query to cancel. This data structure
- * is freed by this function.
-void purple_srv_txt_query_destroy(PurpleSrvTxtQueryData *query_data);
- * Sets the UI operations structure to be used when doing a SRV/TXT
- * resolve. The UI operations need only be set if the UI wants to
- * handle the resolve itself; otherwise, leave it as NULL.
- * @param ops The UI operations structure.
-void purple_srv_txt_query_set_ui_ops(PurpleSrvTxtQueryUiOps *ops);
- * Returns the UI operations structure to be used when doing a SRV/TXT
- * @return The UI operations structure.
-PurpleSrvTxtQueryUiOps *purple_srv_txt_query_get_ui_ops(void);
- * Get the query from a PurpleDnsQueryData
- * @param query_data The SRV/TXT query
-char *purple_srv_txt_query_get_query(PurpleSrvTxtQueryData *query_data);
- * Get the type from a PurpleDnsQueryData (TXT or SRV)
- * @param query_data The query
-int purple_srv_txt_query_get_type(PurpleSrvTxtQueryData *query_data);
-#endif /* _PURPLE_DNSSRV_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/error.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
- * @file error.h Error functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
- * Returns the string representation of an error type.
- * @param type The error type.
- * @param debug Whether this should be treated as a debug log message or a user-visible error
- * @return The string representation of the error type.
-const char *msn_error_get_text(unsigned int type, gboolean *debug);
- * @param session The current session.
- * @param type The error type.
-void msn_error_handle(MsnSession *session, unsigned int type);
- * Show the sync issue in a dialog using request api
- * @param sesion MsnSession associated to this error.
- * @param passport The passport associated with the error.
- * @param group_name The group in the buddy is suppoused to be
-void msn_error_sync_issue(MsnSession *session, const char *passport,
- const char *group_name);
-#endif /* MSN_ERROR_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/eventloop.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,276 +0,0 @@
- * @file eventloop.h Purple Event Loop API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_EVENTLOOP_H_
-#define _PURPLE_EVENTLOOP_H_
- PURPLE_INPUT_READ = 1 << 0, /**< A read condition. */
- PURPLE_INPUT_WRITE = 1 << 1 /**< A write condition. */
-/** The type of callbacks to handle events on file descriptors, as passed to
- * purple_input_add(). The callback will receive the @c user_data passed to
- * purple_input_add(), the file descriptor on which the event occurred, and the
- * condition that was satisfied to cause the callback to be invoked.
-typedef void (*PurpleInputFunction)(gpointer, gint, PurpleInputCondition);
-/** @copydoc _PurpleEventLoopUiOps */
-typedef struct _PurpleEventLoopUiOps PurpleEventLoopUiOps;
-/** An abstraction of an application's mainloop; libpurple will use this to
- * watch file descriptors and schedule timed callbacks. If your application
- * uses the glib mainloop, there is an implementation of this struct in
- * <tt>libpurple/example/nullclient.c</tt> which you can use verbatim.
-struct _PurpleEventLoopUiOps
- * Should create a callback timer with an interval measured in
- * milliseconds. The supplied @a function should be called every @a
- * interval seconds until it returns @c FALSE, after which it should not
- * Analogous to g_timeout_add in glib.
- * Note: On Win32, this function may be called from a thread other than
- * the libpurple thread. You should make sure to detect this situation
- * and to only call "function" from the libpurple thread.
- * @param interval the interval in <em>milliseconds</em> between calls
- * @param data arbitrary data to be passed to @a function at each
- * @todo Who is responsible for freeing @a data?
- * @return a handle for the timeout, which can be passed to
- * @see purple_timeout_add
- guint (*timeout_add)(guint interval, GSourceFunc function, gpointer data);
- * Should remove a callback timer. Analogous to g_source_remove in glib.
- * @param handle an identifier for a timeout, as returned by
- * @return @c TRUE if the timeout identified by @a handle was
- * @see purple_timeout_remove
- gboolean (*timeout_remove)(guint handle);
- * Should add an input handler. Analogous to g_io_add_watch_full in
- * @param fd a file descriptor to watch for events
- * @param cond a bitwise OR of events on @a fd for which @a func
- * @param func a callback to fire whenever a relevant event on @a
- * @param user_data arbitrary data to pass to @a fd.
- * @return an identifier for this input handler, which can be
- * passed to #input_remove.
- * @see purple_input_add
- guint (*input_add)(int fd, PurpleInputCondition cond,
- PurpleInputFunction func, gpointer user_data);
- * Should remove an input handler. Analogous to g_source_remove in glib.
- * @param handle an identifier, as returned by #input_add.
- * @return @c TRUE if the input handler was found and removed.
- * @see purple_input_remove
- gboolean (*input_remove)(guint handle);
- * If implemented, should get the current error status for an input.
- * Implementation of this UI op is optional. Implement it if the UI's
- * sockets or event loop needs to customize determination of socket
- * error status. If unimplemented, <tt>getsockopt(2)</tt> will be used
- * @see purple_input_get_error
- int (*input_get_error)(int fd, int *error);
- * If implemented, should create a callback timer with an interval
- * measured in seconds. Analogous to g_timeout_add_seconds in glib.
- * This allows UIs to group timers for better power efficiency. For
- * this reason, @a interval may be rounded by up to a second.
- * Implementation of this UI op is optional. If it's not implemented,
- * calls to purple_timeout_add_seconds() will be serviced by
- * @see purple_timeout_add_seconds()
- guint (*timeout_add_seconds)(guint interval, GSourceFunc function,
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
- void (*_purple_reserved4)(void);
-/**************************************************************************/
-/** @name Event Loop API */
-/**************************************************************************/
- * Creates a callback timer.
- * The timer will repeat until the function returns @c FALSE. The
- * first call will be at the end of the first interval.
- * If the timer is in a multiple of seconds, use purple_timeout_add_seconds()
- * instead as it allows UIs to group timers for power efficiency.
- * @param interval The time between calls of the function, in
- * @param function The function to call.
- * @param data data to pass to @a function.
- * @return A handle to the timer which can be passed to
- * purple_timeout_remove() to remove the timer.
-guint purple_timeout_add(guint interval, GSourceFunc function, gpointer data);
- * Creates a callback timer.
- * The timer will repeat until the function returns @c FALSE. The
- * first call will be at the end of the first interval.
- * This function allows UIs to group timers for better power efficiency. For
- * this reason, @a interval may be rounded by up to a second.
- * @param interval The time between calls of the function, in
- * @param function The function to call.
- * @param data data to pass to @a function.
- * @return A handle to the timer which can be passed to
- * purple_timeout_remove() to remove the timer.
-guint purple_timeout_add_seconds(guint interval, GSourceFunc function, gpointer data);
- * Removes a timeout handler.
- * @param handle The handle, as returned by purple_timeout_add().
- * @return @c TRUE if the handler was successfully removed.
-gboolean purple_timeout_remove(guint handle);
- * Adds an input handler.
- * @param fd The input file descriptor.
- * @param cond The condition type.
- * @param func The callback function for data.
- * @param user_data User-specified data.
- * @return The resulting handle (will be greater than 0).
- * @see g_io_add_watch_full
-guint purple_input_add(int fd, PurpleInputCondition cond,
- PurpleInputFunction func, gpointer user_data);
- * Removes an input handler.
- * @param handle The handle of the input handler. Note that this is the return
- * value from purple_input_add(), <i>not</i> the file descriptor.
-gboolean purple_input_remove(guint handle);
- * Get the current error status for an input.
- * The return value and error follow getsockopt() with a level of SOL_SOCKET and an
- * option name of SO_ERROR, and this is how the error is determined if the UI does not
- * implement the input_get_error UI op.
- * @param fd The input file descriptor.
- * @param error A pointer to an @c int which on return will have the error, or
- * @return @c 0 if there is no error; @c -1 if there is an error, in which case
- * @a errno will be set.
-purple_input_get_error(int fd, int *error);
-/**************************************************************************/
-/** @name UI Registration Functions */
-/**************************************************************************/
- * Sets the UI operations structure to be used for accounts.
- * @param ops The UI operations structure.
-void purple_eventloop_set_ui_ops(PurpleEventLoopUiOps *ops);
- * Returns the UI operations structure used for accounts.
- * @return The UI operations structure in use.
-PurpleEventLoopUiOps *purple_eventloop_get_ui_ops(void);
-#endif /* _PURPLE_EVENTLOOP_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/ft.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,785 +0,0 @@
- * @file ft.h File Transfer API
- * @see @ref xfer-signals
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-/**************************************************************************/
-/**************************************************************************/
-typedef struct _PurpleXfer PurpleXfer;
- * Types of file transfers.
- PURPLE_XFER_UNKNOWN = 0, /**< Unknown file transfer type. */
- PURPLE_XFER_SEND, /**< File sending. */
- PURPLE_XFER_RECEIVE /**< File receiving. */
- * The different states of the xfer.
- PURPLE_XFER_STATUS_UNKNOWN = 0, /**< Unknown, the xfer may be null. */
- PURPLE_XFER_STATUS_NOT_STARTED, /**< It hasn't started yet. */
- PURPLE_XFER_STATUS_ACCEPTED, /**< Receive accepted, but destination file not selected yet */
- PURPLE_XFER_STATUS_STARTED, /**< purple_xfer_start has been called. */
- PURPLE_XFER_STATUS_DONE, /**< The xfer completed successfully. */
- PURPLE_XFER_STATUS_CANCEL_LOCAL, /**< The xfer was cancelled by us. */
- PURPLE_XFER_STATUS_CANCEL_REMOTE /**< The xfer was cancelled by the other end, or we couldn't connect. */
- * File transfer UI operations.
- * Any UI representing a file transfer must assign a filled-out
- * PurpleXferUiOps structure to the purple_xfer.
- void (*new_xfer)(PurpleXfer *xfer);
- void (*destroy)(PurpleXfer *xfer);
- void (*add_xfer)(PurpleXfer *xfer);
- void (*update_progress)(PurpleXfer *xfer, double percent);
- void (*cancel_local)(PurpleXfer *xfer);
- void (*cancel_remote)(PurpleXfer *xfer);
- * UI op to write data received from the prpl. The UI must deal with the
- * entire buffer and return size, or it is treated as an error.
- * @param xfer The file transfer structure
- * @param buffer The buffer to write
- * @param size The size of the buffer
- * @return size if the write was successful, or a value between 0 and
- gssize (*ui_write)(PurpleXfer *xfer, const guchar *buffer, gssize size);
- * UI op to read data to send to the prpl for a file transfer.
- * @param xfer The file transfer structure
- * @param buffer A pointer to a buffer. The UI must allocate this buffer.
- * libpurple will free the data.
- * @param size The maximum amount of data to put in the buffer.
- * @returns The amount of data in the buffer, 0 if nothing is available,
- * and a negative value if an error occurred and the transfer
- * should be cancelled (libpurple will cancel).
- gssize (*ui_read)(PurpleXfer *xfer, guchar **buffer, gssize size);
- * Op to notify the UI that not all the data read in was written. The UI
- * should re-enqueue this data and return it the next time read is called.
- * This MUST be implemented if read and write are implemented.
- * @param xfer The file transfer structure
- * @param buffer A pointer to the beginning of the unwritten data.
- * @param size The amount of unwritten data.
- void (*data_not_sent)(PurpleXfer *xfer, const guchar *buffer, gsize size);
- * Op to create a thumbnail image for a file transfer
- * @param xfer The file transfer structure
- void (*add_thumbnail)(PurpleXfer *xfer, const gchar *formats);
- * A core representation of a file transfer.
- guint ref; /**< The reference count. */
- PurpleXferType type; /**< The type of transfer. */
- PurpleAccount *account; /**< The account. */
- char *who; /**< The person on the other end of the
- char *message; /**< A message sent with the request */
- char *filename; /**< The name sent over the network. */
- char *local_filename; /**< The name on the local hard drive. */
- size_t size; /**< The size of the file. */
- FILE *dest_fp; /**< The destination file pointer. */
- char *remote_ip; /**< The remote IP address. */
- int local_port; /**< The local port. */
- int remote_port; /**< The remote port. */
- int fd; /**< The socket file descriptor. */
- int watcher; /**< Watcher. */
- size_t bytes_sent; /**< The number of bytes sent. */
- size_t bytes_remaining; /**< The number of bytes remaining. */
- time_t start_time; /**< When the transfer of data began. */
- time_t end_time; /**< When the transfer of data ended. */
- size_t current_buffer_size; /**< This gradually increases for fast
- network connections. */
- PurpleXferStatusType status; /**< File Transfer's status. */
- /** I/O operations, which should be set by the prpl using
- * purple_xfer_set_init_fnc() and friends. Setting #init is
- * mandatory; all others are optional.
- void (*init)(PurpleXfer *xfer);
- void (*request_denied)(PurpleXfer *xfer);
- void (*start)(PurpleXfer *xfer);
- void (*end)(PurpleXfer *xfer);
- void (*cancel_send)(PurpleXfer *xfer);
- void (*cancel_recv)(PurpleXfer *xfer);
- gssize (*read)(guchar **buffer, PurpleXfer *xfer);
- gssize (*write)(const guchar *buffer, size_t size, PurpleXfer *xfer);
- void (*ack)(PurpleXfer *xfer, const guchar *buffer, size_t size);
- PurpleXferUiOps *ui_ops; /**< UI-specific operations. */
- void *ui_data; /**< UI-specific data. */
- void *data; /**< prpl-specific data. */
-/**************************************************************************/
-/** @name File Transfer API */
-/**************************************************************************/
- * Creates a new file transfer handle.
- * This is called by prpls.
- * The handle starts with a ref count of 1, and this reference
- * is owned by the core. The prpl normally does not need to
- * purple_xfer_ref or unref.
- * @param account The account sending or receiving the file.
- * @param type The type of file transfer.
- * @param who The name of the remote user.
- * @return A file transfer handle.
-PurpleXfer *purple_xfer_new(PurpleAccount *account,
- PurpleXferType type, const char *who);
- * @return all current xfers with refs
-GList *purple_xfers_get_all(void);
- * Increases the reference count on a PurpleXfer.
- * Please call purple_xfer_unref later.
- * @param xfer A file transfer handle.
-void purple_xfer_ref(PurpleXfer *xfer);
- * Decreases the reference count on a PurpleXfer.
- * If the reference reaches 0, purple_xfer_destroy (an internal function)
- * will destroy the xfer. It calls the ui destroy cb first.
- * Since the core keeps a ref on the xfer, only an erroneous call to
- * this function will destroy the xfer while still in use.
- * @param xfer A file transfer handle.
-void purple_xfer_unref(PurpleXfer *xfer);
- * Requests confirmation for a file transfer from the user. If receiving
- * a file which is known at this point, this requests user to accept and
- * save the file. If the filename is unknown (not set) this only requests user
- * to accept the file transfer. In this case protocol must call this function
- * again once the filename is available.
- * @param xfer The file transfer to request confirmation on.
-void purple_xfer_request(PurpleXfer *xfer);
- * Called if the user accepts the file transfer request.
- * @param xfer The file transfer.
- * @param filename The filename.
-void purple_xfer_request_accepted(PurpleXfer *xfer, const char *filename);
- * Called if the user rejects the file transfer request.
- * @param xfer The file transfer.
-void purple_xfer_request_denied(PurpleXfer *xfer);
- * Returns the type of file transfer.
- * @param xfer The file transfer.
- * @return The type of the file transfer.
-PurpleXferType purple_xfer_get_type(const PurpleXfer *xfer);
- * Returns the account the file transfer is using.
- * @param xfer The file transfer.
-PurpleAccount *purple_xfer_get_account(const PurpleXfer *xfer);
- * Returns the name of the remote user.
- * @param xfer The file transfer.
- * @return The name of the remote user.
-const char *purple_xfer_get_remote_user(const PurpleXfer *xfer);
- * Returns the status of the xfer.
- * @param xfer The file transfer.
-PurpleXferStatusType purple_xfer_get_status(const PurpleXfer *xfer);
- * Returns true if the file transfer was cancelled.
- * @param xfer The file transfer.
- * @return Whether or not the transfer was cancelled.
- * FIXME: This should be renamed using cancelled for 3.0.0.
-gboolean purple_xfer_is_canceled(const PurpleXfer *xfer);
- * Returns the completed state for a file transfer.
- * @param xfer The file transfer.
- * @return The completed state.
-gboolean purple_xfer_is_completed(const PurpleXfer *xfer);
- * Returns the name of the file being sent or received.
- * @param xfer The file transfer.
- * @return The filename.
-const char *purple_xfer_get_filename(const PurpleXfer *xfer);
- * Returns the file's destination filename,
- * @param xfer The file transfer.
- * @return The destination filename.
-const char *purple_xfer_get_local_filename(const PurpleXfer *xfer);
- * Returns the number of bytes sent (or received) so far.
- * @param xfer The file transfer.
- * @return The number of bytes sent.
-size_t purple_xfer_get_bytes_sent(const PurpleXfer *xfer);
- * Returns the number of bytes remaining to send or receive.
- * @param xfer The file transfer.
- * @return The number of bytes remaining.
-size_t purple_xfer_get_bytes_remaining(const PurpleXfer *xfer);
- * Returns the size of the file being sent or received.
- * @param xfer The file transfer.
- * @return The total size of the file.
-size_t purple_xfer_get_size(const PurpleXfer *xfer);
- * Returns the current percentage of progress of the transfer.
- * This is a number between 0 (0%) and 1 (100%).
- * @param xfer The file transfer.
- * @return The percentage complete.
-double purple_xfer_get_progress(const PurpleXfer *xfer);
- * Returns the local port number in the file transfer.
- * @param xfer The file transfer.
- * @return The port number on this end.
-unsigned int purple_xfer_get_local_port(const PurpleXfer *xfer);
- * Returns the remote IP address in the file transfer.
- * @param xfer The file transfer.
- * @return The IP address on the other end.
-const char *purple_xfer_get_remote_ip(const PurpleXfer *xfer);
- * Returns the remote port number in the file transfer.
- * @param xfer The file transfer.
- * @return The port number on the other end.
-unsigned int purple_xfer_get_remote_port(const PurpleXfer *xfer);
- * Returns the time the transfer of a file started.
- * @param xfer The file transfer.
- * @return The time when the transfer started.
-time_t purple_xfer_get_start_time(const PurpleXfer *xfer);
- * Returns the time the transfer of a file ended.
- * @param xfer The file transfer.
- * @return The time when the transfer ended.
-time_t purple_xfer_get_end_time(const PurpleXfer *xfer);
- * Sets the completed state for the file transfer.
- * @param xfer The file transfer.
- * @param completed The completed state.
-void purple_xfer_set_completed(PurpleXfer *xfer, gboolean completed);
- * Sets the filename for the file transfer.
- * @param xfer The file transfer.
- * @param message The message.
-void purple_xfer_set_message(PurpleXfer *xfer, const char *message);
- * Sets the filename for the file transfer.
- * @param xfer The file transfer.
- * @param filename The filename.
-void purple_xfer_set_filename(PurpleXfer *xfer, const char *filename);
- * Sets the local filename for the file transfer.
- * @param xfer The file transfer.
- * @param filename The filename
-void purple_xfer_set_local_filename(PurpleXfer *xfer, const char *filename);
- * Sets the size of the file in a file transfer.
- * @param xfer The file transfer.
- * @param size The size of the file.
-void purple_xfer_set_size(PurpleXfer *xfer, size_t size);
- * Sets the current working position in the active file transfer. This
- * can be used to jump backward in the file if the protocol detects
- * that some bit of data needs to be resent or has been sent twice.
- * It's used for pausing and resuming an oscar file transfer.
- * @param xfer The file transfer.
- * @param bytes_sent The new current position in the file. If we're
- * sending a file then this is the byte that we will
- * send. If we're receiving a file, this is the
- * next byte that we expect to receive.
-void purple_xfer_set_bytes_sent(PurpleXfer *xfer, size_t bytes_sent);
- * Returns the UI operations structure for a file transfer.
- * @param xfer The file transfer.
- * @return The UI operations structure.
-PurpleXferUiOps *purple_xfer_get_ui_ops(const PurpleXfer *xfer);
- * Sets the read function for the file transfer.
- * @param xfer The file transfer.
- * @param fnc The read function.
-void purple_xfer_set_read_fnc(PurpleXfer *xfer,
- gssize (*fnc)(guchar **, PurpleXfer *));
- * Sets the write function for the file transfer.
- * @param xfer The file transfer.
- * @param fnc The write function.
-void purple_xfer_set_write_fnc(PurpleXfer *xfer,
- gssize (*fnc)(const guchar *, size_t, PurpleXfer *));
- * Sets the acknowledge function for the file transfer.
- * @param xfer The file transfer.
- * @param fnc The acknowledge function.
-void purple_xfer_set_ack_fnc(PurpleXfer *xfer,
- void (*fnc)(PurpleXfer *, const guchar *, size_t));
- * Sets the function to be called if the request is denied.
- * @param xfer The file transfer.
- * @param fnc The request denied prpl callback.
-void purple_xfer_set_request_denied_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *));
- * Sets the transfer initialization function for the file transfer.
- * This function is required, and must call purple_xfer_start() with
- * the necessary parameters. This will be called if the file transfer
- * is accepted by the user.
- * @param xfer The file transfer.
- * @param fnc The transfer initialization function.
-void purple_xfer_set_init_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *));
- * Sets the start transfer function for the file transfer.
- * @param xfer The file transfer.
- * @param fnc The start transfer function.
-void purple_xfer_set_start_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *));
- * Sets the end transfer function for the file transfer.
- * @param xfer The file transfer.
- * @param fnc The end transfer function.
-void purple_xfer_set_end_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *));
- * Sets the cancel send function for the file transfer.
- * @param xfer The file transfer.
- * @param fnc The cancel send function.
-void purple_xfer_set_cancel_send_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *));
- * Sets the cancel receive function for the file transfer.
- * @param xfer The file transfer.
- * @param fnc The cancel receive function.
-void purple_xfer_set_cancel_recv_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *));
- * Reads in data from a file transfer stream.
- * @param xfer The file transfer.
- * @param buffer The buffer that will be created to contain the data.
- * @return The number of bytes read, or -1.
-gssize purple_xfer_read(PurpleXfer *xfer, guchar **buffer);
- * Writes data to a file transfer stream.
- * @param xfer The file transfer.
- * @param buffer The buffer to read the data from.
- * @param size The number of bytes to write.
- * @return The number of bytes written, or -1.
-gssize purple_xfer_write(PurpleXfer *xfer, const guchar *buffer, gsize size);
- * Starts a file transfer.
- * Either @a fd must be specified <i>or</i> @a ip and @a port on a
- * file receive transfer. On send, @a fd must be specified, and
- * @a ip and @a port are ignored.
- * Prior to libpurple 2.6.0, passing '0' to @a fd was special-cased to
- * allow the protocol plugin to facilitate the file transfer itself. As of
- * 2.6.0, this is supported (for backward compatibility), but will be
- * removed in libpurple 3.0.0. If a prpl detects that the running libpurple
- * is running 2.6.0 or higher, it should use the invalid fd '-1'.
- * @param xfer The file transfer.
- * @param fd The file descriptor for the socket.
- * @param ip The IP address to connect to.
- * @param port The port to connect to.
-void purple_xfer_start(PurpleXfer *xfer, int fd, const char *ip,
- * Ends a file transfer.
- * @param xfer The file transfer.
-void purple_xfer_end(PurpleXfer *xfer);
- * Adds a new file transfer to the list of file transfers. Call this only
- * if you are not using purple_xfer_start.
- * @param xfer The file transfer.
-void purple_xfer_add(PurpleXfer *xfer);
- * Cancels a file transfer on the local end.
- * @param xfer The file transfer.
-void purple_xfer_cancel_local(PurpleXfer *xfer);
- * Cancels a file transfer from the remote end.
- * @param xfer The file transfer.
-void purple_xfer_cancel_remote(PurpleXfer *xfer);
- * Displays a file transfer-related error message.
- * This is a wrapper around purple_notify_error(), which automatically
- * specifies a title ("File transfer to <i>user</i> failed" or
- * "File Transfer from <i>user</i> failed").
- * @param type The type of file transfer.
- * @param account The account sending or receiving the file.
- * @param who The user on the other end of the transfer.
- * @param msg The message to display.
-void purple_xfer_error(PurpleXferType type, PurpleAccount *account, const char *who, const char *msg);
- * Updates file transfer progress.
- * @param xfer The file transfer.
-void purple_xfer_update_progress(PurpleXfer *xfer);
- * Displays a file transfer-related message in the conversation window
- * This is a wrapper around purple_conversation_write
- * @param xfer The file transfer to which this message relates.
- * @param message The message to display.
- * @param is_error Is this an error message?.
-void purple_xfer_conversation_write(PurpleXfer *xfer, char *message, gboolean is_error);
- * Allows the UI to signal it's ready to send/receive data (depending on
- * the direction of the file transfer. Used when the UI is providing
- * read/write/data_not_sent UI ops.
- * @param xfer The file transfer which is ready.
-void purple_xfer_ui_ready(PurpleXfer *xfer);
- * Allows the prpl to signal it's ready to send/receive data (depending on
- * the direction of the file transfer. Used when the prpl provides read/write
- * ops and cannot/does not provide a raw fd to the core.
- * @param xfer The file transfer which is ready.
-void purple_xfer_prpl_ready(PurpleXfer *xfer);
- * Gets the thumbnail data for a transfer
- * @param xfer The file transfer to get the thumbnail for
- * @param len If not @c NULL, the length of the thumbnail data returned
- * will be set in the location pointed to by this.
- * @return The thumbnail data, or NULL if there is no thumbnail
-gconstpointer purple_xfer_get_thumbnail(const PurpleXfer *xfer, gsize *len);
- * Gets the mimetype of the thumbnail preview for a transfer
- * @param xfer The file transfer to get the mimetype for
- * @return The mimetype of the thumbnail, or @c NULL if not thumbnail is set
-const gchar *purple_xfer_get_thumbnail_mimetype(const PurpleXfer *xfer);
- * Sets the thumbnail data for a transfer
- * @param xfer The file transfer to set the data for
- * @param thumbnail A pointer to the thumbnail data, this will be copied
- * @param size The size in bytes of the passed in thumbnail data
- * @param mimetype The mimetype of the generated thumbnail
-void purple_xfer_set_thumbnail(PurpleXfer *xfer, gconstpointer thumbnail,
- gsize size, const gchar *mimetype);
- * Prepare a thumbnail for a transfer (if the UI supports it)
- * will be no-op in case the UI doesn't implement thumbnail creation
- * @param xfer The file transfer to create a thumbnail for
- * @param formats A comma-separated list of mimetypes for image formats
- * the protocols can use for thumbnails.
-void purple_xfer_prepare_thumbnail(PurpleXfer *xfer, const gchar *formats);
-/**************************************************************************/
-/** @name UI Registration Functions */
-/**************************************************************************/
- * Returns the handle to the file transfer subsystem
-void *purple_xfers_get_handle(void);
- * Initializes the file transfer subsystem
-void purple_xfers_init(void);
- * Uninitializes the file transfer subsystem
-void purple_xfers_uninit(void);
- * Sets the UI operations structure to be used in all purple file transfers.
- * @param ops The UI operations structure.
-void purple_xfers_set_ui_ops(PurpleXferUiOps *ops);
- * Returns the UI operations structure to be used in all purple file transfers.
- * @return The UI operations structure.
-PurpleXferUiOps *purple_xfers_get_ui_ops(void);
-#endif /* _PURPLE_FT_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/gaim-compat.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2317 +0,0 @@
- * @file gaim-compat.h Gaim Compat macros
- * Pidgin 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#define GaimAccountUiOps PurpleAccountUiOps
-#define GaimAccount PurpleAccount
-#define GaimFilterAccountFunc PurpleFilterAccountFunc
-#define GaimAccountRequestAuthorizationCb PurpleAccountRequestAuthorizationCb
-#define gaim_account_new purple_account_new
-#define gaim_account_destroy purple_account_destroy
-#define gaim_account_connect purple_account_connect
-#define gaim_account_register purple_account_register
-#define gaim_account_disconnect purple_account_disconnect
-#define gaim_account_notify_added purple_account_notify_added
-#define gaim_account_request_add purple_account_request_add
-#define gaim_account_request_close purple_account_request_close
-#define gaim_account_request_authorization purple_account_request_authorization
-#define gaim_account_request_change_password purple_account_request_change_password
-#define gaim_account_request_change_user_info purple_account_request_change_user_info
-#define gaim_account_set_username purple_account_set_username
-#define gaim_account_set_password purple_account_set_password
-#define gaim_account_set_alias purple_account_set_alias
-#define gaim_account_set_user_info purple_account_set_user_info
-#define gaim_account_set_buddy_icon_path purple_account_set_buddy_icon_path
-#define gaim_account_set_protocol_id purple_account_set_protocol_id
-#define gaim_account_set_connection purple_account_set_connection
-#define gaim_account_set_remember_password purple_account_set_remember_password
-#define gaim_account_set_check_mail purple_account_set_check_mail
-#define gaim_account_set_enabled purple_account_set_enabled
-#define gaim_account_set_proxy_info purple_account_set_proxy_info
-#define gaim_account_set_status_types purple_account_set_status_types
-#define gaim_account_set_status purple_account_set_status
-#define gaim_account_set_status_list purple_account_set_status_list
-#define gaim_account_clear_settings purple_account_clear_settings
-#define gaim_account_set_int purple_account_set_int
-#define gaim_account_set_string purple_account_set_string
-#define gaim_account_set_bool purple_account_set_bool
-#define gaim_account_set_ui_int purple_account_set_ui_int
-#define gaim_account_set_ui_string purple_account_set_ui_string
-#define gaim_account_set_ui_bool purple_account_set_ui_bool
-#define gaim_account_is_connected purple_account_is_connected
-#define gaim_account_is_connecting purple_account_is_connecting
-#define gaim_account_is_disconnected purple_account_is_disconnected
-#define gaim_account_get_username purple_account_get_username
-#define gaim_account_get_password purple_account_get_password
-#define gaim_account_get_alias purple_account_get_alias
-#define gaim_account_get_user_info purple_account_get_user_info
-#define gaim_account_get_buddy_icon_path purple_account_get_buddy_icon_path
-#define gaim_account_get_protocol_id purple_account_get_protocol_id
-#define gaim_account_get_protocol_name purple_account_get_protocol_name
-#define gaim_account_get_connection purple_account_get_connection
-#define gaim_account_get_remember_password purple_account_get_remember_password
-#define gaim_account_get_check_mail purple_account_get_check_mail
-#define gaim_account_get_enabled purple_account_get_enabled
-#define gaim_account_get_proxy_info purple_account_get_proxy_info
-#define gaim_account_get_active_status purple_account_get_active_status
-#define gaim_account_get_status purple_account_get_status
-#define gaim_account_get_status_type purple_account_get_status_type
-#define gaim_account_get_status_type_with_primitive \
- purple_account_get_status_type_with_primitive
-#define gaim_account_get_presence purple_account_get_presence
-#define gaim_account_is_status_active purple_account_is_status_active
-#define gaim_account_get_status_types purple_account_get_status_types
-#define gaim_account_get_int purple_account_get_int
-#define gaim_account_get_string purple_account_get_string
-#define gaim_account_get_bool purple_account_get_bool
-#define gaim_account_get_ui_int purple_account_get_ui_int
-#define gaim_account_get_ui_string purple_account_get_ui_string
-#define gaim_account_get_ui_bool purple_account_get_ui_bool
-#define gaim_account_get_log purple_account_get_log
-#define gaim_account_destroy_log purple_account_destroy_log
-#define gaim_account_add_buddy purple_account_add_buddy
-#define gaim_account_add_buddies purple_account_add_buddies
-#define gaim_account_remove_buddy purple_account_remove_buddy
-#define gaim_account_remove_buddies purple_account_remove_buddies
-#define gaim_account_remove_group purple_account_remove_group
-#define gaim_account_change_password purple_account_change_password
-#define gaim_account_supports_offline_message purple_account_supports_offline_message
-#define gaim_accounts_add purple_accounts_add
-#define gaim_accounts_remove purple_accounts_remove
-#define gaim_accounts_delete purple_accounts_delete
-#define gaim_accounts_reorder purple_accounts_reorder
-#define gaim_accounts_get_all purple_accounts_get_all
-#define gaim_accounts_get_all_active purple_accounts_get_all_active
-#define gaim_accounts_find purple_accounts_find
-#define gaim_accounts_restore_current_statuses purple_accounts_restore_current_statuses
-#define gaim_accounts_set_ui_ops purple_accounts_set_ui_ops
-#define gaim_accounts_get_ui_ops purple_accounts_get_ui_ops
-#define gaim_accounts_get_handle purple_accounts_get_handle
-#define gaim_accounts_init purple_accounts_init
-#define gaim_accounts_uninit purple_accounts_uninit
-#define GaimAccountOption PurpleAccountOption
-#define GaimAccountUserSplit PurpleAccountUserSplit
-#define gaim_account_option_new purple_account_option_new
-#define gaim_account_option_bool_new purple_account_option_bool_new
-#define gaim_account_option_int_new purple_account_option_int_new
-#define gaim_account_option_string_new purple_account_option_string_new
-#define gaim_account_option_list_new purple_account_option_list_new
-#define gaim_account_option_destroy purple_account_option_destroy
-#define gaim_account_option_set_default_bool purple_account_option_set_default_bool
-#define gaim_account_option_set_default_int purple_account_option_set_default_int
-#define gaim_account_option_set_default_string purple_account_option_set_default_string
-#define gaim_account_option_set_masked purple_account_option_set_masked
-#define gaim_account_option_set_list purple_account_option_set_list
-#define gaim_account_option_add_list_item purple_account_option_add_list_item
-#define gaim_account_option_get_type purple_account_option_get_type
-#define gaim_account_option_get_text purple_account_option_get_text
-#define gaim_account_option_get_setting purple_account_option_get_setting
-#define gaim_account_option_get_default_bool purple_account_option_get_default_bool
-#define gaim_account_option_get_default_int purple_account_option_get_default_int
-#define gaim_account_option_get_default_string purple_account_option_get_default_string
-#define gaim_account_option_get_default_list_value purple_account_option_get_default_list_value
-#define gaim_account_option_get_masked purple_account_option_get_masked
-#define gaim_account_option_get_list purple_account_option_get_list
-#define gaim_account_user_split_new purple_account_user_split_new
-#define gaim_account_user_split_destroy purple_account_user_split_destroy
-#define gaim_account_user_split_get_text purple_account_user_split_get_text
-#define gaim_account_user_split_get_default_value purple_account_user_split_get_default_value
-#define gaim_account_user_split_get_separator purple_account_user_split_get_separator
-#define GaimBuddyList PurpleBuddyList
-#define GaimBlistUiOps PurpleBlistUiOps
-#define GaimBlistNode PurpleBlistNode
-#define GaimChat PurpleChat
-#define GaimGroup PurpleGroup
-#define GaimContact PurpleContact
-#define GaimBuddy PurpleBuddy
-#define GAIM_BLIST_GROUP_NODE PURPLE_BLIST_GROUP_NODE
-#define GAIM_BLIST_CONTACT_NODE PURPLE_BLIST_CONTACT_NODE
-#define GAIM_BLIST_BUDDY_NODE PURPLE_BLIST_BUDDY_NODE
-#define GAIM_BLIST_CHAT_NODE PURPLE_BLIST_CHAT_NODE
-#define GAIM_BLIST_OTHER_NODE PURPLE_BLIST_OTHER_NODE
-#define GaimBlistNodeType PurpleBlistNodeType
-#define GAIM_BLIST_NODE_IS_CHAT PURPLE_BLIST_NODE_IS_CHAT
-#define GAIM_BLIST_NODE_IS_BUDDY PURPLE_BLIST_NODE_IS_BUDDY
-#define GAIM_BLIST_NODE_IS_CONTACT PURPLE_BLIST_NODE_IS_CONTACT
-#define GAIM_BLIST_NODE_IS_GROUP PURPLE_BLIST_NODE_IS_GROUP
-#define GAIM_BUDDY_IS_ONLINE PURPLE_BUDDY_IS_ONLINE
-#define GAIM_BLIST_NODE_FLAG_NO_SAVE PURPLE_BLIST_NODE_FLAG_NO_SAVE
-#define GaimBlistNodeFlags PurpleBlistNodeFlags
-#define GAIM_BLIST_NODE_HAS_FLAG PURPLE_BLIST_NODE_HAS_FLAG
-#define GAIM_BLIST_NODE_SHOULD_SAVE PURPLE_BLIST_NODE_SHOULD_SAVE
-#define GAIM_BLIST_NODE_NAME PURPLE_BLIST_NODE_NAME
-#define gaim_blist_new purple_blist_new
-#define gaim_set_blist purple_set_blist
-#define gaim_get_blist purple_get_blist
-#define gaim_blist_get_root purple_blist_get_root
-#define gaim_blist_node_next purple_blist_node_next
-#define gaim_blist_show purple_blist_show
-#define gaim_blist_destroy purple_blist_destroy
-#define gaim_blist_set_visible purple_blist_set_visible
-#define gaim_blist_update_buddy_status purple_blist_update_buddy_status
-#define gaim_blist_update_buddy_icon purple_blist_update_buddy_icon
-#define gaim_blist_alias_contact purple_blist_alias_contact
-#define gaim_blist_alias_buddy purple_blist_alias_buddy
-#define gaim_blist_server_alias_buddy purple_blist_server_alias_buddy
-#define gaim_blist_alias_chat purple_blist_alias_chat
-#define gaim_blist_rename_buddy purple_blist_rename_buddy
-#define gaim_blist_rename_group purple_blist_rename_group
-#define gaim_chat_new purple_chat_new
-#define gaim_blist_add_chat purple_blist_add_chat
-#define gaim_buddy_new purple_buddy_new
-#define gaim_buddy_set_icon purple_buddy_set_icon
-#define gaim_buddy_get_account purple_buddy_get_account
-#define gaim_buddy_get_name purple_buddy_get_name
-#define gaim_buddy_get_icon purple_buddy_get_icon
-#define gaim_buddy_get_contact purple_buddy_get_contact
-#define gaim_buddy_get_presence purple_buddy_get_presence
-#define gaim_blist_add_buddy purple_blist_add_buddy
-#define gaim_group_new purple_group_new
-#define gaim_blist_add_group purple_blist_add_group
-#define gaim_contact_new purple_contact_new
-#define gaim_blist_add_contact purple_blist_add_contact
-#define gaim_blist_merge_contact purple_blist_merge_contact
-#define gaim_contact_get_priority_buddy purple_contact_get_priority_buddy
-#define gaim_contact_set_alias purple_contact_set_alias
-#define gaim_contact_get_alias purple_contact_get_alias
-#define gaim_contact_on_account purple_contact_on_account
-#define gaim_contact_invalidate_priority_buddy purple_contact_invalidate_priority_buddy
-#define gaim_blist_remove_buddy purple_blist_remove_buddy
-#define gaim_blist_remove_contact purple_blist_remove_contact
-#define gaim_blist_remove_chat purple_blist_remove_chat
-#define gaim_blist_remove_group purple_blist_remove_group
-#define gaim_buddy_get_alias_only purple_buddy_get_alias_only
-#define gaim_buddy_get_server_alias purple_buddy_get_server_alias
-#define gaim_buddy_get_contact_alias purple_buddy_get_contact_alias
-#define gaim_buddy_get_local_alias purple_buddy_get_local_alias
-#define gaim_buddy_get_alias purple_buddy_get_alias
-#define gaim_chat_get_name purple_chat_get_name
-#define gaim_find_buddy purple_find_buddy
-#define gaim_find_buddy_in_group purple_find_buddy_in_group
-#define gaim_find_buddies purple_find_buddies
-#define gaim_find_group purple_find_group
-#define gaim_blist_find_chat purple_blist_find_chat
-#define gaim_chat_get_group purple_chat_get_group
-#define gaim_buddy_get_group purple_buddy_get_group
-#define gaim_group_get_accounts purple_group_get_accounts
-#define gaim_group_on_account purple_group_on_account
-#define gaim_blist_add_account purple_blist_add_account
-#define gaim_blist_remove_account purple_blist_remove_account
-#define gaim_blist_get_group_size purple_blist_get_group_size
-#define gaim_blist_get_group_online_count purple_blist_get_group_online_count
-#define gaim_blist_load purple_blist_load
-#define gaim_blist_schedule_save purple_blist_schedule_save
-#define gaim_blist_request_add_buddy purple_blist_request_add_buddy
-#define gaim_blist_request_add_chat purple_blist_request_add_chat
-#define gaim_blist_request_add_group purple_blist_request_add_group
-#define gaim_blist_node_set_bool purple_blist_node_set_bool
-#define gaim_blist_node_get_bool purple_blist_node_get_bool
-#define gaim_blist_node_set_int purple_blist_node_set_int
-#define gaim_blist_node_get_int purple_blist_node_get_int
-#define gaim_blist_node_set_string purple_blist_node_set_string
-#define gaim_blist_node_get_string purple_blist_node_get_string
-#define gaim_blist_node_remove_setting purple_blist_node_remove_setting
-#define gaim_blist_node_set_flags purple_blist_node_set_flags
-#define gaim_blist_node_get_flags purple_blist_node_get_flags
-#define gaim_blist_node_get_extended_menu purple_blist_node_get_extended_menu
-#define gaim_blist_set_ui_ops purple_blist_set_ui_ops
-#define gaim_blist_get_ui_ops purple_blist_get_ui_ops
-#define gaim_blist_get_handle purple_blist_get_handle
-#define gaim_blist_init purple_blist_init
-#define gaim_blist_uninit purple_blist_uninit
-#define GaimBuddyIcon PurpleBuddyIcon
-#define gaim_buddy_icon_new(account, username, icon_data, icon_len)\
- purple_buddy_icon_new(account, username, g_memdup(icon_data, icon_len), icon_len)
-#define gaim_buddy_icon_ref purple_buddy_icon_ref
-#define gaim_buddy_icon_unref purple_buddy_icon_unref
-#define gaim_buddy_icon_update purple_buddy_icon_update
-#define gaim_buddy_icon_set_data(icon, data, len) \
- purple_buddy_icon_set_data(icon, g_memdup(data, len), len, NULL);
-#define gaim_buddy_icon_get_account purple_buddy_icon_get_account
-#define gaim_buddy_icon_get_username purple_buddy_icon_get_username
-#define gaim_buddy_icon_get_data purple_buddy_icon_get_data
-#define gaim_buddy_icon_get_type purple_buddy_icon_get_extension
-#define gaim_buddy_icons_set_for_user(icon, data, len) \
- purple_buddy_icons_set_for_user(icon, g_memdup(data, len), len, NULL)
-#define gaim_buddy_icons_set_caching purple_buddy_icons_set_caching
-#define gaim_buddy_icons_is_caching purple_buddy_icons_is_caching
-#define gaim_buddy_icons_set_cache_dir purple_buddy_icons_set_cache_dir
-#define gaim_buddy_icons_get_cache_dir purple_buddy_icons_get_cache_dir
-#define gaim_buddy_icons_get_handle purple_buddy_icons_get_handle
-#define gaim_buddy_icons_init purple_buddy_icons_init
-#define gaim_buddy_icons_uninit purple_buddy_icons_uninit
-#define gaim_buddy_icon_get_scale_size purple_buddy_icon_get_scale_size
-#define GAIM_CIPHER PURPLE_CIPHER
-#define GAIM_CIPHER_OPS PURPLE_CIPHER_OPS
-#define GAIM_CIPHER_CONTEXT PURPLE_CIPHER_CONTEXT
-#define GaimCipher PurpleCipher
-#define GaimCipherOps PurpleCipherOps
-#define GaimCipherContext PurpleCipherContext
-#define GAIM_CIPHER_CAPS_SET_OPT PURPLE_CIPHER_CAPS_SET_OPT
-#define GAIM_CIPHER_CAPS_GET_OPT PURPLE_CIPHER_CAPS_GET_OPT
-#define GAIM_CIPHER_CAPS_INIT PURPLE_CIPHER_CAPS_INIT
-#define GAIM_CIPHER_CAPS_RESET PURPLE_CIPHER_CAPS_RESET
-#define GAIM_CIPHER_CAPS_UNINIT PURPLE_CIPHER_CAPS_UNINIT
-#define GAIM_CIPHER_CAPS_SET_IV PURPLE_CIPHER_CAPS_SET_IV
-#define GAIM_CIPHER_CAPS_APPEND PURPLE_CIPHER_CAPS_APPEND
-#define GAIM_CIPHER_CAPS_DIGEST PURPLE_CIPHER_CAPS_DIGEST
-#define GAIM_CIPHER_CAPS_ENCRYPT PURPLE_CIPHER_CAPS_ENCRYPT
-#define GAIM_CIPHER_CAPS_DECRYPT PURPLE_CIPHER_CAPS_DECRYPT
-#define GAIM_CIPHER_CAPS_SET_SALT PURPLE_CIPHER_CAPS_SET_SALT
-#define GAIM_CIPHER_CAPS_GET_SALT_SIZE PURPLE_CIPHER_CAPS_GET_SALT_SIZE
-#define GAIM_CIPHER_CAPS_SET_KEY PURPLE_CIPHER_CAPS_SET_KEY
-#define GAIM_CIPHER_CAPS_GET_KEY_SIZE PURPLE_CIPHER_CAPS_GET_KEY_SIZE
-#define GAIM_CIPHER_CAPS_UNKNOWN PURPLE_CIPHER_CAPS_UNKNOWN
-#define gaim_cipher_get_name purple_cipher_get_name
-#define gaim_cipher_get_capabilities purple_cipher_get_capabilities
-#define gaim_cipher_digest_region purple_cipher_digest_region
-#define gaim_ciphers_find_cipher purple_ciphers_find_cipher
-#define gaim_ciphers_register_cipher purple_ciphers_register_cipher
-#define gaim_ciphers_unregister_cipher purple_ciphers_unregister_cipher
-#define gaim_ciphers_get_ciphers purple_ciphers_get_ciphers
-#define gaim_ciphers_get_handle purple_ciphers_get_handle
-#define gaim_ciphers_init purple_ciphers_init
-#define gaim_ciphers_uninit purple_ciphers_uninit
-#define gaim_cipher_context_set_option purple_cipher_context_set_option
-#define gaim_cipher_context_get_option purple_cipher_context_get_option
-#define gaim_cipher_context_new purple_cipher_context_new
-#define gaim_cipher_context_new_by_name purple_cipher_context_new_by_name
-#define gaim_cipher_context_reset purple_cipher_context_reset
-#define gaim_cipher_context_destroy purple_cipher_context_destroy
-#define gaim_cipher_context_set_iv purple_cipher_context_set_iv
-#define gaim_cipher_context_append purple_cipher_context_append
-#define gaim_cipher_context_digest purple_cipher_context_digest
-#define gaim_cipher_context_digest_to_str purple_cipher_context_digest_to_str
-#define gaim_cipher_context_encrypt purple_cipher_context_encrypt
-#define gaim_cipher_context_decrypt purple_cipher_context_decrypt
-#define gaim_cipher_context_set_salt purple_cipher_context_set_salt
-#define gaim_cipher_context_get_salt_size purple_cipher_context_get_salt_size
-#define gaim_cipher_context_set_key purple_cipher_context_set_key
-#define gaim_cipher_context_get_key_size purple_cipher_context_get_key_size
-#define gaim_cipher_context_set_data purple_cipher_context_set_data
-#define gaim_cipher_context_get_data purple_cipher_context_get_data
-#define gaim_cipher_http_digest_calculate_session_key \
- purple_cipher_http_digest_calculate_session_key
-#define gaim_cipher_http_digest_calculate_response \
- purple_cipher_http_digest_calculate_response
-#define GaimCircBuffer PurpleCircBuffer
-#define gaim_circ_buffer_new purple_circ_buffer_new
-#define gaim_circ_buffer_destroy purple_circ_buffer_destroy
-#define gaim_circ_buffer_append purple_circ_buffer_append
-#define gaim_circ_buffer_get_max_read purple_circ_buffer_get_max_read
-#define gaim_circ_buffer_mark_read purple_circ_buffer_mark_read
-#define GaimCmdPriority PurpleCmdPriority
-#define GaimCmdFlag PurpleCmdFlag
-#define GaimCmdStatus PurpleCmdStatus
-#define GaimCmdRet PurpleCmdRet
-#define GAIM_CMD_STATUS_OK PURPLE_CMD_STATUS_OK
-#define GAIM_CMD_STATUS_FAILED PURPLE_CMD_STATUS_FAILED
-#define GAIM_CMD_STATUS_NOT_FOUND PURPLE_CMD_STATUS_NOT_FOUND
-#define GAIM_CMD_STATUS_WRONG_ARGS PURPLE_CMD_STATUS_WRONG_ARGS
-#define GAIM_CMD_STATUS_WRONG_PRPL PURPLE_CMD_STATUS_WRONG_PRPL
-#define GAIM_CMD_STATUS_WRONG_TYPE PURPLE_CMD_STATUS_WRONG_TYPE
-#define GAIM_CMD_FUNC PURPLE_CMD_FUNC
-#define GAIM_CMD_RET_OK PURPLE_CMD_RET_OK
-#define GAIM_CMD_RET_FAILED PURPLE_CMD_RET_FAILED
-#define GAIM_CMD_RET_CONTINUE PURPLE_CMD_RET_CONTINUE
-#define GAIM_CMD_P_VERY_LOW PURPLE_CMD_P_VERY_LOW
-#define GAIM_CMD_P_LOW PURPLE_CMD_P_LOW
-#define GAIM_CMD_P_DEFAULT PURPLE_CMD_P_DEFAULT
-#define GAIM_CMD_P_PRPL PURPLE_CMD_P_PRPL
-#define GAIM_CMD_P_PLUGIN PURPLE_CMD_P_PLUGIN
-#define GAIM_CMD_P_ALIAS PURPLE_CMD_P_ALIAS
-#define GAIM_CMD_P_HIGH PURPLE_CMD_P_HIGH
-#define GAIM_CMD_P_VERY_HIGH PURPLE_CMD_P_VERY_HIGH
-#define GAIM_CMD_FLAG_IM PURPLE_CMD_FLAG_IM
-#define GAIM_CMD_FLAG_CHAT PURPLE_CMD_FLAG_CHAT
-#define GAIM_CMD_FLAG_PRPL_ONLY PURPLE_CMD_FLAG_PRPL_ONLY
-#define GAIM_CMD_FLAG_ALLOW_WRONG_ARGS PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS
-#define GaimCmdFunc PurpleCmdFunc
-#define GaimCmdId PurpleCmdId
-#define gaim_cmd_register purple_cmd_register
-#define gaim_cmd_unregister purple_cmd_unregister
-#define gaim_cmd_do_command purple_cmd_do_command
-#define gaim_cmd_list purple_cmd_list
-#define gaim_cmd_help purple_cmd_help
-#define GaimConnection PurpleConnection
-#define GAIM_CONNECTION_HTML PURPLE_CONNECTION_HTML
-#define GAIM_CONNECTION_NO_BGCOLOR PURPLE_CONNECTION_NO_BGCOLOR
-#define GAIM_CONNECTION_AUTO_RESP PURPLE_CONNECTION_AUTO_RESP
-#define GAIM_CONNECTION_FORMATTING_WBFO PURPLE_CONNECTION_FORMATTING_WBFO
-#define GAIM_CONNECTION_NO_NEWLINES PURPLE_CONNECTION_NO_NEWLINES
-#define GAIM_CONNECTION_NO_FONTSIZE PURPLE_CONNECTION_NO_FONTSIZE
-#define GAIM_CONNECTION_NO_URLDESC PURPLE_CONNECTION_NO_URLDESC
-#define GAIM_CONNECTION_NO_IMAGES PURPLE_CONNECTION_NO_IMAGES
-#define GaimConnectionFlags PurpleConnectionFlags
-#define GAIM_DISCONNECTED PURPLE_DISCONNECTED
-#define GAIM_CONNECTED PURPLE_CONNECTED
-#define GAIM_CONNECTING PURPLE_CONNECTING
-#define GaimConnectionState PurpleConnectionState
-#define GaimConnectionUiOps PurpleConnectionUiOps
-#define gaim_connection_new purple_connection_new
-#define gaim_connection_destroy purple_connection_destroy
-#define gaim_connection_set_state purple_connection_set_state
-#define gaim_connection_set_account purple_connection_set_account
-#define gaim_connection_set_display_name purple_connection_set_display_name
-#define gaim_connection_get_state purple_connection_get_state
-#define GAIM_CONNECTION_IS_CONNECTED PURPLE_CONNECTION_IS_CONNECTED
-#define gaim_connection_get_account purple_connection_get_account
-#define gaim_connection_get_password purple_connection_get_password
-#define gaim_connection_get_display_name purple_connection_get_display_name
-#define gaim_connection_update_progress purple_connection_update_progress
-#define gaim_connection_notice purple_connection_notice
-#define gaim_connection_error purple_connection_error
-#define gaim_connections_disconnect_all purple_connections_disconnect_all
-#define gaim_connections_get_all purple_connections_get_all
-#define gaim_connections_get_connecting purple_connections_get_connecting
-#define GAIM_CONNECTION_IS_VALID PURPLE_CONNECTION_IS_VALID
-#define gaim_connections_set_ui_ops purple_connections_set_ui_ops
-#define gaim_connections_get_ui_ops purple_connections_get_ui_ops
-#define gaim_connections_init purple_connections_init
-#define gaim_connections_uninit purple_connections_uninit
-#define gaim_connections_get_handle purple_connections_get_handle
-/* from conversation.h */
-#define GaimConversationUiOps PurpleConversationUiOps
-#define GaimConversation PurpleConversation
-#define GaimConvIm PurpleConvIm
-#define GaimConvChat PurpleConvChat
-#define GaimConvChatBuddy PurpleConvChatBuddy
-#define GAIM_CONV_TYPE_UNKNOWN PURPLE_CONV_TYPE_UNKNOWN
-#define GAIM_CONV_TYPE_IM PURPLE_CONV_TYPE_IM
-#define GAIM_CONV_TYPE_CHAT PURPLE_CONV_TYPE_CHAT
-#define GAIM_CONV_TYPE_MISC PURPLE_CONV_TYPE_MISC
-#define GAIM_CONV_TYPE_ANY PURPLE_CONV_TYPE_ANY
-#define GaimConversationType PurpleConversationType
-#define GAIM_CONV_UPDATE_ADD PURPLE_CONV_UPDATE_ADD
-#define GAIM_CONV_UPDATE_REMOVE PURPLE_CONV_UPDATE_REMOVE
-#define GAIM_CONV_UPDATE_ACCOUNT PURPLE_CONV_UPDATE_ACCOUNT
-#define GAIM_CONV_UPDATE_TYPING PURPLE_CONV_UPDATE_TYPING
-#define GAIM_CONV_UPDATE_UNSEEN PURPLE_CONV_UPDATE_UNSEEN
-#define GAIM_CONV_UPDATE_LOGGING PURPLE_CONV_UPDATE_LOGGING
-#define GAIM_CONV_UPDATE_TOPIC PURPLE_CONV_UPDATE_TOPIC
-#define GAIM_CONV_ACCOUNT_ONLINE PURPLE_CONV_ACCOUNT_ONLINE
-#define GAIM_CONV_ACCOUNT_OFFLINE PURPLE_CONV_ACCOUNT_OFFLINE
-#define GAIM_CONV_UPDATE_AWAY PURPLE_CONV_UPDATE_AWAY
-#define GAIM_CONV_UPDATE_ICON PURPLE_CONV_UPDATE_ICON
-#define GAIM_CONV_UPDATE_TITLE PURPLE_CONV_UPDATE_TITLE
-#define GAIM_CONV_UPDATE_CHATLEFT PURPLE_CONV_UPDATE_CHATLEFT
-#define GAIM_CONV_UPDATE_FEATURES PURPLE_CONV_UPDATE_FEATURES
-#define GaimConvUpdateType PurpleConvUpdateType
-#define GAIM_NOT_TYPING PURPLE_NOT_TYPING
-#define GAIM_TYPING PURPLE_TYPING
-#define GAIM_TYPED PURPLE_TYPED
-#define GaimTypingState PurpleTypingState
-#define GAIM_MESSAGE_SEND PURPLE_MESSAGE_SEND
-#define GAIM_MESSAGE_RECV PURPLE_MESSAGE_RECV
-#define GAIM_MESSAGE_SYSTEM PURPLE_MESSAGE_SYSTEM
-#define GAIM_MESSAGE_AUTO_RESP PURPLE_MESSAGE_AUTO_RESP
-#define GAIM_MESSAGE_ACTIVE_ONLY PURPLE_MESSAGE_ACTIVE_ONLY
-#define GAIM_MESSAGE_NICK PURPLE_MESSAGE_NICK
-#define GAIM_MESSAGE_NO_LOG PURPLE_MESSAGE_NO_LOG
-#define GAIM_MESSAGE_WHISPER PURPLE_MESSAGE_WHISPER
-#define GAIM_MESSAGE_ERROR PURPLE_MESSAGE_ERROR
-#define GAIM_MESSAGE_DELAYED PURPLE_MESSAGE_DELAYED
-#define GAIM_MESSAGE_RAW PURPLE_MESSAGE_RAW
-#define GAIM_MESSAGE_IMAGES PURPLE_MESSAGE_IMAGES
-#define GaimMessageFlags PurpleMessageFlags
-#define GAIM_CBFLAGS_NONE PURPLE_CBFLAGS_NONE
-#define GAIM_CBFLAGS_VOICE PURPLE_CBFLAGS_VOICE
-#define GAIM_CBFLAGS_HALFOP PURPLE_CBFLAGS_HALFOP
-#define GAIM_CBFLAGS_OP PURPLE_CBFLAGS_OP
-#define GAIM_CBFLAGS_FOUNDER PURPLE_CBFLAGS_FOUNDER
-#define GAIM_CBFLAGS_TYPING PURPLE_CBFLAGS_TYPING
-#define GaimConvChatBuddyFlags PurpleConvChatBuddyFlags
-#define gaim_conversations_set_ui_ops purple_conversations_set_ui_ops
-#define gaim_conversation_new purple_conversation_new
-#define gaim_conversation_destroy purple_conversation_destroy
-#define gaim_conversation_present purple_conversation_present
-#define gaim_conversation_get_type purple_conversation_get_type
-#define gaim_conversation_set_ui_ops purple_conversation_set_ui_ops
-#define gaim_conversation_get_ui_ops purple_conversation_get_ui_ops
-#define gaim_conversation_set_account purple_conversation_set_account
-#define gaim_conversation_get_account purple_conversation_get_account
-#define gaim_conversation_get_gc purple_conversation_get_gc
-#define gaim_conversation_set_title purple_conversation_set_title
-#define gaim_conversation_get_title purple_conversation_get_title
-#define gaim_conversation_autoset_title purple_conversation_autoset_title
-#define gaim_conversation_set_name purple_conversation_set_name
-#define gaim_conversation_get_name purple_conversation_get_name
-#define gaim_conversation_set_logging purple_conversation_set_logging
-#define gaim_conversation_is_logging purple_conversation_is_logging
-#define gaim_conversation_close_logs purple_conversation_close_logs
-#define gaim_conversation_get_im_data purple_conversation_get_im_data
-#define GAIM_CONV_IM PURPLE_CONV_IM
-#define gaim_conversation_get_chat_data purple_conversation_get_chat_data
-#define GAIM_CONV_CHAT PURPLE_CONV_CHAT
-#define gaim_conversation_set_data purple_conversation_set_data
-#define gaim_conversation_get_data purple_conversation_get_data
-#define gaim_get_conversations purple_get_conversations
-#define gaim_get_ims purple_get_ims
-#define gaim_get_chats purple_get_chats
-#define gaim_find_conversation_with_account \
- purple_find_conversation_with_account
-#define gaim_conversation_write purple_conversation_write
-#define gaim_conversation_set_features purple_conversation_set_features
-#define gaim_conversation_get_features purple_conversation_get_features
-#define gaim_conversation_has_focus purple_conversation_has_focus
-#define gaim_conversation_update purple_conversation_update
-#define gaim_conversation_foreach purple_conversation_foreach
-#define gaim_conv_im_get_conversation purple_conv_im_get_conversation
-#define gaim_conv_im_set_icon purple_conv_im_set_icon
-#define gaim_conv_im_get_icon purple_conv_im_get_icon
-#define gaim_conv_im_set_typing_state purple_conv_im_set_typing_state
-#define gaim_conv_im_get_typing_state purple_conv_im_get_typing_state
-#define gaim_conv_im_start_typing_timeout purple_conv_im_start_typing_timeout
-#define gaim_conv_im_stop_typing_timeout purple_conv_im_stop_typing_timeout
-#define gaim_conv_im_get_typing_timeout purple_conv_im_get_typing_timeout
-#define gaim_conv_im_set_type_again purple_conv_im_set_type_again
-#define gaim_conv_im_get_type_again purple_conv_im_get_type_again
-#define gaim_conv_im_start_send_typed_timeout \
- purple_conv_im_start_send_typed_timeout
-#define gaim_conv_im_stop_send_typed_timeout \
- purple_conv_im_stop_send_typed_timeout
-#define gaim_conv_im_get_send_typed_timeout \
- purple_conv_im_get_send_typed_timeout
-#define gaim_conv_present_error purple_conv_present_error
-#define gaim_conv_send_confirm purple_conv_send_confirm
-#define gaim_conv_im_update_typing purple_conv_im_update_typing
-#define gaim_conv_im_write purple_conv_im_write
-#define gaim_conv_im_send purple_conv_im_send
-#define gaim_conv_im_send_with_flags purple_conv_im_send_with_flags
-#define gaim_conv_custom_smiley_add purple_conv_custom_smiley_add
-#define gaim_conv_custom_smiley_write purple_conv_custom_smiley_write
-#define gaim_conv_custom_smiley_close purple_conv_custom_smiley_close
-#define gaim_conv_chat_get_conversation purple_conv_chat_get_conversation
-#define gaim_conv_chat_set_users purple_conv_chat_set_users
-#define gaim_conv_chat_get_users purple_conv_chat_get_users
-#define gaim_conv_chat_ignore purple_conv_chat_ignore
-#define gaim_conv_chat_unignore purple_conv_chat_unignore
-#define gaim_conv_chat_set_ignored purple_conv_chat_set_ignored
-#define gaim_conv_chat_get_ignored purple_conv_chat_get_ignored
-#define gaim_conv_chat_get_ignored_user purple_conv_chat_get_ignored_user
-#define gaim_conv_chat_is_user_ignored purple_conv_chat_is_user_ignored
-#define gaim_conv_chat_set_topic purple_conv_chat_set_topic
-#define gaim_conv_chat_get_topic purple_conv_chat_get_topic
-#define gaim_conv_chat_set_id purple_conv_chat_set_id
-#define gaim_conv_chat_get_id purple_conv_chat_get_id
-#define gaim_conv_chat_write purple_conv_chat_write
-#define gaim_conv_chat_send purple_conv_chat_send
-#define gaim_conv_chat_send_with_flags purple_conv_chat_send_with_flags
-#define gaim_conv_chat_add_user purple_conv_chat_add_user
-#define gaim_conv_chat_add_users purple_conv_chat_add_users
-#define gaim_conv_chat_rename_user purple_conv_chat_rename_user
-#define gaim_conv_chat_remove_user purple_conv_chat_remove_user
-#define gaim_conv_chat_remove_users purple_conv_chat_remove_users
-#define gaim_conv_chat_find_user purple_conv_chat_find_user
-#define gaim_conv_chat_user_set_flags purple_conv_chat_user_set_flags
-#define gaim_conv_chat_user_get_flags purple_conv_chat_user_get_flags
-#define gaim_conv_chat_clear_users purple_conv_chat_clear_users
-#define gaim_conv_chat_set_nick purple_conv_chat_set_nick
-#define gaim_conv_chat_get_nick purple_conv_chat_get_nick
-#define gaim_conv_chat_left purple_conv_chat_left
-#define gaim_conv_chat_has_left purple_conv_chat_has_left
-#define gaim_find_chat purple_find_chat
-#define gaim_conv_chat_cb_new purple_conv_chat_cb_new
-#define gaim_conv_chat_cb_find purple_conv_chat_cb_find
-#define gaim_conv_chat_cb_get_name purple_conv_chat_cb_get_name
-#define gaim_conv_chat_cb_destroy purple_conv_chat_cb_destroy
-#define gaim_conversations_get_handle purple_conversations_get_handle
-#define gaim_conversations_init purple_conversations_init
-#define gaim_conversations_uninit purple_conversations_uninit
-#define GaimCore PurpleCore
-#define GaimCoreUiOps PurpleCoreUiOps
-#define gaim_core_init purple_core_init
-#define gaim_core_quit purple_core_quit
-#define gaim_core_quit_cb purple_core_quit_cb
-#define gaim_core_get_version purple_core_get_version
-#define gaim_core_get_ui purple_core_get_ui
-#define gaim_get_core purple_get_core
-#define gaim_core_set_ui_ops purple_core_set_ui_ops
-#define gaim_core_get_ui_ops purple_core_get_ui_ops
-#define GAIM_DEBUG_ALL PURPLE_DEBUG_ALL
-#define GAIM_DEBUG_MISC PURPLE_DEBUG_MISC
-#define GAIM_DEBUG_INFO PURPLE_DEBUG_INFO
-#define GAIM_DEBUG_WARNING PURPLE_DEBUG_WARNING
-#define GAIM_DEBUG_ERROR PURPLE_DEBUG_ERROR
-#define GAIM_DEBUG_FATAL PURPLE_DEBUG_FATAL
-#define GaimDebugLevel PurpleDebugLevel
-#define GaimDebugUiOps PurpleDebugUiOps
-#define gaim_debug purple_debug
-#define gaim_debug_misc purple_debug_misc
-#define gaim_debug_info purple_debug_info
-#define gaim_debug_warning purple_debug_warning
-#define gaim_debug_error purple_debug_error
-#define gaim_debug_fatal purple_debug_fatal
-#define gaim_debug_set_enabled purple_debug_set_enabled
-#define gaim_debug_is_enabled purple_debug_is_enabled
-#define gaim_debug_set_ui_ops purple_debug_set_ui_ops
-#define gaim_debug_get_ui_ops purple_debug_get_ui_ops
-#define gaim_debug_init purple_debug_init
-/* from desktopitem.h */
-#define GAIM_DESKTOP_ITEM_TYPE_NULL PURPLE_DESKTOP_ITEM_TYPE_NULL
-#define GAIM_DESKTOP_ITEM_TYPE_OTHER PURPLE_DESKTOP_ITEM_TYPE_OTHER
-#define GAIM_DESKTOP_ITEM_TYPE_APPLICATION PURPLE_DESKTOP_ITEM_TYPE_APPLICATION
-#define GAIM_DESKTOP_ITEM_TYPE_LINK PURPLE_DESKTOP_ITEM_TYPE_LINK
-#define GAIM_DESKTOP_ITEM_TYPE_FSDEVICE PURPLE_DESKTOP_ITEM_TYPE_FSDEVICE
-#define GAIM_DESKTOP_ITEM_TYPE_MIME_TYPE PURPLE_DESKTOP_ITEM_TYPE_MIME_TYPE
-#define GAIM_DESKTOP_ITEM_TYPE_DIRECTORY PURPLE_DESKTOP_ITEM_TYPE_DIRECTORY
-#define GAIM_DESKTOP_ITEM_TYPE_SERVICE PURPLE_DESKTOP_ITEM_TYPE_SERVICE
-#define GAIM_DESKTOP_ITEM_TYPE_SERVICE_TYPE PURPLE_DESKTOP_ITEM_TYPE_SERVICE_TYPE
-#define GaimDesktopItemType PurpleDesktopItemType
-#define GaimDesktopItem PurpleDesktopItem
-#define GAIM_TYPE_DESKTOP_ITEM PURPLE_TYPE_DESKTOP_ITEM
-#define gaim_desktop_item_get_type purple_desktop_item_get_type
-/* ugh, i'm just copying these as strings, rather than pidginifying them */
-#define GAIM_DESKTOP_ITEM_ENCODING "Encoding" /* string */
-#define GAIM_DESKTOP_ITEM_VERSION "Version" /* numeric */
-#define GAIM_DESKTOP_ITEM_NAME "Name" /* localestring */
-#define GAIM_DESKTOP_ITEM_GENERIC_NAME "GenericName" /* localestring */
-#define GAIM_DESKTOP_ITEM_TYPE "Type" /* string */
-#define GAIM_DESKTOP_ITEM_FILE_PATTERN "FilePattern" /* regexp(s) */
-#define GAIM_DESKTOP_ITEM_TRY_EXEC "TryExec" /* string */
-#define GAIM_DESKTOP_ITEM_NO_DISPLAY "NoDisplay" /* boolean */
-#define GAIM_DESKTOP_ITEM_COMMENT "Comment" /* localestring */
-#define GAIM_DESKTOP_ITEM_EXEC "Exec" /* string */
-#define GAIM_DESKTOP_ITEM_ACTIONS "Actions" /* strings */
-#define GAIM_DESKTOP_ITEM_ICON "Icon" /* string */
-#define GAIM_DESKTOP_ITEM_MINI_ICON "MiniIcon" /* string */
-#define GAIM_DESKTOP_ITEM_HIDDEN "Hidden" /* boolean */
-#define GAIM_DESKTOP_ITEM_PATH "Path" /* string */
-#define GAIM_DESKTOP_ITEM_TERMINAL "Terminal" /* boolean */
-#define GAIM_DESKTOP_ITEM_TERMINAL_OPTIONS "TerminalOptions" /* string */
-#define GAIM_DESKTOP_ITEM_SWALLOW_TITLE "SwallowTitle" /* string */
-#define GAIM_DESKTOP_ITEM_SWALLOW_EXEC "SwallowExec" /* string */
-#define GAIM_DESKTOP_ITEM_MIME_TYPE "MimeType" /* regexp(s) */
-#define GAIM_DESKTOP_ITEM_PATTERNS "Patterns" /* regexp(s) */
-#define GAIM_DESKTOP_ITEM_DEFAULT_APP "DefaultApp" /* string */
-#define GAIM_DESKTOP_ITEM_DEV "Dev" /* string */
-#define GAIM_DESKTOP_ITEM_FS_TYPE "FSType" /* string */
-#define GAIM_DESKTOP_ITEM_MOUNT_POINT "MountPoint" /* string */
-#define GAIM_DESKTOP_ITEM_READ_ONLY "ReadOnly" /* boolean */
-#define GAIM_DESKTOP_ITEM_UNMOUNT_ICON "UnmountIcon" /* string */
-#define GAIM_DESKTOP_ITEM_SORT_ORDER "SortOrder" /* strings */
-#define GAIM_DESKTOP_ITEM_URL "URL" /* string */
-#define GAIM_DESKTOP_ITEM_DOC_PATH "X-GNOME-DocPath" /* string */
-#define gaim_desktop_item_new_from_file purple_desktop_item_new_from_file
-#define gaim_desktop_item_get_entry_type purple_desktop_item_get_entry_type
-#define gaim_desktop_item_get_string purple_desktop_item_get_string
-#define gaim_desktop_item_copy purple_desktop_item_copy
-#define gaim_desktop_item_unref purple_desktop_item_unref
-#define GaimDnsQueryData PurpleDnsQueryData
-#define GaimDnsQueryConnectFunction PurpleDnsQueryConnectFunction
-#define gaim_dnsquery_a purple_dnsquery_a
-#define gaim_dnsquery_destroy purple_dnsquery_destroy
-#define gaim_dnsquery_init purple_dnsquery_init
-#define gaim_dnsquery_uninit purple_dnsquery_uninit
-#define gaim_dnsquery_set_ui_ops purple_dnsquery_set_ui_ops
-#define gaim_dnsquery_get_host purple_dnsquery_get_host
-#define gaim_dnsquery_get_port purple_dnsquery_get_port
-#define GaimSrvResponse PurpleSrvResponse
-#define GaimSrvQueryData PurpleSrvTxtQueryData
-#define GaimSrvCallback PurpleSrvCallback
-#define gaim_srv_resolve purple_srv_resolve
-#define gaim_srv_cancel purple_srv_cancel
-#define GAIM_INPUT_READ PURPLE_INPUT_READ
-#define GAIM_INPUT_WRITE PURPLE_INPUT_WRITE
-#define GaimInputCondition PurpleInputCondition
-#define GaimInputFunction PurpleInputFunction
-#define GaimEventLoopUiOps PurpleEventLoopUiOps
-#define gaim_timeout_add purple_timeout_add
-#define gaim_timeout_remove purple_timeout_remove
-#define gaim_input_add purple_input_add
-#define gaim_input_remove purple_input_remove
-#define gaim_eventloop_set_ui_ops purple_eventloop_set_ui_ops
-#define gaim_eventloop_get_ui_ops purple_eventloop_get_ui_ops
-#define GaimXfer PurpleXfer
-#define GAIM_XFER_UNKNOWN PURPLE_XFER_UNKNOWN
-#define GAIM_XFER_SEND PURPLE_XFER_SEND
-#define GAIM_XFER_RECEIVE PURPLE_XFER_RECEIVE
-#define GaimXferType PurpleXferType
-#define GAIM_XFER_STATUS_UNKNOWN PURPLE_XFER_STATUS_UNKNOWN
-#define GAIM_XFER_STATUS_NOT_STARTED PURPLE_XFER_STATUS_NOT_STARTED
-#define GAIM_XFER_STATUS_ACCEPTED PURPLE_XFER_STATUS_ACCEPTED
-#define GAIM_XFER_STATUS_STARTED PURPLE_XFER_STATUS_STARTED
-#define GAIM_XFER_STATUS_DONE PURPLE_XFER_STATUS_DONE
-#define GAIM_XFER_STATUS_CANCEL_LOCAL PURPLE_XFER_STATUS_CANCEL_LOCAL
-#define GAIM_XFER_STATUS_CANCEL_REMOTE PURPLE_XFER_STATUS_CANCEL_REMOTE
-#define GaimXferStatusType PurpleXferStatusType
-#define GaimXferUiOps PurpleXferUiOps
-#define gaim_xfer_new purple_xfer_new
-#define gaim_xfer_ref purple_xfer_ref
-#define gaim_xfer_unref purple_xfer_unref
-#define gaim_xfer_request purple_xfer_request
-#define gaim_xfer_request_accepted purple_xfer_request_accepted
-#define gaim_xfer_request_denied purple_xfer_request_denied
-#define gaim_xfer_get_type purple_xfer_get_type
-#define gaim_xfer_get_account purple_xfer_get_account
-#define gaim_xfer_get_status purple_xfer_get_status
-#define gaim_xfer_is_canceled purple_xfer_is_canceled
-#define gaim_xfer_is_completed purple_xfer_is_completed
-#define gaim_xfer_get_filename purple_xfer_get_filename
-#define gaim_xfer_get_local_filename purple_xfer_get_local_filename
-#define gaim_xfer_get_bytes_sent purple_xfer_get_bytes_sent
-#define gaim_xfer_get_bytes_remaining purple_xfer_get_bytes_remaining
-#define gaim_xfer_get_size purple_xfer_get_size
-#define gaim_xfer_get_progress purple_xfer_get_progress
-#define gaim_xfer_get_local_port purple_xfer_get_local_port
-#define gaim_xfer_get_remote_ip purple_xfer_get_remote_ip
-#define gaim_xfer_get_remote_port purple_xfer_get_remote_port
-#define gaim_xfer_set_completed purple_xfer_set_completed
-#define gaim_xfer_set_message purple_xfer_set_message
-#define gaim_xfer_set_filename purple_xfer_set_filename
-#define gaim_xfer_set_local_filename purple_xfer_set_local_filename
-#define gaim_xfer_set_size purple_xfer_set_size
-#define gaim_xfer_set_bytes_sent purple_xfer_set_bytes_sent
-#define gaim_xfer_get_ui_ops purple_xfer_get_ui_ops
-#define gaim_xfer_set_read_fnc purple_xfer_set_read_fnc
-#define gaim_xfer_set_write_fnc purple_xfer_set_write_fnc
-#define gaim_xfer_set_ack_fnc purple_xfer_set_ack_fnc
-#define gaim_xfer_set_request_denied_fnc purple_xfer_set_request_denied_fnc
-#define gaim_xfer_set_init_fnc purple_xfer_set_init_fnc
-#define gaim_xfer_set_start_fnc purple_xfer_set_start_fnc
-#define gaim_xfer_set_end_fnc purple_xfer_set_end_fnc
-#define gaim_xfer_set_cancel_send_fnc purple_xfer_set_cancel_send_fnc
-#define gaim_xfer_set_cancel_recv_fnc purple_xfer_set_cancel_recv_fnc
-#define gaim_xfer_read purple_xfer_read
-#define gaim_xfer_write purple_xfer_write
-#define gaim_xfer_start purple_xfer_start
-#define gaim_xfer_end purple_xfer_end
-#define gaim_xfer_add purple_xfer_add
-#define gaim_xfer_cancel_local purple_xfer_cancel_local
-#define gaim_xfer_cancel_remote purple_xfer_cancel_remote
-#define gaim_xfer_error purple_xfer_error
-#define gaim_xfer_update_progress purple_xfer_update_progress
-#define gaim_xfer_conversation_write purple_xfer_conversation_write
-#define gaim_xfers_get_handle purple_xfers_get_handle
-#define gaim_xfers_init purple_xfers_init
-#define gaim_xfers_uninit purple_xfers_uninit
-#define gaim_xfers_set_ui_ops purple_xfers_set_ui_ops
-#define gaim_xfers_get_ui_ops purple_xfers_get_ui_ops
-/* from gaim-client.h */
-#define gaim_init purple_init
-#define GaimIdleUiOps PurpleIdleUiOps
-#define gaim_idle_touch purple_idle_touch
-#define gaim_idle_set purple_idle_set
-#define gaim_idle_set_ui_ops purple_idle_set_ui_ops
-#define gaim_idle_get_ui_ops purple_idle_get_ui_ops
-#define gaim_idle_init purple_idle_init
-#define gaim_idle_uninit purple_idle_uninit
-#define GaimStoredImage PurpleStoredImage
-#define gaim_imgstore_add(data, size, filename) \
- purple_imgstore_add_with_id(g_memdup(data, size), size, filename)
-#define gaim_imgstore_get purple_imgstore_find_by_id
-#define gaim_imgstore_get_data purple_imgstore_get_data
-#define gaim_imgstore_get_size purple_imgstore_get_size
-#define gaim_imgstore_get_filename purple_imgstore_get_filename
-#define gaim_imgstore_ref purple_imgstore_ref_by_id
-#define gaim_imgstore_unref purple_imgstore_unref_by_id
-#define GaimLog PurpleLog
-#define GaimLogLogger PurpleLogLogger
-#define GaimLogCommonLoggerData PurpleLogCommonLoggerData
-#define GaimLogSet PurpleLogSet
-#define GAIM_LOG_IM PURPLE_LOG_IM
-#define GAIM_LOG_CHAT PURPLE_LOG_CHAT
-#define GAIM_LOG_SYSTEM PURPLE_LOG_SYSTEM
-#define GaimLogType PurpleLogType
-#define GAIM_LOG_READ_NO_NEWLINE PURPLE_LOG_READ_NO_NEWLINE
-#define GaimLogReadFlags PurpleLogReadFlags
-#define GaimLogSetCallback PurpleLogSetCallback
-#define gaim_log_new purple_log_new
-#define gaim_log_free purple_log_free
-#define gaim_log_write purple_log_write
-#define gaim_log_read purple_log_read
-#define gaim_log_get_logs purple_log_get_logs
-#define gaim_log_get_log_sets purple_log_get_log_sets
-#define gaim_log_get_system_logs purple_log_get_system_logs
-#define gaim_log_get_size purple_log_get_size
-#define gaim_log_get_total_size purple_log_get_total_size
-#define gaim_log_get_log_dir purple_log_get_log_dir
-#define gaim_log_compare purple_log_compare
-#define gaim_log_set_compare purple_log_set_compare
-#define gaim_log_set_free purple_log_set_free
-#define gaim_log_common_writer purple_log_common_writer
-#define gaim_log_common_lister purple_log_common_lister
-#define gaim_log_common_total_sizer purple_log_common_total_sizer
-#define gaim_log_common_sizer purple_log_common_sizer
-#define gaim_log_logger_new purple_log_logger_new
-#define gaim_log_logger_free purple_log_logger_free
-#define gaim_log_logger_add purple_log_logger_add
-#define gaim_log_logger_remove purple_log_logger_remove
-#define gaim_log_logger_set purple_log_logger_set
-#define gaim_log_logger_get purple_log_logger_get
-#define gaim_log_logger_get_options purple_log_logger_get_options
-#define gaim_log_init purple_log_init
-#define gaim_log_get_handle purple_log_get_handle
-#define gaim_log_uninit purple_log_uninit
-#define GaimMimeDocument PurpleMimeDocument
-#define GaimMimePart PurpleMimePart
-#define gaim_mime_document_new purple_mime_document_new
-#define gaim_mime_document_free purple_mime_document_free
-#define gaim_mime_document_parse purple_mime_document_parse
-#define gaim_mime_document_parsen purple_mime_document_parsen
-#define gaim_mime_document_write purple_mime_document_write
-#define gaim_mime_document_get_fields purple_mime_document_get_fields
-#define gaim_mime_document_get_field purple_mime_document_get_field
-#define gaim_mime_document_set_field purple_mime_document_set_field
-#define gaim_mime_document_get_parts purple_mime_document_get_parts
-#define gaim_mime_part_new purple_mime_part_new
-#define gaim_mime_part_get_fields purple_mime_part_get_fields
-#define gaim_mime_part_get_field purple_mime_part_get_field
-#define gaim_mime_part_get_field_decoded purple_mime_part_get_field_decoded
-#define gaim_mime_part_set_field purple_mime_part_set_field
-#define gaim_mime_part_get_data purple_mime_part_get_data
-#define gaim_mime_part_get_data_decoded purple_mime_part_get_data_decoded
-#define gaim_mime_part_get_length purple_mime_part_get_length
-#define gaim_mime_part_set_data purple_mime_part_set_data
-#define GaimNetworkListenData PurpleNetworkListenData
-#define GaimNetworkListenCallback PurpleNetworkListenCallback
-#define gaim_network_ip_atoi purple_network_ip_atoi
-#define gaim_network_set_public_ip purple_network_set_public_ip
-#define gaim_network_get_public_ip purple_network_get_public_ip
-#define gaim_network_get_local_system_ip purple_network_get_local_system_ip
-#define gaim_network_get_my_ip purple_network_get_my_ip
-#define gaim_network_listen purple_network_listen
-#define gaim_network_listen_range purple_network_listen_range
-#define gaim_network_listen_cancel purple_network_listen_cancel
-#define gaim_network_get_port_from_fd purple_network_get_port_from_fd
-#define gaim_network_is_available purple_network_is_available
-#define gaim_network_init purple_network_init
-#define gaim_network_uninit purple_network_uninit
-#define GaimNotifyUserInfoEntry PurpleNotifyUserInfoEntry
-#define GaimNotifyUserInfo PurpleNotifyUserInfo
-#define GaimNotifyCloseCallback PurpleNotifyCloseCallback
-#define GAIM_NOTIFY_MESSAGE PURPLE_NOTIFY_MESSAGE
-#define GAIM_NOTIFY_EMAIL PURPLE_NOTIFY_EMAIL
-#define GAIM_NOTIFY_EMAILS PURPLE_NOTIFY_EMAILS
-#define GAIM_NOTIFY_FORMATTED PURPLE_NOTIFY_FORMATTED
-#define GAIM_NOTIFY_SEARCHRESULTS PURPLE_NOTIFY_SEARCHRESULTS
-#define GAIM_NOTIFY_USERINFO PURPLE_NOTIFY_USERINFO
-#define GAIM_NOTIFY_URI PURPLE_NOTIFY_URI
-#define GaimNotifyType PurpleNotifyType
-#define GAIM_NOTIFY_MSG_ERROR PURPLE_NOTIFY_MSG_ERROR
-#define GAIM_NOTIFY_MSG_WARNING PURPLE_NOTIFY_MSG_WARNING
-#define GAIM_NOTIFY_MSG_INFO PURPLE_NOTIFY_MSG_INFO
-#define GaimNotifyMsgType PurpleNotifyMsgType
-#define GAIM_NOTIFY_BUTTON_LABELED PURPLE_NOTIFY_BUTTON_LABELED
-#define GAIM_NOTIFY_BUTTON_CONTINUE PURPLE_NOTIFY_BUTTON_CONTINUE
-#define GAIM_NOTIFY_BUTTON_ADD PURPLE_NOTIFY_BUTTON_ADD
-#define GAIM_NOTIFY_BUTTON_INFO PURPLE_NOTIFY_BUTTON_INFO
-#define GAIM_NOTIFY_BUTTON_IM PURPLE_NOTIFY_BUTTON_IM
-#define GAIM_NOTIFY_BUTTON_JOIN PURPLE_NOTIFY_BUTTON_JOIN
-#define GAIM_NOTIFY_BUTTON_INVITE PURPLE_NOTIFY_BUTTON_INVITE
-#define GaimNotifySearchButtonType PurpleNotifySearchButtonType
-#define GaimNotifySearchResults PurpleNotifySearchResults
-#define GAIM_NOTIFY_USER_INFO_ENTRY_PAIR PURPLE_NOTIFY_USER_INFO_ENTRY_PAIR
-#define GAIM_NOTIFY_USER_INFO_ENTRY_SECTION_BREAK PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_BREAK
-#define GAIM_NOTIFY_USER_INFO_ENTRY_SECTION_HEADER PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_HEADER
-#define GaimNotifyUserInfoEntryType PurpleNotifyUserInfoEntryType
-#define GaimNotifySearchColumn PurpleNotifySearchColumn
-#define GaimNotifySearchResultsCallback PurpleNotifySearchResultsCallback
-#define GaimNotifySearchButton PurpleNotifySearchButton
-#define GaimNotifyUiOps PurpleNotifyUiOps
-#define gaim_notify_searchresults purple_notify_searchresults
-#define gaim_notify_searchresults_free purple_notify_searchresults_free
-#define gaim_notify_searchresults_new_rows purple_notify_searchresults_new_rows
-#define gaim_notify_searchresults_button_add purple_notify_searchresults_button_add
-#define gaim_notify_searchresults_button_add_labeled purple_notify_searchresults_button_add_labeled
-#define gaim_notify_searchresults_new purple_notify_searchresults_new
-#define gaim_notify_searchresults_column_new purple_notify_searchresults_column_new
-#define gaim_notify_searchresults_column_add purple_notify_searchresults_column_add
-#define gaim_notify_searchresults_row_add purple_notify_searchresults_row_add
-#define gaim_notify_searchresults_get_rows_count purple_notify_searchresults_get_rows_count
-#define gaim_notify_searchresults_get_columns_count purple_notify_searchresults_get_columns_count
-#define gaim_notify_searchresults_row_get purple_notify_searchresults_row_get
-#define gaim_notify_searchresults_column_get_title purple_notify_searchresults_column_get_title
-#define gaim_notify_message purple_notify_message
-#define gaim_notify_email purple_notify_email
-#define gaim_notify_emails purple_notify_emails
-#define gaim_notify_formatted purple_notify_formatted
-#define gaim_notify_userinfo purple_notify_userinfo
-#define gaim_notify_user_info_new purple_notify_user_info_new
-#define gaim_notify_user_info_destroy purple_notify_user_info_destroy
-#define gaim_notify_user_info_get_entries purple_notify_user_info_get_entries
-#define gaim_notify_user_info_get_text_with_newline purple_notify_user_info_get_text_with_newline
-#define gaim_notify_user_info_add_pair purple_notify_user_info_add_pair
-#define gaim_notify_user_info_prepend_pair purple_notify_user_info_prepend_pair
-#define gaim_notify_user_info_remove_entry purple_notify_user_info_remove_entry
-#define gaim_notify_user_info_entry_new purple_notify_user_info_entry_new
-#define gaim_notify_user_info_add_section_break purple_notify_user_info_add_section_break
-#define gaim_notify_user_info_add_section_header purple_notify_user_info_add_section_header
-#define gaim_notify_user_info_remove_last_item purple_notify_user_info_remove_last_item
-#define gaim_notify_user_info_entry_get_label purple_notify_user_info_entry_get_label
-#define gaim_notify_user_info_entry_set_label purple_notify_user_info_entry_set_label
-#define gaim_notify_user_info_entry_get_value purple_notify_user_info_entry_get_value
-#define gaim_notify_user_info_entry_set_value purple_notify_user_info_entry_set_value
-#define gaim_notify_user_info_entry_get_type purple_notify_user_info_entry_get_type
-#define gaim_notify_user_info_entry_set_type purple_notify_user_info_entry_set_type
-#define gaim_notify_uri purple_notify_uri
-#define gaim_notify_close purple_notify_close
-#define gaim_notify_close_with_handle purple_notify_close_with_handle
-#define gaim_notify_info purple_notify_info
-#define gaim_notify_warning purple_notify_warning
-#define gaim_notify_error purple_notify_error
-#define gaim_notify_set_ui_ops purple_notify_set_ui_ops
-#define gaim_notify_get_ui_ops purple_notify_get_ui_ops
-#define gaim_notify_get_handle purple_notify_get_handle
-#define gaim_notify_init purple_notify_init
-#define gaim_notify_uninit purple_notify_uninit
-#define gaim_ntlm_gen_type1 purple_ntlm_gen_type1
-#define gaim_ntlm_parse_type2 purple_ntlm_parse_type2
-#define gaim_ntlm_gen_type3 purple_ntlm_gen_type3
-#define GaimPlugin PurplePlugin
-#define GaimPluginInfo PurplePluginInfo
-#define GaimPluginUiInfo PurplePluginUiInfo
-#define GaimPluginLoaderInfo PurplePluginLoaderInfo
-#define GaimPluginAction PurplePluginAction
-#define GaimPluginPriority PurplePluginPriority
-#define GAIM_PLUGIN_UNKNOWN PURPLE_PLUGIN_UNKNOWN
-#define GAIM_PLUGIN_STANDARD PURPLE_PLUGIN_STANDARD
-#define GAIM_PLUGIN_LOADER PURPLE_PLUGIN_LOADER
-#define GAIM_PLUGIN_PROTOCOL PURPLE_PLUGIN_PROTOCOL
-#define GaimPluginType PurplePluginType
-#define GAIM_PRIORITY_DEFAULT PURPLE_PRIORITY_DEFAULT
-#define GAIM_PRIORITY_HIGHEST PURPLE_PRIORITY_HIGHEST
-#define GAIM_PRIORITY_LOWEST PURPLE_PRIORITY_LOWEST
-#define GAIM_PLUGIN_FLAG_INVISIBLE PURPLE_PLUGIN_FLAG_INVISIBLE
-#define GAIM_PLUGIN_MAGIC PURPLE_PLUGIN_MAGIC
-#define GAIM_PLUGIN_LOADER_INFO PURPLE_PLUGIN_LOADER_INFO
-#define GAIM_PLUGIN_HAS_PREF_FRAME PURPLE_PLUGIN_HAS_PREF_FRAME
-#define GAIM_PLUGIN_UI_INFO PURPLE_PLUGIN_UI_INFO
-#define GAIM_PLUGIN_HAS_ACTIONS PURPLE_PLUGIN_HAS_ACTIONS
-#define GAIM_PLUGIN_ACTIONS PURPLE_PLUGIN_ACTIONS
-#define GAIM_INIT_PLUGIN PURPLE_INIT_PLUGIN
-#define gaim_plugin_new purple_plugin_new
-#define gaim_plugin_probe purple_plugin_probe
-#define gaim_plugin_register purple_plugin_register
-#define gaim_plugin_load purple_plugin_load
-#define gaim_plugin_unload purple_plugin_unload
-#define gaim_plugin_reload purple_plugin_reload
-#define gaim_plugin_destroy purple_plugin_destroy
-#define gaim_plugin_is_loaded purple_plugin_is_loaded
-#define gaim_plugin_is_unloadable purple_plugin_is_unloadable
-#define gaim_plugin_get_id purple_plugin_get_id
-#define gaim_plugin_get_name purple_plugin_get_name
-#define gaim_plugin_get_version purple_plugin_get_version
-#define gaim_plugin_get_summary purple_plugin_get_summary
-#define gaim_plugin_get_description purple_plugin_get_description
-#define gaim_plugin_get_author purple_plugin_get_author
-#define gaim_plugin_get_homepage purple_plugin_get_homepage
-#define gaim_plugin_ipc_register purple_plugin_ipc_register
-#define gaim_plugin_ipc_unregister purple_plugin_ipc_unregister
-#define gaim_plugin_ipc_unregister_all purple_plugin_ipc_unregister_all
-#define gaim_plugin_ipc_get_params purple_plugin_ipc_get_params
-#define gaim_plugin_ipc_call purple_plugin_ipc_call
-#define gaim_plugins_add_search_path purple_plugins_add_search_path
-#define gaim_plugins_unload_all purple_plugins_unload_all
-#define gaim_plugins_destroy_all purple_plugins_destroy_all
-#define gaim_plugins_save_loaded purple_plugins_save_loaded
-#define gaim_plugins_load_saved purple_plugins_load_saved
-#define gaim_plugins_probe purple_plugins_probe
-#define gaim_plugins_enabled purple_plugins_enabled
-#define gaim_plugins_register_probe_notify_cb purple_plugins_register_probe_notify_cb
-#define gaim_plugins_unregister_probe_notify_cb purple_plugins_unregister_probe_notify_cb
-#define gaim_plugins_register_load_notify_cb purple_plugins_register_load_notify_cb
-#define gaim_plugins_unregister_load_notify_cb purple_plugins_unregister_load_notify_cb
-#define gaim_plugins_register_unload_notify_cb purple_plugins_register_unload_notify_cb
-#define gaim_plugins_unregister_unload_notify_cb purple_plugins_unregister_unload_notify_cb
-#define gaim_plugins_find_with_name purple_plugins_find_with_name
-#define gaim_plugins_find_with_filename purple_plugins_find_with_filename
-#define gaim_plugins_find_with_basename purple_plugins_find_with_basename
-#define gaim_plugins_find_with_id purple_plugins_find_with_id
-#define gaim_plugins_get_loaded purple_plugins_get_loaded
-#define gaim_plugins_get_protocols purple_plugins_get_protocols
-#define gaim_plugins_get_all purple_plugins_get_all
-#define gaim_plugins_get_handle purple_plugins_get_handle
-#define gaim_plugins_init purple_plugins_init
-#define gaim_plugins_uninit purple_plugins_uninit
-#define gaim_plugin_action_new purple_plugin_action_new
-#define gaim_plugin_action_free purple_plugin_action_free
-#define GaimPluginPrefFrame PurplePluginPrefFrame
-#define GaimPluginPref PurplePluginPref
-#define GAIM_STRING_FORMAT_TYPE_NONE PURPLE_STRING_FORMAT_TYPE_NONE
-#define GAIM_STRING_FORMAT_TYPE_MULTILINE PURPLE_STRING_FORMAT_TYPE_MULTILINE
-#define GAIM_STRING_FORMAT_TYPE_HTML PURPLE_STRING_FORMAT_TYPE_HTML
-#define GaimStringFormatType PurpleStringFormatType
-#define GAIM_PLUGIN_PREF_NONE PURPLE_PLUGIN_PREF_NONE
-#define GAIM_PLUGIN_PREF_CHOICE PURPLE_PLUGIN_PREF_CHOICE
-#define GAIM_PLUGIN_PREF_INFO PURPLE_PLUGIN_PREF_INFO
-#define GAIM_PLUGIN_PREF_STRING_FORMAT PURPLE_PLUGIN_PREF_STRING_FORMAT
-#define GaimPluginPrefType PurplePluginPrefType
-#define gaim_plugin_pref_frame_new purple_plugin_pref_frame_new
-#define gaim_plugin_pref_frame_destroy purple_plugin_pref_frame_destroy
-#define gaim_plugin_pref_frame_add purple_plugin_pref_frame_add
-#define gaim_plugin_pref_frame_get_prefs purple_plugin_pref_frame_get_prefs
-#define gaim_plugin_pref_new purple_plugin_pref_new
-#define gaim_plugin_pref_new_with_name purple_plugin_pref_new_with_name
-#define gaim_plugin_pref_new_with_label purple_plugin_pref_new_with_label
-#define gaim_plugin_pref_new_with_name_and_label purple_plugin_pref_new_with_name_and_label
-#define gaim_plugin_pref_destroy purple_plugin_pref_destroy
-#define gaim_plugin_pref_set_name purple_plugin_pref_set_name
-#define gaim_plugin_pref_get_name purple_plugin_pref_get_name
-#define gaim_plugin_pref_set_label purple_plugin_pref_set_label
-#define gaim_plugin_pref_get_label purple_plugin_pref_get_label
-#define gaim_plugin_pref_set_bounds purple_plugin_pref_set_bounds
-#define gaim_plugin_pref_get_bounds purple_plugin_pref_get_bounds
-#define gaim_plugin_pref_set_type purple_plugin_pref_set_type
-#define gaim_plugin_pref_get_type purple_plugin_pref_get_type
-#define gaim_plugin_pref_add_choice purple_plugin_pref_add_choice
-#define gaim_plugin_pref_get_choices purple_plugin_pref_get_choices
-#define gaim_plugin_pref_set_max_length purple_plugin_pref_set_max_length
-#define gaim_plugin_pref_get_max_length purple_plugin_pref_get_max_length
-#define gaim_plugin_pref_set_masked purple_plugin_pref_set_masked
-#define gaim_plugin_pref_get_masked purple_plugin_pref_get_masked
-#define gaim_plugin_pref_set_format_type purple_plugin_pref_set_format_type
-#define gaim_plugin_pref_get_format_type purple_plugin_pref_get_format_type
-#define GaimPounce PurplePounce
-#define GAIM_POUNCE_NONE PURPLE_POUNCE_NONE
-#define GAIM_POUNCE_SIGNON PURPLE_POUNCE_SIGNON
-#define GAIM_POUNCE_SIGNOFF PURPLE_POUNCE_SIGNOFF
-#define GAIM_POUNCE_AWAY PURPLE_POUNCE_AWAY
-#define GAIM_POUNCE_AWAY_RETURN PURPLE_POUNCE_AWAY_RETURN
-#define GAIM_POUNCE_IDLE PURPLE_POUNCE_IDLE
-#define GAIM_POUNCE_IDLE_RETURN PURPLE_POUNCE_IDLE_RETURN
-#define GAIM_POUNCE_TYPING PURPLE_POUNCE_TYPING
-#define GAIM_POUNCE_TYPED PURPLE_POUNCE_TYPED
-#define GAIM_POUNCE_TYPING_STOPPED PURPLE_POUNCE_TYPING_STOPPED
-#define GAIM_POUNCE_MESSAGE_RECEIVED PURPLE_POUNCE_MESSAGE_RECEIVED
-#define GaimPounceEvent PurplePounceEvent
-#define GAIM_POUNCE_OPTION_NONE PURPLE_POUNCE_OPTION_NONE
-#define GAIM_POUNCE_OPTION_AWAY PURPLE_POUNCE_OPTION_AWAY
-#define GaimPounceOption PurplePounceOption
-#define GaimPounceCb PurplePounceCb
-#define gaim_pounce_new purple_pounce_new
-#define gaim_pounce_destroy purple_pounce_destroy
-#define gaim_pounce_destroy_all_by_account purple_pounce_destroy_all_by_account
-#define gaim_pounce_set_events purple_pounce_set_events
-#define gaim_pounce_set_options purple_pounce_set_options
-#define gaim_pounce_set_pouncer purple_pounce_set_pouncer
-#define gaim_pounce_set_pouncee purple_pounce_set_pouncee
-#define gaim_pounce_set_save purple_pounce_set_save
-#define gaim_pounce_action_register purple_pounce_action_register
-#define gaim_pounce_action_set_enabled purple_pounce_action_set_enabled
-#define gaim_pounce_action_set_attribute purple_pounce_action_set_attribute
-#define gaim_pounce_set_data purple_pounce_set_data
-#define gaim_pounce_get_events purple_pounce_get_events
-#define gaim_pounce_get_options purple_pounce_get_options
-#define gaim_pounce_get_pouncer purple_pounce_get_pouncer
-#define gaim_pounce_get_pouncee purple_pounce_get_pouncee
-#define gaim_pounce_get_save purple_pounce_get_save
-#define gaim_pounce_action_is_enabled purple_pounce_action_is_enabled
-#define gaim_pounce_action_get_attribute purple_pounce_action_get_attribute
-#define gaim_pounce_get_data purple_pounce_get_data
-#define gaim_pounce_execute purple_pounce_execute
-#define gaim_find_pounce purple_find_pounce
-#define gaim_pounces_load purple_pounces_load
-#define gaim_pounces_register_handler purple_pounces_register_handler
-#define gaim_pounces_unregister_handler purple_pounces_unregister_handler
-#define gaim_pounces_get_all purple_pounces_get_all
-#define gaim_pounces_get_handle purple_pounces_get_handle
-#define gaim_pounces_init purple_pounces_init
-#define gaim_pounces_uninit purple_pounces_uninit
-#define GAIM_PREF_NONE PURPLE_PREF_NONE
-#define GAIM_PREF_BOOLEAN PURPLE_PREF_BOOLEAN
-#define GAIM_PREF_INT PURPLE_PREF_INT
-#define GAIM_PREF_STRING PURPLE_PREF_STRING
-#define GAIM_PREF_STRING_LIST PURPLE_PREF_STRING_LIST
-#define GAIM_PREF_PATH PURPLE_PREF_PATH
-#define GAIM_PREF_PATH_LIST PURPLE_PREF_PATH_LIST
-#define GaimPrefType PurplePrefType
-#define GaimPrefCallback PurplePrefCallback
-#define gaim_prefs_get_handle purple_prefs_get_handle
-#define gaim_prefs_init purple_prefs_init
-#define gaim_prefs_uninit purple_prefs_uninit
-#define gaim_prefs_add_none purple_prefs_add_none
-#define gaim_prefs_add_bool purple_prefs_add_bool
-#define gaim_prefs_add_int purple_prefs_add_int
-#define gaim_prefs_add_string purple_prefs_add_string
-#define gaim_prefs_add_string_list purple_prefs_add_string_list
-#define gaim_prefs_add_path purple_prefs_add_path
-#define gaim_prefs_add_path_list purple_prefs_add_path_list
-#define gaim_prefs_remove purple_prefs_remove
-#define gaim_prefs_rename purple_prefs_rename
-#define gaim_prefs_rename_boolean_toggle purple_prefs_rename_boolean_toggle
-#define gaim_prefs_destroy purple_prefs_destroy
-#define gaim_prefs_set_generic purple_prefs_set_generic
-#define gaim_prefs_set_bool purple_prefs_set_bool
-#define gaim_prefs_set_int purple_prefs_set_int
-#define gaim_prefs_set_string purple_prefs_set_string
-#define gaim_prefs_set_string_list purple_prefs_set_string_list
-#define gaim_prefs_set_path purple_prefs_set_path
-#define gaim_prefs_set_path_list purple_prefs_set_path_list
-#define gaim_prefs_exists purple_prefs_exists
-#define gaim_prefs_get_type purple_prefs_get_type
-#define gaim_prefs_get_bool purple_prefs_get_bool
-#define gaim_prefs_get_int purple_prefs_get_int
-#define gaim_prefs_get_string purple_prefs_get_string
-#define gaim_prefs_get_string_list purple_prefs_get_string_list
-#define gaim_prefs_get_path purple_prefs_get_path
-#define gaim_prefs_get_path_list purple_prefs_get_path_list
-#define gaim_prefs_connect_callback purple_prefs_connect_callback
-#define gaim_prefs_disconnect_callback purple_prefs_disconnect_callback
-#define gaim_prefs_disconnect_by_handle purple_prefs_disconnect_by_handle
-#define gaim_prefs_trigger_callback purple_prefs_trigger_callback
-#define gaim_prefs_load purple_prefs_load
-#define gaim_prefs_update_old purple_prefs_update_old
-#define GAIM_PRIVACY_ALLOW_ALL PURPLE_PRIVACY_ALLOW_ALL
-#define GAIM_PRIVACY_DENY_ALL PURPLE_PRIVACY_DENY_ALL
-#define GAIM_PRIVACY_ALLOW_USERS PURPLE_PRIVACY_ALLOW_USERS
-#define GAIM_PRIVACY_DENY_USERS PURPLE_PRIVACY_DENY_USERS
-#define GAIM_PRIVACY_ALLOW_BUDDYLIST PURPLE_PRIVACY_ALLOW_BUDDYLIST
-#define GaimPrivacyType PurplePrivacyType
-#define GaimPrivacyUiOps PurplePrivacyUiOps
-#define gaim_privacy_permit_add purple_privacy_permit_add
-#define gaim_privacy_permit_remove purple_privacy_permit_remove
-#define gaim_privacy_deny_add purple_privacy_deny_add
-#define gaim_privacy_deny_remove purple_privacy_deny_remove
-#define gaim_privacy_allow purple_privacy_allow
-#define gaim_privacy_deny purple_privacy_deny
-#define gaim_privacy_check purple_privacy_check
-#define gaim_privacy_set_ui_ops purple_privacy_set_ui_ops
-#define gaim_privacy_get_ui_ops purple_privacy_get_ui_ops
-#define gaim_privacy_init purple_privacy_init
-#define GAIM_PROXY_USE_GLOBAL PURPLE_PROXY_USE_GLOBAL
-#define GAIM_PROXY_NONE PURPLE_PROXY_NONE
-#define GAIM_PROXY_HTTP PURPLE_PROXY_HTTP
-#define GAIM_PROXY_SOCKS4 PURPLE_PROXY_SOCKS4
-#define GAIM_PROXY_SOCKS5 PURPLE_PROXY_SOCKS5
-#define GAIM_PROXY_USE_ENVVAR PURPLE_PROXY_USE_ENVVAR
-#define GaimProxyType PurpleProxyType
-#define GaimProxyInfo PurpleProxyInfo
-#define GaimProxyConnectData PurpleProxyConnectData
-#define GaimProxyConnectFunction PurpleProxyConnectFunction
-#define gaim_proxy_info_new purple_proxy_info_new
-#define gaim_proxy_info_destroy purple_proxy_info_destroy
-#define gaim_proxy_info_set_type purple_proxy_info_set_type
-#define gaim_proxy_info_set_host purple_proxy_info_set_host
-#define gaim_proxy_info_set_port purple_proxy_info_set_port
-#define gaim_proxy_info_set_username purple_proxy_info_set_username
-#define gaim_proxy_info_set_password purple_proxy_info_set_password
-#define gaim_proxy_info_get_type purple_proxy_info_get_type
-#define gaim_proxy_info_get_host purple_proxy_info_get_host
-#define gaim_proxy_info_get_port purple_proxy_info_get_port
-#define gaim_proxy_info_get_username purple_proxy_info_get_username
-#define gaim_proxy_info_get_password purple_proxy_info_get_password
-#define gaim_global_proxy_get_info purple_global_proxy_get_info
-#define gaim_proxy_get_handle purple_proxy_get_handle
-#define gaim_proxy_init purple_proxy_init
-#define gaim_proxy_uninit purple_proxy_uninit
-#define gaim_proxy_get_setup purple_proxy_get_setup
-#define gaim_proxy_connect purple_proxy_connect
-#define gaim_proxy_connect_socks5 purple_proxy_connect_socks5
-#define gaim_proxy_connect_cancel purple_proxy_connect_cancel
-#define gaim_proxy_connect_cancel_with_handle purple_proxy_connect_cancel_with_handle
-#define GaimPluginProtocolInfo PurplePluginProtocolInfo
-#define GAIM_ICON_SCALE_DISPLAY PURPLE_ICON_SCALE_DISPLAY
-#define GAIM_ICON_SCALE_SEND PURPLE_ICON_SCALE_SEND
-#define GaimIconScaleRules PurpleIconScaleRules
-#define GaimBuddyIconSpec PurpleBuddyIconSpec
-#define GaimProtocolOptions PurpleProtocolOptions
-#define GAIM_IS_PROTOCOL_PLUGIN PURPLE_IS_PROTOCOL_PLUGIN
-#define GAIM_PLUGIN_PROTOCOL_INFO PURPLE_PLUGIN_PROTOCOL_INFO
-#define gaim_prpl_got_account_idle purple_prpl_got_account_idle
-#define gaim_prpl_got_account_login_time purple_prpl_got_account_login_time
-#define gaim_prpl_got_account_status purple_prpl_got_account_status
-#define gaim_prpl_got_user_idle purple_prpl_got_user_idle
-#define gaim_prpl_got_user_login_time purple_prpl_got_user_login_time
-#define gaim_prpl_got_user_status purple_prpl_got_user_status
-#define gaim_prpl_change_account_status purple_prpl_change_account_status
-#define gaim_prpl_get_statuses purple_prpl_get_statuses
-#define gaim_find_prpl purple_find_prpl
-#define GAIM_DEFAULT_ACTION_NONE PURPLE_DEFAULT_ACTION_NONE
-#define GAIM_REQUEST_INPUT PURPLE_REQUEST_INPUT
-#define GAIM_REQUEST_CHOICE PURPLE_REQUEST_CHOICE
-#define GAIM_REQUEST_ACTION PURPLE_REQUEST_ACTION
-#define GAIM_REQUEST_FIELDS PURPLE_REQUEST_FIELDS
-#define GAIM_REQUEST_FILE PURPLE_REQUEST_FILE
-#define GAIM_REQUEST_FOLDER PURPLE_REQUEST_FOLDER
-#define GaimRequestType PurpleRequestType
-#define GAIM_REQUEST_FIELD_NONE PURPLE_REQUEST_FIELD_NONE
-#define GAIM_REQUEST_FIELD_STRING PURPLE_REQUEST_FIELD_STRING
-#define GAIM_REQUEST_FIELD_INTEGER PURPLE_REQUEST_FIELD_INTEGER
-#define GAIM_REQUEST_FIELD_BOOLEAN PURPLE_REQUEST_FIELD_BOOLEAN
-#define GAIM_REQUEST_FIELD_CHOICE PURPLE_REQUEST_FIELD_CHOICE
-#define GAIM_REQUEST_FIELD_LIST PURPLE_REQUEST_FIELD_LIST
-#define GAIM_REQUEST_FIELD_LABEL PURPLE_REQUEST_FIELD_LABEL
-#define GAIM_REQUEST_FIELD_IMAGE PURPLE_REQUEST_FIELD_IMAGE
-#define GAIM_REQUEST_FIELD_ACCOUNT PURPLE_REQUEST_FIELD_ACCOUNT
-#define GaimRequestFieldType PurpleRequestFieldType
-#define GaimRequestFields PurpleRequestFields
-#define GaimRequestFieldGroup PurpleRequestFieldGroup
-#define GaimRequestField PurpleRequestField
-#define GaimRequestUiOps PurpleRequestUiOps
-#define GaimRequestInputCb PurpleRequestInputCb
-#define GaimRequestActionCb PurpleRequestActionCb
-#define GaimRequestChoiceCb PurpleRequestChoiceCb
-#define GaimRequestFieldsCb PurpleRequestFieldsCb
-#define GaimRequestFileCb PurpleRequestFileCb
-#define gaim_request_fields_new purple_request_fields_new
-#define gaim_request_fields_destroy purple_request_fields_destroy
-#define gaim_request_fields_add_group purple_request_fields_add_group
-#define gaim_request_fields_get_groups purple_request_fields_get_groups
-#define gaim_request_fields_exists purple_request_fields_exists
-#define gaim_request_fields_get_required purple_request_fields_get_required
-#define gaim_request_fields_is_field_required purple_request_fields_is_field_required
-#define gaim_request_fields_all_required_filled purple_request_fields_all_required_filled
-#define gaim_request_fields_get_field purple_request_fields_get_field
-#define gaim_request_fields_get_string purple_request_fields_get_string
-#define gaim_request_fields_get_integer purple_request_fields_get_integer
-#define gaim_request_fields_get_bool purple_request_fields_get_bool
-#define gaim_request_fields_get_choice purple_request_fields_get_choice
-#define gaim_request_fields_get_account purple_request_fields_get_account
-#define gaim_request_field_group_new purple_request_field_group_new
-#define gaim_request_field_group_destroy purple_request_field_group_destroy
-#define gaim_request_field_group_add_field purple_request_field_group_add_field
-#define gaim_request_field_group_get_title purple_request_field_group_get_title
-#define gaim_request_field_group_get_fields purple_request_field_group_get_fields
-#define gaim_request_field_new purple_request_field_new
-#define gaim_request_field_destroy purple_request_field_destroy
-#define gaim_request_field_set_label purple_request_field_set_label
-#define gaim_request_field_set_visible purple_request_field_set_visible
-#define gaim_request_field_set_type_hint purple_request_field_set_type_hint
-#define gaim_request_field_set_required purple_request_field_set_required
-#define gaim_request_field_get_type purple_request_field_get_type
-#define gaim_request_field_get_id purple_request_field_get_id
-#define gaim_request_field_get_label purple_request_field_get_label
-#define gaim_request_field_is_visible purple_request_field_is_visible
-#define gaim_request_field_get_type_hint purple_request_field_get_type_hint
-#define gaim_request_field_is_required purple_request_field_is_required
-#define gaim_request_field_string_new purple_request_field_string_new
-#define gaim_request_field_string_set_default_value \
- purple_request_field_string_set_default_value
-#define gaim_request_field_string_set_value purple_request_field_string_set_value
-#define gaim_request_field_string_set_masked purple_request_field_string_set_masked
-#define gaim_request_field_string_set_editable purple_request_field_string_set_editable
-#define gaim_request_field_string_get_default_value \
- purple_request_field_string_get_default_value
-#define gaim_request_field_string_get_value purple_request_field_string_get_value
-#define gaim_request_field_string_is_multiline purple_request_field_string_is_multiline
-#define gaim_request_field_string_is_masked purple_request_field_string_is_masked
-#define gaim_request_field_string_is_editable purple_request_field_string_is_editable
-#define gaim_request_field_int_new purple_request_field_int_new
-#define gaim_request_field_int_set_default_value \
- purple_request_field_int_set_default_value
-#define gaim_request_field_int_set_value purple_request_field_int_set_value
-#define gaim_request_field_int_get_default_value \
- purple_request_field_int_get_default_value
-#define gaim_request_field_int_get_value purple_request_field_int_get_value
-#define gaim_request_field_bool_new purple_request_field_bool_new
-#define gaim_request_field_bool_set_default_value \
- purple_request_field_book_set_default_value
-#define gaim_request_field_bool_set_value purple_request_field_bool_set_value
-#define gaim_request_field_bool_get_default_value \
- purple_request_field_bool_get_default_value
-#define gaim_request_field_bool_get_value purple_request_field_bool_get_value
-#define gaim_request_field_choice_new purple_request_field_choice_new
-#define gaim_request_field_choice_add purple_request_field_choice_add
-#define gaim_request_field_choice_set_default_value \
- purple_request_field_choice_set_default_value
-#define gaim_request_field_choice_set_value purple_request_field_choice_set_value
-#define gaim_request_field_choice_get_default_value \
- purple_request_field_choice_get_default_value
-#define gaim_request_field_choice_get_value purple_request_field_choice_get_value
-#define gaim_request_field_choice_get_labels purple_request_field_choice_get_labels
-#define gaim_request_field_list_new purple_request_field_list_new
-#define gaim_request_field_list_set_multi_select purple_request_field_list_set_multi_select
-#define gaim_request_field_list_get_multi_select purple_request_field_list_get_multi_select
-#define gaim_request_field_list_get_data purple_request_field_list_get_data
-#define gaim_request_field_list_add purple_request_field_list_add
-#define gaim_request_field_list_add_selected purple_request_field_list_add_selected
-#define gaim_request_field_list_clear_selected purple_request_field_list_clear_selected
-#define gaim_request_field_list_set_selected purple_request_field_list_set_selected
-#define gaim_request_field_list_is_selected purple_request_field_list_is_selected
-#define gaim_request_field_list_get_selected purple_request_field_list_get_selected
-#define gaim_request_field_list_get_items purple_request_field_list_get_items
-#define gaim_request_field_label_new purple_request_field_label_new
-#define gaim_request_field_image_new purple_request_field_image_new
-#define gaim_request_field_image_set_scale purple_request_field_image_set_scale
-#define gaim_request_field_image_get_buffer purple_request_field_image_get_buffer
-#define gaim_request_field_image_get_size purple_request_field_image_get_size
-#define gaim_request_field_image_get_scale_x purple_request_field_image_get_scale_x
-#define gaim_request_field_image_get_scale_y purple_request_field_image_get_scale_y
-#define gaim_request_field_account_new purple_request_field_account_new
-#define gaim_request_field_account_set_default_value purple_request_field_account_set_default_value
-#define gaim_request_field_account_set_value purple_request_field_account_set_value
-#define gaim_request_field_account_set_show_all purple_request_field_account_set_show_all
-#define gaim_request_field_account_set_filter purple_request_field_account_set_filter
-#define gaim_request_field_account_get_default_value purple_request_field_account_get_default_value
-#define gaim_request_field_account_get_value purple_request_field_account_get_value
-#define gaim_request_field_account_get_show_all purple_request_field_account_get_show_all
-#define gaim_request_field_account_get_filter purple_request_field_account_get_filter
-#define gaim_request_input purple_request_input
-#define gaim_request_choice purple_request_choice
-#define gaim_request_choice_varg purple_request_choice_varg
-#define gaim_request_action purple_request_action
-#define gaim_request_action_varg purple_request_action_varg
-#define gaim_request_fields(handle, title, primary, secondary, fields, ok_text, ok_cb, cancel_text, cancel_cb, user_data) purple_request_fields(handle, title, primary, secondary, fields, ok_text, ok_cb, cancel_text, cancel_cb, NULL, NULL, NULL, user_data)
-#define gaim_request_close purple_request_close
-#define gaim_request_close_with_handle purple_request_close_with_handle
-#define gaim_request_yes_no purple_request_yes_no
-#define gaim_request_ok_cancel purple_request_ok_cancel
-#define gaim_request_accept_cancel purple_request_accept_cancel
-#define gaim_request_file purple_request_file
-#define gaim_request_folder purple_request_folder
-#define gaim_request_set_ui_ops purple_request_set_ui_ops
-#define gaim_request_get_ui_ops purple_request_get_ui_ops
-#define GaimRoomlist PurpleRoomlist
-#define GaimRoomlistRoom PurpleRoomlistRoom
-#define GaimRoomlistField PurpleRoomlistField
-#define GaimRoomlistUiOps PurpleRoomlistUiOps
-#define GAIM_ROOMLIST_ROOMTYPE_CATEGORY PURPLE_ROOMLIST_ROOMTYPE_CATEGORY
-#define GAIM_ROOMLIST_ROOMTYPE_ROOM PURPLE_ROOMLIST_ROOMTYPE_ROOM
-#define GaimRoomlistRoomType PurpleRoomlistRoomType
-#define GAIM_ROOMLIST_FIELD_BOOL PURPLE_ROOMLIST_BOOL
-#define GAIM_ROOMLIST_FIELD_INT PURPLE_ROOMLIST_INT
-#define GAIM_ROOMLIST_FIELD_STRING PURPLE_ROOMLIST_STRING
-#define GaimRoomlistFieldType PurpleRoomlistFieldType
-#define gaim_roomlist_show_with_account purple_roomlist_show_with_account
-#define gaim_roomlist_new purple_roomlist_new
-#define gaim_roomlist_ref purple_roomlist_ref
-#define gaim_roomlist_unref purple_roomlist_unref
-#define gaim_roomlist_set_fields purple_roomlist_set_fields
-#define gaim_roomlist_set_in_progress purple_roomlist_set_in_progress
-#define gaim_roomlist_get_in_progress purple_roomlist_get_in_progress
-#define gaim_roomlist_room_add purple_roomlist_room_add
-#define gaim_roomlist_get_list purple_roomlist_get_list
-#define gaim_roomlist_cancel_get_list purple_roomlist_cancel_get_list
-#define gaim_roomlist_expand_category purple_roomlist_expand_category
-#define gaim_roomlist_room_new purple_roomlist_room_new
-#define gaim_roomlist_room_add_field purple_roomlist_room_add_field
-#define gaim_roomlist_room_join purple_roomlist_room_join
-#define gaim_roomlist_field_new purple_roomlist_field_new
-#define gaim_roomlist_set_ui_ops purple_roomlist_set_ui_ops
-#define gaim_roomlist_get_ui_ops purple_roomlist_get_ui_ops
-/* from savedstatuses.h */
-#define GaimSavedStatus PurpleSavedStatus
-#define GaimSavedStatusSub PurpleSavedStatusSub
-#define gaim_savedstatus_new purple_savedstatus_new
-#define gaim_savedstatus_set_title purple_savedstatus_set_title
-#define gaim_savedstatus_set_type purple_savedstatus_set_type
-#define gaim_savedstatus_set_message purple_savedstatus_set_message
-#define gaim_savedstatus_set_substatus purple_savedstatus_set_substatus
-#define gaim_savedstatus_unset_substatus purple_savedstatus_unset_substatus
-#define gaim_savedstatus_delete purple_savedstatus_delete
-#define gaim_savedstatuses_get_all purple_savedstatuses_get_all
-#define gaim_savedstatuses_get_popular purple_savedstatuses_get_popular
-#define gaim_savedstatus_get_current purple_savedstatus_get_current
-#define gaim_savedstatus_get_default purple_savedstatus_get_default
-#define gaim_savedstatus_get_idleaway purple_savedstatus_get_idleaway
-#define gaim_savedstatus_is_idleaway purple_savedstatus_is_idleaway
-#define gaim_savedstatus_set_idleaway purple_savedstatus_set_idleaway
-#define gaim_savedstatus_get_startup purple_savedstatus_get_startup
-#define gaim_savedstatus_find purple_savedstatus_find
-#define gaim_savedstatus_find_by_creation_time purple_savedstatus_find_by_creation_time
-#define gaim_savedstatus_find_transient_by_type_and_message \
- purple_savedstatus_find_transient_by_type_and_message
-#define gaim_savedstatus_is_transient purple_savedstatus_is_transient
-#define gaim_savedstatus_get_title purple_savedstatus_get_title
-#define gaim_savedstatus_get_type purple_savedstatus_get_type
-#define gaim_savedstatus_get_message purple_savedstatus_get_message
-#define gaim_savedstatus_get_creation_time purple_savedstatus_get_creation_time
-#define gaim_savedstatus_has_substatuses purple_savedstatus_has_substatuses
-#define gaim_savedstatus_get_substatus purple_savedstatus_get_substatus
-#define gaim_savedstatus_substatus_get_type purple_savedstatus_substatus_get_type
-#define gaim_savedstatus_substatus_get_message purple_savedstatus_substatus_get_message
-#define gaim_savedstatus_activate purple_savedstatus_activate
-#define gaim_savedstatus_activate_for_account purple_savedstatus_activate_for_account
-#define gaim_savedstatuses_get_handle purple_savedstatuses_get_handle
-#define gaim_savedstatuses_init purple_savedstatuses_init
-#define gaim_savedstatuses_uninit purple_savedstatuses_uninit
-#define GAIM_CALLBACK PURPLE_CALLBACK
-#define GaimCallback PurpleCallback
-#define GaimSignalMarshalFunc PurpleSignalMarshalFunc
-#define GAIM_SIGNAL_PRIORITY_DEFAULT PURPLE_SIGNAL_PRIORITY_DEFAULT
-#define GAIM_SIGNAL_PRIORITY_HIGHEST PURPLE_SIGNAL_PRIORITY_HIGHEST
-#define GAIM_SIGNAL_PRIORITY_LOWEST PURPLE_SIGNAL_PRIORITY_LOWEST
-#define gaim_signal_register purple_signal_register
-#define gaim_signal_unregister purple_signal_unregister
-#define gaim_signals_unregister_by_instance purple_signals_unregister_by_instance
-#define gaim_signal_get_values purple_signal_get_values
-#define gaim_signal_connect_priority purple_signal_connect_priority
-#define gaim_signal_connect purple_signal_connect
-#define gaim_signal_connect_priority_vargs purple_signal_connect_priority_vargs
-#define gaim_signal_connect_vargs purple_signal_connect_vargs
-#define gaim_signal_disconnect purple_signal_disconnect
-#define gaim_signals_disconnect_by_handle purple_signals_disconnect_by_handle
-#define gaim_signal_emit purple_signal_emit
-#define gaim_signal_emit_vargs purple_signal_emit_vargs
-#define gaim_signal_emit_return_1 purple_signal_emit_vargs
-#define gaim_signal_emit_vargs_return_1 purple_signal_emit_vargs_return_1
-#define gaim_signals_init purple_signals_init
-#define gaim_signals_uninit purple_signals_uninit
-#define gaim_marshal_VOID \
-#define gaim_marshal_VOID__INT \
- purple_marshal_VOID__INT
-#define gaim_marshal_VOID__INT_INT \
- purple_marshal_VOID_INT_INT
-#define gaim_marshal_VOID__POINTER \
- purple_marshal_VOID__POINTER
-#define gaim_marshal_VOID__POINTER_UINT \
- purple_marshal_VOID__POINTER_UINT
-#define gaim_marshal_VOID__POINTER_INT_INT \
- purple_marshal_VOID__POINTER_INT_INT
-#define gaim_marshal_VOID__POINTER_POINTER \
- purple_marshal_VOID__POINTER_POINTER
-#define gaim_marshal_VOID__POINTER_POINTER_UINT \
- purple_marshal_VOID__POINTER_POINTER_UINT
-#define gaim_marshal_VOID__POINTER_POINTER_UINT_UINT \
- purple_marshal_VOID__POINTER_POINTER_UINT_UINT
-#define gaim_marshal_VOID__POINTER_POINTER_POINTER \
- purple_marshal_VOID__POINTER_POINTER_POINTER
-#define gaim_marshal_VOID__POINTER_POINTER_POINTER_POINTER \
- purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER
-#define gaim_marshal_VOID__POINTER_POINTER_POINTER_POINTER_POINTER \
- purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_POINTER
-#define gaim_marshal_VOID__POINTER_POINTER_POINTER_UINT \
- purple_marshal_VOID__POINTER_POINTER_POINTER_UINT
-#define gaim_marshal_VOID__POINTER_POINTER_POINTER_POINTER_UINT \
- purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_UINT
-#define gaim_marshal_VOID__POINTER_POINTER_POINTER_UINT_UINT \
- purple_marshal_VOID__POINTER_POINTER_POINTER_UINT_UINT
-#define gaim_marshal_INT__INT \
- purple_marshal_INT__INT
-#define gaim_marshal_INT__INT_INT \
- purple_marshal_INT__INT_INT
-#define gaim_marshal_INT__POINTER_POINTER_POINTER_POINTER_POINTER \
- purple_marshal_INT__POINTER_POINTER_POINTER_POINTER_POINTER
-#define gaim_marshal_BOOLEAN__POINTER \
- purple_marshal_BOOLEAN__POINTER
-#define gaim_marshal_BOOLEAN__POINTER_POINTER \
- purple_marshal_BOOLEAN__POINTER_POINTER
-#define gaim_marshal_BOOLEAN__POINTER_POINTER_POINTER \
- purple_marshal_BOOLEAN__POINTER_POINTER_POINTER
-#define gaim_marshal_BOOLEAN__POINTER_POINTER_UINT \
- purple_marshal_BOOLEAN__POINTER_POINTER_UINT
-#define gaim_marshal_BOOLEAN__POINTER_POINTER_POINTER_UINT \
- purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_UINT
-#define gaim_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER \
- purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER
-#define gaim_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER \
- purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER
-#define gaim_marshal_BOOLEAN__INT_POINTER \
- purple_marshal_BOOLEAN__INT_POINTER
-#define gaim_marshal_POINTER__POINTER_INT \
- purple_marshal_POINTER__POINTER_INT
-#define gaim_marshal_POINTER__POINTER_INT64 \
- purple_marshal_POINTER__POINTER_INT64
-#define gaim_marshal_POINTER__POINTER_INT_BOOLEAN \
- purple_marshal_POINTER__POINTER_INT_BOOLEAN
-#define gaim_marshal_POINTER__POINTER_INT64_BOOLEAN \
- purple_marshal_POINTER__POINTER_INT64_BOOLEAN
-#define gaim_marshal_POINTER__POINTER_POINTER \
- purple_marshal_POINTER__POINTER_POINTER
-#define GAIM_SOUND_BUDDY_ARRIVE PURPLE_SOUND_BUDDY_ARRIVE
-#define GAIM_SOUND_BUDDY_LEAVE PURPLE_SOUND_BUDDY_LEAVE
-#define GAIM_SOUND_RECEIVE PURPLE_SOUND_RECEIVE
-#define GAIM_SOUND_FIRST_RECEIVE PURPLE_SOUND_FIRST_RECEIVE
-#define GAIM_SOUND_SEND PURPLE_SOUND_SEND
-#define GAIM_SOUND_CHAT_JOIN PURPLE_SOUND_CHAT_JOIN
-#define GAIM_SOUND_CHAT_LEAVE PURPLE_SOUND_CHAT_LEAVE
-#define GAIM_SOUND_CHAT_YOU_SAY PURPLE_SOUND_CHAT_YOU_SAY
-#define GAIM_SOUND_CHAT_SAY PURPLE_SOUND_CHAT_SAY
-#define GAIM_SOUND_POUNCE_DEFAULT PURPLE_SOUND_POUNCE_DEFAULT
-#define GAIM_SOUND_CHAT_NICK PURPLE_SOUND_CHAT_NICK
-#define GAIM_NUM_SOUNDS PURPLE_NUM_SOUNDS
-#define GaimSoundEventID PurpleSoundEventID
-#define GaimSoundUiOps PurpleSoundUiOps
-#define gaim_sound_play_file purple_sound_play_file
-#define gaim_sound_play_event purple_sound_play_event
-#define gaim_sound_set_ui_ops purple_sound_set_ui_ops
-#define gaim_sound_get_ui_ops purple_sound_get_ui_ops
-#define gaim_sound_init purple_sound_init
-#define gaim_sound_uninit purple_sound_uninit
-#define gaim_sounds_get_handle purple_sounds_get_handle
-#define GAIM_SSL_DEFAULT_PORT PURPLE_SSL_DEFAULT_PORT
-#define GAIM_SSL_HANDSHAKE_FAILED PURPLE_SSL_HANDSHAKE_FAILED
-#define GAIM_SSL_CONNECT_FAILED PURPLE_SSL_CONNECT_FAILED
-#define GaimSslErrorType PurpleSslErrorType
-#define GaimSslConnection PurpleSslConnection
-#define GaimSslInputFunction PurpleSslInputFunction
-#define GaimSslErrorFunction PurpleSslErrorFunction
-#define GaimSslOps PurpleSslOps
-#define gaim_ssl_is_supported purple_ssl_is_supported
-#define gaim_ssl_connect purple_ssl_connect
-#define gaim_ssl_connect_fd purple_ssl_connect_fd
-#define gaim_ssl_input_add purple_ssl_input_add
-#define gaim_ssl_close purple_ssl_close
-#define gaim_ssl_read purple_ssl_read
-#define gaim_ssl_write purple_ssl_write
-#define gaim_ssl_set_ops purple_ssl_set_ops
-#define gaim_ssl_get_ops purple_ssl_get_ops
-#define gaim_ssl_init purple_ssl_init
-#define gaim_ssl_uninit purple_ssl_uninit
-#define GaimStatusType PurpleStatusType
-#define GaimStatusAttr PurpleStatusAttr
-#define GaimPresence PurplePresence
-#define GaimStatus PurpleStatus
-#define GAIM_PRESENCE_CONTEXT_UNSET PURPLE_PRESENCE_CONTEXT_UNSET
-#define GAIM_PRESENCE_CONTEXT_ACCOUNT PURPLE_PRESENCE_CONTEXT_ACCOUNT
-#define GAIM_PRESENCE_CONTEXT_CONV PURPLE_PRESENCE_CONTEXT_CONV
-#define GAIM_PRESENCE_CONTEXT_BUDDY PURPLE_PRESENCE_CONTEXT_BUDDY
-#define GaimPresenceContext PurplePresenceContext
-#define GAIM_STATUS_UNSET PURPLE_STATUS_UNSET
-#define GAIM_STATUS_OFFLINE PURPLE_STATUS_OFFLINE
-#define GAIM_STATUS_AVAILABLE PURPLE_STATUS_AVAILABLE
-#define GAIM_STATUS_UNAVAILABLE PURPLE_STATUS_UNAVAILABLE
-#define GAIM_STATUS_INVISIBLE PURPLE_STATUS_INVISIBLE
-#define GAIM_STATUS_AWAY PURPLE_STATUS_AWAY
-#define GAIM_STATUS_EXTENDED_AWAY PURPLE_STATUS_EXTENDED_AWAY
-#define GAIM_STATUS_MOBILE PURPLE_STATUS_MOBILE
-#define GAIM_STATUS_NUM_PRIMITIVES PURPLE_STATUS_NUM_PRIMITIVES
-#define GaimStatusPrimitive PurpleStatusPrimitive
-#define gaim_primitive_get_id_from_type purple_primitive_get_id_from_type
-#define gaim_primitive_get_name_from_type purple_primitive_get_name_from_type
-#define gaim_primitive_get_type_from_id purple_primitive_get_type_from_id
-#define gaim_status_type_new_full purple_status_type_new_full
-#define gaim_status_type_new purple_status_type_new
-#define gaim_status_type_new_with_attrs purple_status_type_new_with_attrs
-#define gaim_status_type_destroy purple_status_type_destroy
-#define gaim_status_type_set_primary_attr purple_status_type_set_primary_attr
-#define gaim_status_type_add_attr purple_status_type_add_attr
-#define gaim_status_type_add_attrs purple_status_type_add_attrs
-#define gaim_status_type_add_attrs_vargs purple_status_type_add_attrs_vargs
-#define gaim_status_type_get_primitive purple_status_type_get_primitive
-#define gaim_status_type_get_id purple_status_type_get_id
-#define gaim_status_type_get_name purple_status_type_get_name
-#define gaim_status_type_is_saveable purple_status_type_is_saveable
-#define gaim_status_type_is_user_settable purple_status_type_is_user_settable
-#define gaim_status_type_is_independent purple_status_type_is_independent
-#define gaim_status_type_is_exclusive purple_status_type_is_exclusive
-#define gaim_status_type_is_available purple_status_type_is_available
-#define gaim_status_type_get_primary_attr purple_status_type_get_primary_attr
-#define gaim_status_type_get_attr purple_status_type_get_attr
-#define gaim_status_type_get_attrs purple_status_type_get_attrs
-#define gaim_status_type_find_with_id purple_status_type_find_with_id
-#define gaim_status_attr_new purple_status_attr_new
-#define gaim_status_attr_destroy purple_status_attr_destroy
-#define gaim_status_attr_get_id purple_status_attr_get_id
-#define gaim_status_attr_get_name purple_status_attr_get_name
-#define gaim_status_attr_get_value purple_status_attr_get_value
-#define gaim_status_new purple_status_new
-#define gaim_status_destroy purple_status_destroy
-#define gaim_status_set_active purple_status_set_active
-#define gaim_status_set_active_with_attrs purple_status_set_active_with_attrs
-#define gaim_status_set_active_with_attrs_list purple_status_set_active_with_attrs_list
-#define gaim_status_set_attr_boolean purple_status_set_attr_boolean
-#define gaim_status_set_attr_int purple_status_set_attr_int
-#define gaim_status_set_attr_string purple_status_set_attr_string
-#define gaim_status_get_type purple_status_get_type
-#define gaim_status_get_presence purple_status_get_presence
-#define gaim_status_get_id purple_status_get_id
-#define gaim_status_get_name purple_status_get_name
-#define gaim_status_is_independent purple_status_is_independent
-#define gaim_status_is_exclusive purple_status_is_exclusive
-#define gaim_status_is_available purple_status_is_available
-#define gaim_status_is_active purple_status_is_active
-#define gaim_status_is_online purple_status_is_online
-#define gaim_status_get_attr_value purple_status_get_attr_value
-#define gaim_status_get_attr_boolean purple_status_get_attr_boolean
-#define gaim_status_get_attr_int purple_status_get_attr_int
-#define gaim_status_get_attr_string purple_status_get_attr_string
-#define gaim_status_compare purple_status_compare
-#define gaim_presence_new purple_presence_new
-#define gaim_presence_new_for_account purple_presence_new_for_account
-#define gaim_presence_new_for_conv purple_presence_new_for_conv
-#define gaim_presence_new_for_buddy purple_presence_new_for_buddy
-#define gaim_presence_destroy purple_presence_destroy
-#define gaim_presence_add_status purple_presence_add_status
-#define gaim_presence_add_list purple_presence_add_list
-#define gaim_presence_set_status_active purple_presence_set_status_active
-#define gaim_presence_switch_status purple_presence_switch_status
-#define gaim_presence_set_idle purple_presence_set_idle
-#define gaim_presence_set_login_time purple_presence_set_login_time
-#define gaim_presence_get_context purple_presence_get_context
-#define gaim_presence_get_account purple_presence_get_account
-#define gaim_presence_get_conversation purple_presence_get_conversation
-#define gaim_presence_get_chat_user purple_presence_get_chat_user
-#define gaim_presence_get_statuses purple_presence_get_statuses
-#define gaim_presence_get_status purple_presence_get_status
-#define gaim_presence_get_active_status purple_presence_get_active_status
-#define gaim_presence_is_available purple_presence_is_available
-#define gaim_presence_is_online purple_presence_is_online
-#define gaim_presence_is_status_active purple_presence_is_status_active
-#define gaim_presence_is_status_primitive_active \
- purple_presence_is_status_primitive_active
-#define gaim_presence_is_idle purple_presence_is_idle
-#define gaim_presence_get_idle_time purple_presence_get_idle_time
-#define gaim_presence_get_login_time purple_presence_get_login_time
-#define gaim_presence_compare purple_presence_compare
-#define gaim_status_get_handle purple_status_get_handle
-#define gaim_status_init purple_status_init
-#define gaim_status_uninit purple_status_uninit
-#define GaimStringref PurpleStringref
-#define gaim_stringref_new purple_stringref_new
-#define gaim_stringref_new_noref purple_stringref_new_noref
-#define gaim_stringref_printf purple_stringref_printf
-#define gaim_stringref_ref purple_stringref_ref
-#define gaim_stringref_unref purple_stringref_unref
-#define gaim_stringref_value purple_stringref_value
-#define gaim_stringref_cmp purple_stringref_cmp
-#define gaim_stringref_len purple_stringref_len
-#define GaimStunNatDiscovery PurpleStunNatDiscovery
-#define GAIM_STUN_STATUS_UNDISCOVERED PURPLE_STUN_STATUS_UNDISCOVERED
-#define GAIM_STUN_STATUS_UNKNOWN PURPLE_STUN_STATUS_UNKNOWN
-#define GAIM_STUN_STATUS_DISCOVERING PURPLE_STUN_STATUS_DISCOVERING
-#define GAIM_STUN_STATUS_DISCOVERED PURPLE_STUN_STATUS_DISCOVERED
-#define GaimStunStatus PurpleStunStatus
-#define GAIM_STUN_NAT_TYPE_PUBLIC_IP PURPLE_STUN_NAT_TYPE_PUBLIC_IP
-#define GAIM_STUN_NAT_TYPE_UNKNOWN_NAT PURPLE_STUN_NAT_TYPE_UNKNOWN_NAT
-#define GAIM_STUN_NAT_TYPE_FULL_CONE PURPLE_STUN_NAT_TYPE_FULL_CONE
-#define GAIM_STUN_NAT_TYPE_RESTRICTED_CONE PURPLE_STUN_NAT_TYPE_RESTRICTED_CONE
-#define GAIM_STUN_NAT_TYPE_PORT_RESTRICTED_CONE PURPLE_STUN_NAT_TYPE_PORT_RESTRICTED_CONE
-#define GAIM_STUN_NAT_TYPE_SYMMETRIC PURPLE_STUN_NAT_TYPE_SYMMETRIC
-#define GaimStunNatType PurpleStunNatType
-/* why didn't this have a Gaim prefix before? */
-#define StunCallback PurpleStunCallback
-#define gaim_stun_discover purple_stun_discover
-#define gaim_stun_init purple_stun_init
-/* suggested rename: PurpleUPnpMappingHandle */
-#define UPnPMappingAddRemove PurpleUPnPMappingAddRemove
-#define GaimUPnPCallback PurpleUPnPCallback
-#define gaim_upnp_discover purple_upnp_discover
-#define gaim_upnp_get_public_ip purple_upnp_get_public_ip
-#define gaim_upnp_cancel_port_mapping purple_upnp_cancel_port_mapping
-#define gaim_upnp_set_port_mapping purple_upnp_set_port_mapping
-#define gaim_upnp_remove_port_mapping purple_upnp_remove_port_mapping
-#define GaimUtilFetchUrlData PurpleUtilFetchUrlData
-#define GaimMenuAction PurpleMenuAction
-#define GaimInfoFieldFormatCallback PurpleIntoFieldFormatCallback
-#define GaimKeyValuePair PurpleKeyValuePair
-#define gaim_menu_action_new purple_menu_action_new
-#define gaim_menu_action_free purple_menu_action_free
-#define gaim_base16_encode purple_base16_encode
-#define gaim_base16_decode purple_base16_decode
-#define gaim_base64_encode purple_base64_encode
-#define gaim_base64_decode purple_base64_decode
-#define gaim_quotedp_decode purple_quotedp_decode
-#define gaim_mime_decode_field purple_mime_deco_field
-#define gaim_utf8_strftime purple_utf8_strftime
-#define gaim_date_format_short purple_date_format_short
-#define gaim_date_format_long purple_date_format_long
-#define gaim_date_format_full purple_date_format_full
-#define gaim_time_format purple_time_format
-#define gaim_time_build purple_time_build
-#define GAIM_NO_TZ_OFF PURPLE_NO_TZ_OFF
-#define gaim_str_to_time purple_str_to_time
-#define gaim_markup_find_tag purple_markup_find_tag
-#define gaim_markup_extract_info_field purple_markup_extract_info_field
-#define gaim_markup_html_to_xhtml purple_markup_html_to_xhtml
-#define gaim_markup_strip_html purple_markup_strip_html
-#define gaim_markup_linkify purple_markup_linkify
-#define gaim_markup_slice purple_markup_slice
-#define gaim_markup_get_tag_name purple_markup_get_tag_name
-#define gaim_unescape_html purple_unescape_html
-#define gaim_home_dir purple_home_dir
-#define gaim_user_dir purple_user_dir
-#define gaim_util_set_user_dir purple_util_set_user_dir
-#define gaim_build_dir purple_build_dir
-#define gaim_util_write_data_to_file purple_util_write_data_to_file
-#define gaim_util_read_xml_from_file purple_util_read_xml_from_file
-#define gaim_mkstemp purple_mkstemp
-#define gaim_program_is_valid purple_program_is_valid
-#define gaim_running_gnome purple_running_gnome
-#define gaim_running_kde purple_running_kde
-#define gaim_running_osx purple_running_osx
-#define gaim_fd_get_ip purple_fd_get_ip
-#define gaim_normalize purple_normalize
-#define gaim_normalize_nocase purple_normalize_nocase
-#define gaim_strdup_withhtml purple_strdup_withhtml
-#define gaim_str_has_prefix purple_str_has_prefix
-#define gaim_str_has_suffix purple_str_has_suffix
-#define gaim_str_add_cr purple_str_add_cr
-#define gaim_str_strip_char purple_str_strip_char
-#define gaim_util_chrreplace purple_util_chrreplace
-#define gaim_strreplace purple_strreplace
-#define gaim_utf8_ncr_encode purple_utf8_ncr_encode
-#define gaim_utf8_ncr_decode purple_utf8_ncr_decode
-#define gaim_strcasereplace purple_strcasereplace
-#define gaim_strcasestr purple_strcasestr
-#define gaim_str_size_to_units purple_str_size_to_units
-#define gaim_str_seconds_to_string purple_str_seconds_to_string
-#define gaim_str_binary_to_ascii purple_str_binary_to_ascii
-#define gaim_got_protocol_handler_uri purple_got_protocol_handler_uri
-#define gaim_url_parse purple_url_parse
-#define GaimUtilFetchUrlCallback PurpleUtilFetchUrlCallback
-#define gaim_util_fetch_url purple_util_fetch_url
-#define gaim_util_fetch_url_request purple_util_fetch_url_request
-#define gaim_util_fetch_url_cancel purple_util_fetch_url_cancel
-#define gaim_url_decode purple_url_decode
-#define gaim_url_encode purple_url_encode
-#define gaim_email_is_valid purple_email_is_valid
-#define gaim_uri_list_extract_uris purple_uri_list_extract_uris
-#define gaim_uri_list_extract_filenames purple_uri_list_extract_filenames
-#define gaim_utf8_try_convert purple_utf8_try_convert
-#define gaim_utf8_salvage purple_utf8_salvage
-#define gaim_utf8_strcasecmp purple_utf8_strcasecmp
-#define gaim_utf8_has_word purple_utf8_has_word
-#define gaim_print_utf8_to_console purple_print_utf8_to_console
-#define gaim_message_meify purple_message_meify
-#define gaim_text_strip_mnemonic purple_text_strip_mnemonic
-#define gaim_unescape_filename purple_unescape_filename
-#define gaim_escape_filename purple_escape_filename
-#define GAIM_TYPE_UNKNOWN PURPLE_TYPE_UNKNOWN
-#define GAIM_TYPE_SUBTYPE PURPLE_TYPE_SUBTYPE
-#define GAIM_TYPE_CHAR PURPLE_TYPE_CHAR
-#define GAIM_TYPE_UCHAR PURPLE_TYPE_UCHAR
-#define GAIM_TYPE_BOOLEAN PURPLE_TYPE_BOOLEAN
-#define GAIM_TYPE_SHORT PURPLE_TYPE_SHORT
-#define GAIM_TYPE_USHORT PURPLE_TYPE_USHORT
-#define GAIM_TYPE_INT PURPLE_TYPE_INT
-#define GAIM_TYPE_UINT PURPLE_TYPE_UINT
-#define GAIM_TYPE_LONG PURPLE_TYPE_LONG
-#define GAIM_TYPE_ULONG PURPLE_TYPE_ULONG
-#define GAIM_TYPE_INT64 PURPLE_TYPE_INT64
-#define GAIM_TYPE_UINT64 PURPLE_TYPE_UINT64
-#define GAIM_TYPE_STRING PURPLE_TYPE_STRING
-#define GAIM_TYPE_OBJECT PURPLE_TYPE_OBJECT
-#define GAIM_TYPE_POINTER PURPLE_TYPE_POINTER
-#define GAIM_TYPE_ENUM PURPLE_TYPE_ENUM
-#define GAIM_TYPE_BOXED PURPLE_TYPE_BOXED
-#define GaimType PurpleType
-#define GAIM_SUBTYPE_UNKNOWN PURPLE_SUBTYPE_UNKNOWN
-#define GAIM_SUBTYPE_ACCOUNT PURPLE_SUBTYPE_ACCOUNT
-#define GAIM_SUBTYPE_BLIST PURPLE_SUBTYPE_BLIST
-#define GAIM_SUBTYPE_BLIST_BUDDY PURPLE_SUBTYPE_BLIST_BUDDY
-#define GAIM_SUBTYPE_BLIST_GROUP PURPLE_SUBTYPE_BLIST_GROUP
-#define GAIM_SUBTYPE_BLIST_CHAT PURPLE_SUBTYPE_BLIST_CHAT
-#define GAIM_SUBTYPE_BUDDY_ICON PURPLE_SUBTYPE_BUDDY_ICON
-#define GAIM_SUBTYPE_CONNECTION PURPLE_SUBTYPE_CONNECTION
-#define GAIM_SUBTYPE_CONVERSATION PURPLE_SUBTYPE_CONVERSATION
-#define GAIM_SUBTYPE_PLUGIN PURPLE_SUBTYPE_PLUGIN
-#define GAIM_SUBTYPE_BLIST_NODE PURPLE_SUBTYPE_BLIST_NODE
-#define GAIM_SUBTYPE_CIPHER PURPLE_SUBTYPE_CIPHER
-#define GAIM_SUBTYPE_STATUS PURPLE_SUBTYPE_STATUS
-#define GAIM_SUBTYPE_LOG PURPLE_SUBTYPE_LOG
-#define GAIM_SUBTYPE_XFER PURPLE_SUBTYPE_XFER
-#define GAIM_SUBTYPE_SAVEDSTATUS PURPLE_SUBTYPE_SAVEDSTATUS
-#define GAIM_SUBTYPE_XMLNODE PURPLE_SUBTYPE_XMLNODE
-#define GAIM_SUBTYPE_USERINFO PURPLE_SUBTYPE_USERINFO
-#define GaimSubType PurpleSubType
-#define GaimValue PurpleValue
-#define gaim_value_new purple_value_new
-#define gaim_value_new_outgoing purple_value_new_outgoing
-#define gaim_value_destroy purple_value_destroy
-#define gaim_value_dup purple_value_dup
-#define gaim_value_purple_buddy_icon_get_extensionget_type purple_value_get_type
-#define gaim_value_get_subtype purple_value_get_subtype
-#define gaim_value_get_specific_type purple_value_get_specific_type
-#define gaim_value_is_outgoing purple_value_is_outgoing
-#define gaim_value_set_char purple_value_set_char
-#define gaim_value_set_uchar purple_value_set_uchar
-#define gaim_value_set_boolean purple_value_set_boolean
-#define gaim_value_set_short purple_value_set_short
-#define gaim_value_set_ushort purple_value_set_ushort
-#define gaim_value_set_int purple_value_set_int
-#define gaim_value_set_uint purple_value_set_uint
-#define gaim_value_set_long purple_value_set_long
-#define gaim_value_set_ulong purple_value_set_ulong
-#define gaim_value_set_int64 purple_value_set_int64
-#define gaim_value_set_uint64 purple_value_set_uint64
-#define gaim_value_set_string purple_value_set_string
-#define gaim_value_set_object purple_value_set_object
-#define gaim_value_set_pointer purple_value_set_pointer
-#define gaim_value_set_enum purple_value_set_enum
-#define gaim_value_set_boxed purple_value_set_boxed
-#define gaim_value_get_char purple_value_get_char
-#define gaim_value_get_uchar purple_value_get_uchar
-#define gaim_value_get_boolean purple_value_get_boolean
-#define gaim_value_get_short purple_value_get_short
-#define gaim_value_get_ushort purple_value_get_ushort
-#define gaim_value_get_int purple_value_get_int
-#define gaim_value_get_uint purple_value_get_uint
-#define gaim_value_get_long purple_value_get_long
-#define gaim_value_get_ulong purple_value_get_ulong
-#define gaim_value_get_int64 purple_value_get_int64
-#define gaim_value_get_uint64 purple_value_get_uint64
-#define gaim_value_get_string purple_value_get_string
-#define gaim_value_get_object purple_value_get_object
-#define gaim_value_get_pointer purple_value_get_pointer
-#define gaim_value_get_enum purple_value_get_enum
-#define gaim_value_get_boxed purple_value_get_boxed
-#define GAIM_MAJOR_VERSION PURPLE_MAJOR_VERSION
-#define GAIM_MINOR_VERSION PURPLE_MINOR_VERSION
-#define GAIM_MICRO_VERSION PURPLE_MICRO_VERSION
-#define GAIM_VERSION_CHECK PURPLE_VERSION_CHECK
-#define GaimWhiteboardPrplOps PurpleWhiteboardPrplOps
-#define GaimWhiteboard PurpleWhiteboard
-#define GaimWhiteboardUiOps PurpleWhiteboardUiOps
-#define gaim_whiteboard_set_ui_ops purple_whiteboard_set_ui_ops
-#define gaim_whiteboard_set_prpl_ops purple_whiteboard_set_prpl_ops
-#define gaim_whiteboard_create purple_whiteboard_create
-#define gaim_whiteboard_destroy purple_whiteboard_destroy
-#define gaim_whiteboard_start purple_whiteboard_start
-#define gaim_whiteboard_get_session purple_whiteboard_get_session
-#define gaim_whiteboard_draw_list_destroy purple_whiteboard_draw_list_destroy
-#define gaim_whiteboard_get_dimensions purple_whiteboard_get_dimensions
-#define gaim_whiteboard_set_dimensions purple_whiteboard_set_dimensions
-#define gaim_whiteboard_draw_point purple_whiteboard_draw_point
-#define gaim_whiteboard_send_draw_list purple_whiteboard_send_draw_list
-#define gaim_whiteboard_draw_line purple_whiteboard_draw_line
-#define gaim_whiteboard_clear purple_whiteboard_clear
-#define gaim_whiteboard_send_clear purple_whiteboard_send_clear
-#define gaim_whiteboard_send_brush purple_whiteboard_send_brush
-#define gaim_whiteboard_get_brush purple_whiteboard_get_brush
-#define gaim_whiteboard_set_brush purple_whiteboard_set_brush
-/* for static plugins */
-#define gaim_init_ssl_plugin purple_init_ssl_plugin
-#define gaim_init_ssl_openssl_plugin purple_init_ssl_openssl_plugin
-#define gaim_init_ssl_gnutls_plugin purple_init_ssl_gnutls_plugin
-#define gaim_init_gg_plugin purple_init_gg_plugin
-#define gaim_init_jabber_plugin purple_init_jabber_plugin
-#define gaim_init_sametime_plugin purple_init_sametime_plugin
-#define gaim_init_msn_plugin purple_init_msn_plugin
-#define gaim_init_novell_plugin purple_init_novell_plugin
-#define gaim_init_qq_plugin purple_init_qq_plugin
-#define gaim_init_simple_plugin purple_init_simple_plugin
-#define gaim_init_yahoo_plugin purple_init_yahoo_plugin
-#define gaim_init_zephyr_plugin purple_init_zephyr_plugin
-#define gaim_init_aim_plugin purple_init_aim_plugin
-#define gaim_init_icq_plugin purple_init_icq_plugin
-#endif /* _GAIM_COMPAT_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/gg.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
- * Copyright (C) 2005 Bartosz Oler <bartosz@bzimage.us>
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#define PUBDIR_RESULTS_MAX 20
-typedef void (*GGPTokenCallback)(PurpleConnection *);
- struct gg_session *session;
- GList *pending_richtext_messages;
- GHashTable *pending_images;
- gboolean status_broadcasting; //When TRUE status is visible to all, when FALSE status is visible only to friends.
-#endif /* _PURPLE_GG_H */
-/* vim: set ts=8 sts=0 sw=8 noet: */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/group.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
- * @file group.h Group functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-typedef struct _MsnGroup MsnGroup;
-#define MSN_INDIVIDUALS_GROUP_ID "1983"
-#define MSN_INDIVIDUALS_GROUP_NAME _("Other Contacts")
-#define MSN_NON_IM_GROUP_ID "email"
-#define MSN_NON_IM_GROUP_NAME _("Non-IM Contacts")
- MsnSession *session; /**< The MSN session. */
- char *id; /**< The group ID. */
- char *name; /**< The name of the group. */
-/**************************************************************************
- **************************************************************************/
- * Creates a new group structure.
- * @param session The MSN session.
- * @param id The group ID.
- * @param name The name of the group.
- * @return A new group structure.
-MsnGroup *msn_group_new(MsnUserList *userlist, const char *id, const char *name);
- * Destroys a group structure.
- * @param group The group to destroy.
-void msn_group_destroy(MsnGroup *group);
- * Sets the ID for a group.
- * @param group The group.
-void msn_group_set_id(MsnGroup *group, const char *id);
- * Sets the name for a group.
- * @param group The group.
- * @param name The name.
-void msn_group_set_name(MsnGroup *group, const char *name);
- * Returns the ID for a group.
- * @param group The group.
-char* msn_group_get_id(const MsnGroup *group);
- * Returns the name for a group.
- * @param group The group.
-const char *msn_group_get_name(const MsnGroup *group);
-#endif /* MSN_GROUP_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/history.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
- * @file history.h MSN history functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-typedef struct _MsnHistory MsnHistory;
-#include "transaction.h"
-#define MSN_NS_HIST_ELEMS 0x300
-#define MSN_SB_HIST_ELEMS 0x30
-MsnHistory *msn_history_new(void);
-void msn_history_destroy(MsnHistory *history);
-MsnTransaction *msn_history_find(MsnHistory *history, unsigned int triId);
-void msn_history_add(MsnHistory *history, MsnTransaction *trans);
-#endif /* MSN_HISTORY_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/httpconn.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
- * @file httpconn.h HTTP connection
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-typedef struct _MsnHttpConn MsnHttpConn;
- MsnSession *session; /**< The MSN Session. */
- MsnServConn *servconn; /**< The connection object. */
- PurpleProxyConnectData *connect_data;
- char *full_session_id; /**< The full session id. */
- char *session_id; /**< The trimmed session id. */
- int timer; /**< The timer for polling. */
- gboolean waiting_response; /**< The flag that states if we are waiting
- a response from the server. */
- gboolean connected; /**< The flag that states if the connection is on. */
- gboolean virgin; /**< The flag that states if this connection
- should specify the host (not gateway) to
- char *host; /**< The HTTP gateway host. */
- GList *queue; /**< The queue of data chunks to write. */
- int fd; /**< The connection's file descriptor. */
- guint inpa; /**< The connection's input handler. */
- char *rx_buf; /**< The receive buffer. */
- int rx_len; /**< The receive buffer length. */
- PurpleCircBuffer *tx_buf;
- * Creates a new HTTP connection object.
- * @param servconn The connection object.
- * @return The new object.
-MsnHttpConn *msn_httpconn_new(MsnServConn *servconn);
- * Destroys an HTTP connection object.
- * @param httpconn The HTTP connection object.
-void msn_httpconn_destroy(MsnHttpConn *httpconn);
- * Writes a chunk of data to the HTTP connection.
- * @param servconn The server connection.
- * @param data The data to write.
- * @param data_len The size of the data to write.
- * @return The number of bytes written.
-gssize msn_httpconn_write(MsnHttpConn *httpconn, const char *data, size_t data_len);
- * Connects the HTTP connection object to a host.
- * @param httpconn The HTTP connection object.
- * @param host The host to connect to.
- * @param port The port to connect to.
-gboolean msn_httpconn_connect(MsnHttpConn *httpconn,
- const char *host, int port);
- * Disconnects the HTTP connection object.
- * @param httpconn The HTTP connection object.
-void msn_httpconn_disconnect(MsnHttpConn *httpconn);
-#endif /* MSN_HTTPCONN_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/idle.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
- * @file idle.h Idle API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
- time_t (*get_time_idle)(void);
- void (*_purple_reserved1)(void);
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
- void (*_purple_reserved4)(void);
-/**************************************************************************/
-/**************************************************************************/
- * Touch our idle tracker. This signifies that the user is
- * 'active'. The conversation code calls this when the
- * user sends an IM, for example.
-void purple_idle_touch(void);
- * Fake our idle time by setting the time at which our
- * accounts purportedly became idle. This is used by
- * the I'dle Mak'er plugin.
-void purple_idle_set(time_t time);
-/**************************************************************************/
-/** @name Idle Subsystem */
-/**************************************************************************/
- * Sets the UI operations structure to be used for idle reporting.
- * @param ops The UI operations structure.
-void purple_idle_set_ui_ops(PurpleIdleUiOps *ops);
- * Returns the UI operations structure used for idle reporting.
- * @return The UI operations structure in use.
-PurpleIdleUiOps *purple_idle_get_ui_ops(void);
- * Initializes the idle system.
-void purple_idle_init(void);
- * Uninitializes the idle system.
-void purple_idle_uninit(void);
-#endif /* _PURPLE_IDLE_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/imgstore.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,214 +0,0 @@
- * @file imgstore.h IM Image Store API
- * @see @ref imgstore-signals
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_IMGSTORE_H_
-#define _PURPLE_IMGSTORE_H_
-/** A reference-counted immutable wrapper around an image's data and its
-typedef struct _PurpleStoredImage PurpleStoredImage;
- * Add an image to the store.
- * The caller owns a reference to the image in the store, and must dereference
- * the image with purple_imgstore_unref() for it to be freed.
- * No ID is allocated when using this function. If you need to reference the
- * image by an ID, use purple_imgstore_add_with_id() instead.
- * @param data Pointer to the image data, which the imgstore will take
- * ownership of and free as appropriate. If you want a
- * copy of the data, make it before calling this function.
- * @param size Image data's size.
- * @param filename Filename associated with image. This is for your
- * convenience. It could be the full path to the
- * image or, more commonly, the filename of the image
- * without any directory information. It can also be
- * NULL, if you don't need to keep track of a filename.
- * @return The stored image.
-purple_imgstore_add(gpointer data, size_t size, const char *filename);
- * Create an image and add it to the store.
- * @param path The path to the image.
- * @return The stored image.
-purple_imgstore_new_from_file(const char *path);
- * Add an image to the store, allocating an ID.
- * The caller owns a reference to the image in the store, and must dereference
- * the image with purple_imgstore_unref_by_id() or purple_imgstore_unref()
- * @param data Pointer to the image data, which the imgstore will take
- * ownership of and free as appropriate. If you want a
- * copy of the data, make it before calling this function.
- * @param size Image data's size.
- * @param filename Filename associated with image. This is for your
- * convenience. It could be the full path to the
- * image or, more commonly, the filename of the image
- * without any directory information. It can also be
- * NULL, if you don't need to keep track of a filename.
- * @return ID for the image. This is a unique number that can be used
- * within libpurple to reference the image.
-int purple_imgstore_add_with_id(gpointer data, size_t size, const char *filename);
- * Retrieve an image from the store. The caller does not own a
- * reference to the image.
- * @param id The ID for the image.
- * @return A pointer to the requested image, or NULL if it was not found.
-PurpleStoredImage *purple_imgstore_find_by_id(int id);
- * Retrieves a pointer to the image's data.
- * @return A pointer to the data, which must not
- * be freed or modified.
-gconstpointer purple_imgstore_get_data(PurpleStoredImage *img);
- * Retrieves the length of the image's data.
- * @return The size of the data that the pointer returned by
- * purple_imgstore_get_data points to.
-size_t purple_imgstore_get_size(PurpleStoredImage *img);
- * Retrieves a pointer to the image's filename.
- * @return A pointer to the filename, which must not
- * be freed or modified.
-const char *purple_imgstore_get_filename(const PurpleStoredImage *img);
- * Looks at the magic numbers of the image data (the first few bytes)
- * and returns an extension corresponding to the image's file type.
- * @param img The image.
- * @return The image's extension (for example "png") or "icon"
-const char *purple_imgstore_get_extension(PurpleStoredImage *img);
- * Increment the reference count.
- * @param img The image.
-purple_imgstore_ref(PurpleStoredImage *img);
- * Decrement the reference count.
- * If the reference count reaches zero, the image will be freed.
- * @param img The image.
- * @return @a img or @c NULL if the reference count reached zero.
-purple_imgstore_unref(PurpleStoredImage *img);
- * Increment the reference count using an ID.
- * This is a convience wrapper for purple_imgstore_find_by_id() and
- * purple_imgstore_ref(), so if you have a PurpleStoredImage, it'll
- * be more efficient to call purple_imgstore_ref() directly.
- * @param id The ID for the image.
-void purple_imgstore_ref_by_id(int id);
- * Decrement the reference count using an ID.
- * This is a convience wrapper for purple_imgstore_find_by_id() and
- * purple_imgstore_unref(), so if you have a PurpleStoredImage, it'll
- * be more efficient to call purple_imgstore_unref() directly.
- * @param id The ID for the image.
-void purple_imgstore_unref_by_id(int id);
- * Returns the image store subsystem handle.
- * @return The subsystem handle.
-void *purple_imgstore_get_handle(void);
- * Initializes the image store subsystem.
-void purple_imgstore_init(void);
- * Uninitializes the image store subsystem.
-void purple_imgstore_uninit(void);
-#endif /* _PURPLE_IMGSTORE_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/internal.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,229 +0,0 @@
- * @file internal.h Internal definitions and includes
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_INTERNAL_H_
-#define _PURPLE_INTERNAL_H_
-/* for SIOCGIFCONF in SKYOS */
-#include <net/sockios.h>
- * If we're using NLS, make sure gettext works. If not, then define
- * dummy macros in place of the normal gettext macros.
- * Also, the perl XS config.h file sometimes defines _ So we need to
- * make sure _ isn't already defined before trying to define it.
- * The Singular/Plural/Number ngettext dummy definition below was
- * taken from an email to the texinfo mailing list by Manuel Guerrero.
- * Thank you Manuel, and thank you Alex's good friend Google.
-# define _(String) ((const char *)dgettext(PACKAGE, String))
-# define N_(String) gettext_noop (String)
-# define N_(String) (String)
-# define N_(String) (String)
-# define _(String) ((const char *)String)
-# define ngettext(Singular, Plural, Number) ((Number == 1) ? ((const char *)Singular) : ((const char *)Plural))
-# define dngettext(Domain, Singular, Plural, Number) ((Number == 1) ? ((const char *)Singular) : ((const char *)Plural))
-/* The above should normally be the same as BUF_LEN,
- * but just so we're explicitly asking for the max message
-#define BUF_LONG BUF_LEN * 2
-#ifdef HAVE_LANGINFO_CODESET
-# include <netinet/in.h>
-# include <sys/socket.h>
-# include <sys/utsname.h>
-# define HOST_NAME_MAX 255
-/* This wasn't introduced until Glib 2.14 :( */
-# if GLIB_SIZEOF_LONG == 8
-# define G_MAXSSIZE ((gssize) 0x7fffffffffffffff)
-# define G_MAXSSIZE ((gssize) 0x7fffffff)
-#include <glib/gstdio.h>
-# define PURPLE_TIME_T_MODIFIER "lu"
-#elif SIZEOF_TIME_T == 8
-# define PURPLE_TIME_T_MODIFIER "zu"
-#error Unknown size of time_t
-#include <glib-object.h>
-/* Safer ways to work with static buffers. When using non-static
- * buffers, either use g_strdup_* functions (preferred) or use
- * g_strlcpy/g_strlcpy directly. */
-#define purple_strlcpy(dest, src) g_strlcpy(dest, src, sizeof(dest))
-#define purple_strlcat(dest, src) g_strlcat(dest, src, sizeof(dest))
-#define PURPLE_WEBSITE "http://pidgin.im/"
-#define PURPLE_DEVEL_WEBSITE "http://developer.pidgin.im/"
-/* INTERNAL FUNCTIONS */
-/* This is for the accounts code to notify the buddy icon code that
- * it's done loading. We may want to replace this with a signal. */
-_purple_buddy_icons_account_loaded_cb(void);
-/* This is for the buddy list to notify the buddy icon code that
- * it's done loading. We may want to replace this with a signal. */
-_purple_buddy_icons_blist_loaded_cb(void);
-/* This is for the purple_core_migrate() code to tell the buddy
- * icon subsystem about the old icons directory so it can
- * migrate any icons in use. */
-_purple_buddy_icon_set_old_icons_dir(const char *dirname);
- * Creates a connection to the specified account and either connects
- * or attempts to register a new account. If you are logging in,
- * the connection uses the current active status for this account.
- * So if you want to sign on as "away," for example, you need to
- * have called purple_account_set_status(account, "away").
- * (And this will call purple_account_connect() automatically).
- * @note This function should only be called by purple_account_connect()
- * in account.c. If you're trying to sign on an account, use that
- * @param account The account the connection should be connecting to.
- * @param regist Whether we are registering a new account or just
- * trying to do a normal signon.
- * @param password The password to use.
-void _purple_connection_new(PurpleAccount *account, gboolean regist,
- * Tries to unregister the account on the server. If the account is not
- * connected, also creates a new connection.
- * @note This function should only be called by purple_account_unregister()
- * @param account The account to unregister
- * @param password The password to use.
- * @param cb Optional callback to be called when unregistration is complete
- * @param user_data user data to pass to the callback
-void _purple_connection_new_unregister(PurpleAccount *account, const char *password,
- PurpleAccountUnregistrationCb cb, void *user_data);
- * Disconnects and destroys a PurpleConnection.
- * @note This function should only be called by purple_account_disconnect()
- * in account.c. If you're trying to sign off an account, use that
- * @param gc The purple connection to destroy.
-void _purple_connection_destroy(PurpleConnection *gc);
-#endif /* _PURPLE_INTERNAL_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/iq.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
- * @file iq.h JabberID handlers
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef PURPLE_JABBER_IQ_H_
-#define PURPLE_JABBER_IQ_H_
-typedef struct _JabberIq JabberIq;
- * A JabberIqHandler is called to process an incoming IQ stanza.
- * Handlers typically process unsolicited incoming GETs or SETs for their
- * registered namespace, but may be called to handle the results of a
- * GET or SET that we generated if no JabberIqCallback was generated
- * The handler may be called for the results of a GET or SET (RESULT or ERROR)
- * if the generating function did not register a JabberIqCallback.
- * @param js The JabberStream object.
- * @param from The remote entity (the from attribute on the <iq/> stanza)
- * @param type The IQ type.
- * @param id The IQ id (the id attribute on the <iq/> stanza)
- * @param child The child element of the <iq/> stanza that matches the name
- * and namespace registered with jabber_iq_register_handler.
- * @see jabber_iq_register_handler()
- * @see JabberIqCallback
-typedef void (JabberIqHandler)(JabberStream *js, const char *from,
- JabberIqType type, const char *id,
- * A JabberIqCallback is called to process the results of a GET or SET that
- * we send to a remote entity. The callback is matched based on the id
- * of the incoming stanza (which matches the one on the initial stanza).
- * @param js The JabberStream object.
- * @param from The remote entity (the from attribute on the <iq/> stanza)
- * @param type The IQ type. The only possible values are JABBER_IQ_RESULT
- * @param id The IQ id (the id attribute on the <iq/> stanza)
- * @param packet The <iq/> stanza
- * @param data The callback data passed to jabber_iq_set_callback()
- * @see jabber_iq_set_callback()
-typedef void (JabberIqCallback)(JabberStream *js, const char *from,
- JabberIqType type, const char *id,
- xmlnode *packet, gpointer data);
- JabberIqCallback *callback;
- gpointer callback_data;
-JabberIq *jabber_iq_new(JabberStream *js, JabberIqType type);
-JabberIq *jabber_iq_new_query(JabberStream *js, JabberIqType type,
-void jabber_iq_parse(JabberStream *js, xmlnode *packet);
-void jabber_iq_remove_callback_by_id(JabberStream *js, const char *id);
-void jabber_iq_set_callback(JabberIq *iq, JabberIqCallback *cb, gpointer data);
-void jabber_iq_set_id(JabberIq *iq, const char *id);
-void jabber_iq_send(JabberIq *iq);
-void jabber_iq_free(JabberIq *iq);
-void jabber_iq_init(void);
-void jabber_iq_uninit(void);
-void jabber_iq_register_handler(const char *node, const char *xmlns,
- JabberIqHandler *func);
-/* Connected to namespace-handler registration signals */
-void jabber_iq_signal_register(const gchar *node, const gchar *xmlns);
-void jabber_iq_signal_unregister(const gchar *node, const gchar *xmlns);
-#endif /* PURPLE_JABBER_IQ_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/irc.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,206 +0,0 @@
- * Copyright (C) 2003, Ethan Blanton <eblanton@cs.purdue.edu>
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#define IRC_DEFAULT_SERVER "irc.freenode.net"
-#define IRC_DEFAULT_PORT 6667
-#define IRC_DEFAULT_SSL_PORT 994
-#define IRC_DEFAULT_CHARSET "UTF-8"
-#define IRC_DEFAULT_AUTODETECT FALSE
-#define IRC_DEFAULT_ALIAS "purple"
-#define IRC_DEFAULT_QUIT "Leaving."
-#define IRC_INITIAL_BUFSIZE 1024
-#define IRC_NAMES_FLAG "irc-namelist"
-enum { IRC_USEROPT_SERVER, IRC_USEROPT_PORT, IRC_USEROPT_CHARSET };
-enum irc_state { IRC_STATE_NEW, IRC_STATE_ESTABLISHED };
- PurpleAccount *account;
- guint who_channel_timer;
- gboolean ison_outstanding;
- GList *buddies_outstanding;
- PurpleRoomlist *roomlist;
- PurpleSslConnection *gsc;
- PurpleCircBuffer *outbuf;
- gboolean new_online_status;
-typedef int (*IRCCmdCallback) (struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_send(struct irc_conn *irc, const char *buf);
-int irc_send_len(struct irc_conn *irc, const char *buf, int len);
-gboolean irc_blist_timeout(struct irc_conn *irc);
-gboolean irc_who_channel_timeout(struct irc_conn *irc);
-void irc_buddy_query(struct irc_conn *irc);
-char *irc_escape_privmsg(const char *text, gssize length);
-char *irc_mirc2html(const char *string);
-char *irc_mirc2txt(const char *string);
-const char *irc_nick_skip_mode(struct irc_conn *irc, const char *string);
-gboolean irc_ischannel(const char *string);
-void irc_register_commands(void);
-void irc_msg_table_build(struct irc_conn *irc);
-void irc_parse_msg(struct irc_conn *irc, char *input);
-char *irc_parse_ctcp(struct irc_conn *irc, const char *from, const char *to, const char *msg, int notice);
-char *irc_format(struct irc_conn *irc, const char *format, ...);
-void irc_msg_default(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_away(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_badmode(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_badnick(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_ban(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_banfull(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_banned(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_chanmode(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_endwhois(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_features(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_invite(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_inviteonly(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_ison(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_join(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_kick(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_list(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_luser(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_mode(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_motd(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_names(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_nick(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_nickused(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_nochan(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_nonick(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_nochangenick(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_nosend(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_notice(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_notinchan(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_notop(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_part(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_ping(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_pong(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_privmsg(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_quit(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_regonly(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_time(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_topic(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_unavailable(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_unknown(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_wallops(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_whois(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_who(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_msg_ignore(struct irc_conn *irc, const char *name, const char *from, char **args);
-void irc_cmd_table_build(struct irc_conn *irc);
-int irc_cmd_default(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_cmd_away(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_cmd_ctcp(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_cmd_ctcp_action(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_cmd_ctcp_version(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_cmd_invite(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_cmd_join(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_cmd_kick(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_cmd_list(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_cmd_mode(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_cmd_names(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_cmd_nick(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_cmd_op(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_cmd_privmsg(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_cmd_part(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_cmd_ping(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_cmd_quit(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_cmd_quote(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_cmd_query(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_cmd_remove(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_cmd_service(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_cmd_time(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_cmd_topic(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_cmd_wallops(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_cmd_whois(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-int irc_cmd_whowas(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
-PurpleXfer *irc_dccsend_new_xfer(PurpleConnection *gc, const char *who);
-void irc_dccsend_send_file(PurpleConnection *gc, const char *who, const char *file);
-void irc_dccsend_recv(struct irc_conn *irc, const char *from, const char *msg);
-#endif /* _PURPLE_IRC_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/jabber.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,423 +0,0 @@
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef PURPLE_JABBER_H_
-#define PURPLE_JABBER_H_
-/* JABBER_CAP_XHTML = 1 << 0, */
-/* JABBER_CAP_COMPOSING = 1 << 1, */
- JABBER_CAP_SI = 1 << 2,
- JABBER_CAP_SI_FILE_XFER = 1 << 3,
- JABBER_CAP_BYTESTREAMS = 1 << 4,
- JABBER_CAP_IBB = 1 << 5,
- JABBER_CAP_CHAT_STATES = 1 << 6,
- JABBER_CAP_IQ_SEARCH = 1 << 7,
- JABBER_CAP_IQ_REGISTER = 1 << 8,
- /* Google Talk extensions:
- * http://code.google.com/apis/talk/jep_extensions/extensions.html
- JABBER_CAP_GMAIL_NOTIFY = 1 << 9,
- JABBER_CAP_GOOGLE_ROSTER = 1 << 10,
- JABBER_CAP_PING = 1 << 11,
- JABBER_CAP_ADHOC = 1 << 12,
- JABBER_CAP_BLOCKING = 1 << 13,
- JABBER_CAP_ITEMS = 1 << 14,
- JABBER_CAP_ROSTER_VERSIONING = 1 << 15,
- JABBER_CAP_RETRIEVED = 1 << 31
-typedef struct _JabberStream JabberStream;
-#include <libxml/parser.h>
-#include "mediamanager.h"
-#define CAPS0115_NODE "http://pidgin.im/"
-#define JABBER_DEFAULT_REQUIRE_TLS "require_starttls"
-#define JABBER_DEFAULT_FT_PROXIES "proxy.eu.jabber.org"
-/* Index into attention_types list */
- JABBER_STREAM_CONNECTING,
- JABBER_STREAM_INITIALIZING,
- JABBER_STREAM_INITIALIZING_ENCRYPTION,
- JABBER_STREAM_AUTHENTICATING,
- JABBER_STREAM_POST_AUTH,
- JABBER_STREAM_CONNECTED
- PurpleSrvTxtQueryData *srv_query_data;
- xmlParserCtxt *context;
- JabberSaslMech *auth_mech;
- gpointer auth_mech_data;
- * The header from the opening <stream/> tag. This being NULL is treated
- * as a special condition in the parsing code (signifying the next
- * stanza started is an opening stream tag), and its being missing on
- * the stream header is treated as a fatal error.
- JabberStreamState state;
- * This boolean was added to eliminate a heinous bug where we would
- * get into a loop with the server and move a buddy back and forth
- * from one group to another.
- * The sequence goes something like this:
- * 1. Our resource and another resource both approve an authorization
- * request at the exact same time. We put the buddy in group A and
- * the other resource put the buddy in group B.
- * 2. The server receives the roster add for group B and sends us a
- * 3. We receive this roster push and modify our local blist. This
- * triggers us to send a roster add for group B.
- * 4. The server recieves our earlier roster add for group A and sends
- * 5. We receive this roster push and modify our local blist. This
- * triggers us to send a roster add for group A.
- * 6. The server receives our earlier roster add for group B and sends
- * (repeat steps 3 through 6 ad infinitum)
- * This boolean is used to short-circuit the sending of a roster add
- * when we receive a roster push.
- * See these bug reports:
- * http://trac.adiumx.com/ticket/8834
- * http://developer.pidgin.im/ticket/5484
- * http://developer.pidgin.im/ticket/6188
- gboolean currently_parsing_roster_push;
- PurpleRoomlist *roomlist;
- GList *user_directories;
- GHashTable *iq_callbacks;
- GList *oob_file_transfers;
- /** When we last pinged the server, so we don't ping more
- * often than once every minute.
- PurpleSslConnection *gsc;
- char *initial_avatar_hash;
- GSList *pending_avatar_requests;
- GSList *pending_buddy_info_requests;
- PurpleCircBuffer *write_buffer;
- JabberCapabilities server_caps;
- sasl_callback_t *sasl_cb;
- sasl_secret_t *sasl_secret;
- const char *current_mech;
- gboolean unregistration;
- PurpleAccountUnregistrationCb unregistration_cb;
- void *unregistration_user_data;
- gboolean vcard_fetched;
- /* Timer at login to push updated avatar */
- /* Entity Capabilities hash */
- /* does the local server support PEP? */
- /* A list of JabberAdHocCommands supported by the server */
- /* last presence update to check for differences */
- JabberBuddyState old_state;
- /* same for user tune */
- /* A purple timeout tag for the keepalive */
- guint keepalive_timeout;
- guint inactivity_timer;
- PurpleSrvResponse *srv_rec;
- PurpleBOSHConnection *bosh;
- * This linked list contains PurpleUtilFetchUrlData structs
- * for when we lookup buddy icons from a url
- /* keep a hash table of JingleSessions */
- /* maybe this should only be present when USE_VV? */
- PurpleDnsQueryData *stun_query;
- /* stuff for Google's relay handling */
- gchar *google_relay_token;
- gchar *google_relay_host;
- GList *google_relay_requests; /* the HTTP requests to get */
-typedef gboolean (JabberFeatureEnabled)(JabberStream *js, const gchar *namespace);
-typedef struct _JabberFeature
- JabberFeatureEnabled *is_enabled;
-typedef struct _JabberIdentity
-typedef struct _JabberBytestreamsStreamhost {
-} JabberBytestreamsStreamhost;
-/* what kind of additional features as returned from disco#info are supported? */
-extern GList *jabber_features;
-/* A sorted list of identities advertised. Use jabber_add_identity to add
- * so it remains sorted.
-extern GList *jabber_identities;
-void jabber_stream_features_parse(JabberStream *js, xmlnode *packet);
-void jabber_process_packet(JabberStream *js, xmlnode **packet);
-void jabber_send(JabberStream *js, xmlnode *data);
-void jabber_send_raw(JabberStream *js, const char *data, int len);
-void jabber_send_signal_cb(PurpleConnection *pc, xmlnode **packet,
-void jabber_stream_set_state(JabberStream *js, JabberStreamState state);
-void jabber_register_parse(JabberStream *js, const char *from,
- JabberIqType type, const char *id, xmlnode *query);
-void jabber_register_start(JabberStream *js);
-char *jabber_get_next_id(JabberStream *js);
-/** Parse an error into a human-readable string and optionally a disconnect
- * @param js the stream on which the error occurred.
- * @param packet the error packet
- * @param reason where to store the disconnection reason, or @c NULL if you
- * don't care or you don't intend to close the connection.
-char *jabber_parse_error(JabberStream *js, xmlnode *packet, PurpleConnectionError *reason);
- * Add a feature to the list of features advertised via disco#info. If you
- * call this while accounts are connected, Bad Things(TM) will happen because
- * the Entity Caps hash will be out-of-date (which should be fixed :/)
- * @param namespace The namespace of the feature
- * @param cb A callback determining whether or not this feature
- * will advertised; may be NULL.
-void jabber_add_feature(const gchar *namespace, JabberFeatureEnabled cb);
-void jabber_remove_feature(const gchar *namespace);
-/** Adds an identity to this jabber library instance. For list of valid values
- * visit the website of the XMPP Registrar
- * (http://www.xmpp.org/registrar/disco-categories.html#client).
- * Like with jabber_add_feature, if you call this while accounts are connected,
- * Bad Things will happen.
- * @param category the category of the identity.
- * @param type the type of the identity.
- * @param language the language localization of the name. Can be NULL.
- * @param name the name of the identity.
-void jabber_add_identity(const gchar *category, const gchar *type, const gchar *lang, const gchar *name);
- * GCompareFunc for JabberIdentity structs.
-gint jabber_identity_compare(gconstpointer a, gconstpointer b);
- * Returns true if this connection is over a secure (SSL) stream. Use this
- * instead of checking js->gsc because BOSH stores its PurpleSslConnection
- * members in its own data structure.
-gboolean jabber_stream_is_ssl(JabberStream *js);
- * Restart the "we haven't sent anything in a while and should send
- * something or the server will kick us off" timer (obviously
- * called when sending something. It's exposed for BOSH.)
-void jabber_stream_restart_inactivity_timer(JabberStream *js);
-const char *jabber_list_icon(PurpleAccount *a, PurpleBuddy *b);
-const char* jabber_list_emblem(PurpleBuddy *b);
-char *jabber_status_text(PurpleBuddy *b);
-void jabber_tooltip_text(PurpleBuddy *b, PurpleNotifyUserInfo *user_info, gboolean full);
-GList *jabber_status_types(PurpleAccount *account);
-void jabber_login(PurpleAccount *account);
-void jabber_close(PurpleConnection *gc);
-void jabber_idle_set(PurpleConnection *gc, int idle);
-void jabber_blocklist_parse_push(JabberStream *js, const char *from,
- JabberIqType type, const char *id,
-void jabber_request_block_list(JabberStream *js);
-void jabber_add_deny(PurpleConnection *gc, const char *who);
-void jabber_rem_deny(PurpleConnection *gc, const char *who);
-void jabber_keepalive(PurpleConnection *gc);
-void jabber_register_gateway(JabberStream *js, const char *gateway);
-void jabber_register_account(PurpleAccount *account);
-void jabber_unregister_account(PurpleAccount *account, PurpleAccountUnregistrationCb cb, void *user_data);
-gboolean jabber_send_attention(PurpleConnection *gc, const char *username, guint code);
-GList *jabber_attention_types(PurpleAccount *account);
-void jabber_convo_closed(PurpleConnection *gc, const char *who);
-PurpleChat *jabber_find_blist_chat(PurpleAccount *account, const char *name);
-gboolean jabber_offline_message(const PurpleBuddy *buddy);
-int jabber_prpl_send_raw(PurpleConnection *gc, const char *buf, int len);
-GList *jabber_actions(PurplePlugin *plugin, gpointer context);
-gboolean jabber_audio_enabled(JabberStream *js, const char *unused);
-gboolean jabber_video_enabled(JabberStream *js, const char *unused);
-gboolean jabber_initiate_media(PurpleAccount *account, const char *who,
- PurpleMediaSessionType type);
-PurpleMediaCaps jabber_get_media_caps(PurpleAccount *account, const char *who);
-gboolean jabber_can_receive_file(PurpleConnection *gc, const gchar *who);
-void jabber_plugin_init(PurplePlugin *plugin);
-void jabber_plugin_uninit(PurplePlugin *plugin);
-#endif /* PURPLE_JABBER_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/jutil.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
- * @file jutil.h utility functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef PURPLE_JABBER_JUTIL_H_
-#define PURPLE_JABBER_JUTIL_H_
-typedef struct _JabberID {
- JABBER_BUDDY_STATE_UNKNOWN = -2,
- JABBER_BUDDY_STATE_ERROR = -1,
- JABBER_BUDDY_STATE_UNAVAILABLE = 0,
- JABBER_BUDDY_STATE_ONLINE,
- JABBER_BUDDY_STATE_CHAT,
- JABBER_BUDDY_STATE_AWAY,
-JabberID* jabber_id_new(const char *str);
-void jabber_id_free(JabberID *jid);
-char *jabber_get_domain(const char *jid);
-char *jabber_get_resource(const char *jid);
-char *jabber_get_bare_jid(const char *jid);
-char *jabber_id_get_bare_jid(const JabberID *jid);
-gboolean jabber_jid_is_domain(const char *jid);
-const char *jabber_normalize(const PurpleAccount *account, const char *in);
-/* Returns true if JID is the bare JID of our server. */
-gboolean jabber_is_own_server(JabberStream *js, const char *jid);
-/* Returns true if JID is the bare JID of our account. */
-gboolean jabber_is_own_account(JabberStream *js, const char *jid);
-gboolean jabber_nodeprep_validate(const char *);
-gboolean jabber_domain_validate(const char *);
-gboolean jabber_resourceprep_validate(const char *);
- * Apply the SASLprep profile of stringprep to the string passed in.
- * @returns A newly allocated string containing the normalized version
- * of the input, or NULL if an error occurred (the string could
-char *jabber_saslprep(const char *);
-/* state -> readable name */
-const char *jabber_buddy_state_get_name(JabberBuddyState state);
-const char *jabber_buddy_state_get_status_id(JabberBuddyState state);
-/* state -> show attr (for presence stanza) */
-const char *jabber_buddy_state_get_show(JabberBuddyState state);
-JabberBuddyState jabber_buddy_status_id_get_state(const char *id);
-/* show attr (presence stanza) -> state */
-JabberBuddyState jabber_buddy_show_get_state(const char *id);
-char *jabber_calculate_data_hash(gconstpointer data, size_t len,
- const gchar *hash_algo);
-#endif /* PURPLE_JABBER_JUTIL_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/libgadu.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2319 +0,0 @@
-/* $Id: libgadu.h.in 1105 2011-05-25 21:34:50Z wojtekka $ */
- * (C) Copyright 2001-2009 Wojtek Kaniewski <wojtekka@irc.pl>
- * Robert J. Woźny <speedy@ziew.org>
- * Arkadiusz Miśkiewicz <arekm@pld-linux.org>
- * Tomasz Chiliński <chilek@chilan.com>
- * Piotr Wysocki <wysek@linux.bydg.org>
- * Dawid Jarosz <dawjar@poczta.onet.pl>
- * Jakub Zawadzki <darkjames@darkjames.ath.cx>
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License Version
- * 2.1 as published by the Free Software Foundation.
- * 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 Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307,
- * \brief Główny plik nagłówkowy biblioteki
-/* Defined if libgadu was compiled for bigendian machine. */
-#undef GG_CONFIG_BIGENDIAN
-/* Defined if this machine has gethostbyname_r(). */
-#undef GG_CONFIG_HAVE_GETHOSTBYNAME_R
-/* Defined if libgadu was compiled and linked with pthread support. */
-#undef GG_CONFIG_HAVE_PTHREAD
-/* Defined if pthread resolver is the default one. */
-#undef GG_CONFIG_PTHREAD_DEFAULT
-/* Defined if this machine has C99-compiliant vsnprintf(). */
-#undef GG_CONFIG_HAVE_C99_VSNPRINTF
-/* Defined if this machine has va_copy(). */
-#undef GG_CONFIG_HAVE_VA_COPY
-/* Defined if this machine has __va_copy(). */
-#undef GG_CONFIG_HAVE___VA_COPY
-/* Defined if this machine supports long long. */
-#undef GG_CONFIG_HAVE_LONG_LONG
-/* Defined if libgadu was compiled and linked with GnuTLS support. */
-#undef GG_CONFIG_HAVE_GNUTLS
-/* Defined if libgadu was compiled and linked with OpenSSL support. */
-#undef GG_CONFIG_HAVE_OPENSSL
-/* Defined if libgadu was compiled and linked with zlib support. */
-#undef GG_CONFIG_HAVE_ZLIB
-/* Defined if uintX_t types are defined in <stdint.h>. */
-#undef GG_CONFIG_HAVE_STDINT_H
-/* Defined if uintX_t types are defined in <inttypes.h>. */
-#undef GG_CONFIG_HAVE_INTTYPES_H
-/* Defined if uintX_t types are defined in <sys/inttypes.h>. */
-#undef GG_CONFIG_HAVE_SYS_INTTYPES_H
-/* Defined if uintX_t types are defined in <sys/int_types.h>. */
-#undef GG_CONFIG_HAVE_SYS_INT_TYPES_H
-/* Defined if uintX_t types are defined in <sys/types.h>. */
-#undef GG_CONFIG_HAVE_SYS_TYPES_H
-#ifdef GG_CONFIG_HAVE_OPENSSL
-#include <openssl/ssl.h>
-#ifdef GG_CONFIG_HAVE_STDINT_H
-# ifdef GG_CONFIG_HAVE_INTTYPES_H
-# ifdef GG_CONFIG_HAVE_SYS_INTTYPES_H
-# include <sys/inttypes.h>
-# ifdef GG_CONFIG_HAVE_SYS_INT_TYPES_H
-# include <sys/int_types.h>
-# ifdef GG_CONFIG_HAVE_SYS_TYPES_H
-/* ISO C 9X: 7.18 Integer types <stdint.h> */
-typedef unsigned char uint8_t;
-typedef unsigned short uint16_t;
-typedef unsigned int uint32_t;
-#if !defined(__CYGWIN__) && !defined(__SunOS) && !defined(_INCLUDE_HPUX_SOURCE)
-#define __int8_t_defined
-typedef signed char int8_t;
-typedef signed short int16_t;
-typedef signed int int32_t;
-#endif /* __AC_STDINT_H */
- * Identyfikator połączenia bezpośredniego Gadu-Gadu 7.x.
- * Identyfikator sesji multilogowania.
- * Makro deklarujące pola wspólne dla struktur sesji.
-#define gg_common_head(x) \
- int fd; /**< Obserwowany deskryptor */ \
- int check; /**< Informacja o żądaniu odczytu/zapisu (patrz \ref gg_check_t) */ \
- int state; /**< Aktualny stan połączenia (patrz \ref gg_state_t) */ \
- int error; /**< Kod błędu dla \c GG_STATE_ERROR (patrz \ref gg_error_t) */ \
- int type; /**< Rodzaj sesji (patrz \ref gg_session_t) */ \
- int id; /**< Identyfikator sesji */ \
- int timeout; /**< Czas pozostały do zakończenia stanu */ \
- int (*callback)(x*); /**< Funkcja zwrotna */ \
- void (*destroy)(x*); /**< Funkcja zwalniania zasobów */
- * Struktura wspólna dla wszystkich sesji i połączeń. Pozwala na proste
- * rzutowanie niezależne od rodzaju połączenia.
- gg_common_head(struct gg_common)
- * Sposób rozwiązywania nazw serwerów.
- GG_RESOLVER_DEFAULT = 0, /**< Domyślny sposób rozwiązywania nazw (jeden z poniższych) */
- GG_RESOLVER_FORK, /**< RozwiÄ…zywanie nazw bazujÄ…ce na procesach */
- GG_RESOLVER_PTHREAD, /**< RozwiÄ…zywanie nazw bazujÄ…ce na wÄ…tkach */
- GG_RESOLVER_CUSTOM, /**< Funkcje rozwiÄ…zywania nazw dostarczone przed aplikacjÄ™ */
- GG_RESOLVER_INVALID = -1 /**< Nieprawidłowy sposób rozwiązywania nazw (wynik \c gg_session_get_resolver) */
- * Rodzaj kodowania znaków.
- GG_ENCODING_CP1250 = 0, /**< Kodowanie CP1250 */
- GG_ENCODING_UTF8, /**< Kodowanie UTF-8 */
- GG_ENCODING_INVALID = -1 /**< Nieprawidłowe kodowanie */
- * Tworzona przez funkcjÄ™ \c gg_login(), zwalniana przez \c gg_free_session().
- gg_common_head(struct gg_session)
- int async; /**< Flaga połączenia asynchronicznego */
- int pid; /**< Numer procesu rozwiÄ…zujÄ…cego nazwÄ™ serwera */
- int port; /**< Port serwera */
- int seq; /**< Numer sekwencyjny ostatniej wiadomości */
- int last_pong; /**< Czas otrzymania ostatniej ramki utrzymaniowej */
- int last_event; /**< Czas otrzymania ostatniego pakietu */
- struct gg_event *event; /**< Zdarzenie po wywołaniu \c callback */
- uint32_t proxy_addr; /**< Adres serwera pośredniczącego */
- uint16_t proxy_port; /**< Port serwera pośredniczącego */
- uint32_t hub_addr; /**< Adres huba po rozwiÄ…zaniu nazwy */
- uint32_t server_addr; /**< Adres serwera otrzymany od huba */
- uint32_t client_addr; /**< Adres gniazda dla połączeń bezpośrednich */
- uint16_t client_port; /**< Port gniazda dla połączeń bezpośrednich */
- uint32_t external_addr; /**< Publiczny adres dla połączeń bezpośrednich */
- uint16_t external_port; /**< Publiczny port dla połączeń bezpośrednich */
- uin_t uin; /**< WÅ‚asny numer Gadu-Gadu */
- char *password; /**< Hasło (zwalniane po użyciu) */
- int initial_status; /**< PoczÄ…tkowy status */
- int status; /**< Aktualny status */
- char *recv_buf; /**< Bufor na odbierany pakiety */
- int recv_done; /**< Liczba wczytanych bajtów pakietu */
- int recv_left; /**< Liczba pozostałych do wczytania bajtów pakietu */
- int protocol_version; /**< Wersja protokołu (bez flag) */
- char *client_version; /**< Wersja klienta */
- int last_sysmsg; /**< Numer ostatniej wiadomości systemowej */
- char *initial_descr; /**< PoczÄ…tkowy opis statusu */
- void *resolver; /**< Dane prywatne procesu lub wÄ…tku rozwiÄ…zujÄ…cego nazwÄ™ serwera */
- char *header_buf; /**< Bufor na początek nagłówka pakietu */
- unsigned int header_done; /**< Liczba wczytanych bajtów nagłówka pakietu */
-#ifdef GG_CONFIG_HAVE_OPENSSL
- SSL *ssl; /**< Struktura TLS */
- SSL_CTX *ssl_ctx; /**< Kontekst sesji TLS */
- void *ssl; /**< Struktura TLS */
- void *ssl_ctx; /**< Kontekst sesji TLS */
- int image_size; /**< Maksymalny rozmiar obsługiwanych obrazków w KiB */
- char *userlist_reply; /**< Bufor z odbieraną listą kontaktów */
- int userlist_blocks; /**< Liczba części listy kontaktów */
- struct gg_image_queue *images; /**< Lista wczytywanych obrazków */
- int hash_type; /**< Rodzaj funkcji skrótu hasła (\c GG_LOGIN_HASH_GG32 lub \c GG_LOGIN_HASH_SHA1) */
- char *send_buf; /**< Bufor z danymi do wysłania */
- int send_left; /**< Liczba bajtów do wysłania */
- struct gg_dcc7 *dcc7_list; /**< Lista połączeń bezpośrednich skojarzonych z sesją */
- int soft_timeout; /**< Flaga mówiąca, że po przekroczeniu \c timeout należy wywołać \c gg_watch_fd() */
- int protocol_flags; /**< Flagi protokołu */
- gg_encoding_t encoding; /**< Rodzaj kodowania znaków */
- gg_resolver_t resolver_type; /**< Sposób rozwiązywania nazw serwerów */
- int (*resolver_start)(int *fd, void **private_data, const char *hostname); /**< Funkcja rozpoczynajÄ…ca rozwiÄ…zywanie nazwy */
- void (*resolver_cleanup)(void **private_data, int force); /**< Funkcja zwalniajÄ…ca zasoby po rozwiÄ…zaniu nazwy */
- int protocol_features; /**< Opcje protokołu */
- int status_flags; /**< Flagi statusu */
- int recv_msg_count; /**< Liczba odebranych wiadomości */
- * Tworzone przez \c gg_http_connect(), zwalniane przez \c gg_http_free().
- gg_common_head(struct gg_http)
- int async; /**< Flaga połączenia asynchronicznego */
- int pid; /**< Identyfikator procesu rozwiÄ…zujÄ…cego nazwÄ™ serwera */
- char *query; /**< Zapytanie HTTP */
- char *header; /**< Odebrany nagłówek */
- int header_size; /**< Rozmiar wczytanego nagłówka */
- char *body; /**< Odebrana strona */
- unsigned int body_size; /**< Rozmiar strony */
- void *data; /**< Dane prywatne usługi HTTP */
- char *user_data; /**< Dane prywatne użytkownika (nie są zwalniane) */
- void *resolver; /**< Dane prywatne procesu lub wÄ…tku rozwiÄ…zujÄ…cego nazwÄ™ */
- unsigned int body_done; /**< Liczba odebranych bajtów strony */
- gg_resolver_t resolver_type; /**< Sposób rozwiązywania nazw serwerów */
- int (*resolver_start)(int *fd, void **private_data, const char *hostname); /**< Funkcja rozpoczynajÄ…ca rozwiÄ…zywanie nazwy */
- void (*resolver_cleanup)(void **private_data, int force); /**< Funkcja zwalniajÄ…ca zasoby po rozwiÄ…zaniu nazwy */
-#define GG_PACKED __attribute__ ((packed))
-#ifndef GG_IGNORE_DEPRECATED
-#define GG_DEPRECATED __attribute__ ((deprecated))
-#define GG_MAX_PATH 276 /**< Maksymalny rozmiar nazwy pliku w strukturze \c gg_file_info */
- * Odpowiednik struktury WIN32_FIND_DATA z API WIN32.
- * Wykorzystywana przy połączeniach bezpośrednich do wersji Gadu-Gadu 6.x.
- uint32_t mode; /**< dwFileAttributes */
- uint32_t ctime[2]; /**< ftCreationTime */
- uint32_t atime[2]; /**< ftLastAccessTime */
- uint32_t mtime[2]; /**< ftLastWriteTime */
- uint32_t size_hi; /**< nFileSizeHigh */
- uint32_t size; /**< nFileSizeLow */
- uint32_t reserved0; /**< dwReserved0 */
- uint32_t reserved1; /**< dwReserved1 */
- unsigned char filename[GG_MAX_PATH - 14]; /**< cFileName */
- unsigned char short_filename[14]; /**< cAlternateFileName */
-} /** \cond ignore */ GG_PACKED /** \endcond */;
- * Połączenie bezpośrednie do wersji Gadu-Gadu 6.x.
- * Tworzone przez \c gg_dcc_socket_create(), \c gg_dcc_get_file(),
- * \c gg_dcc_send_file() lub \c gg_dcc_voice_chat(), zwalniane przez
- gg_common_head(struct gg_dcc)
- struct gg_event *event; /**< Zdarzenie po wywołaniu \c callback */
- int active; /**< Flaga połączenia aktywnego (nieużywana) */
- int port; /**< Port gniazda nasłuchującego */
- uin_t uin; /**< WÅ‚asny numer Gadu-Gadu */
- uin_t peer_uin; /**< Numer Gadu-Gadu drugiej strony połączenia */
- int file_fd; /**< deskryptor pliku */
- unsigned int offset; /**< Położenie w pliku */
- unsigned int chunk_size;
- /**< Rozmiar kawałka pliku */
- unsigned int chunk_offset;
- /**< Położenie w aktualnym kawałku pliku */
- struct gg_file_info file_info;
- /**< Informacje o pliku */
- int established; /**< Flaga ustanowienia połączenia */
- char *voice_buf; /**< Bufor na pakiet połączenia głosowego */
- int incoming; /**< Flaga połączenia przychodzącego */
- char *chunk_buf; /**< Bufor na fragment danych */
- uint32_t remote_addr; /**< Adres drugiej strony */
- uint16_t remote_port; /**< Port drugiej strony */
-#define GG_DCC7_HASH_LEN 20 /**< Maksymalny rozmiar skrótu pliku w połączeniach bezpośrenich */
-#define GG_DCC7_FILENAME_LEN 255 /**< Maksymalny rozmiar nazwy pliku w połączeniach bezpośrednich */
-#define GG_DCC7_INFO_LEN 32 /**< Maksymalny rozmiar informacji o połączeniach bezpośrednich */
-#define GG_DCC7_INFO_HASH_LEN 32 /**< Maksymalny rozmiar skrótu ip informacji o połączeniach bezpośrednich */
- * Połączenie bezpośrednie od wersji Gadu-Gadu 7.x.
- gg_common_head(struct gg_dcc7)
- gg_dcc7_id_t cid; /**< Identyfikator połączenia */
- struct gg_event *event; /**< Struktura zdarzenia */
- uin_t uin; /**< WÅ‚asny numer Gadu-Gadu */
- uin_t peer_uin; /**< Numer Gadu-Gadu drugiej strony połączenia */
- int file_fd; /**< Deskryptor przesyłanego pliku */
- unsigned int offset; /**< Aktualne położenie w przesyłanym pliku */
- unsigned int size; /**< Rozmiar przesyłanego pliku */
- unsigned char filename[GG_DCC7_FILENAME_LEN + 1];
- /**< Nazwa przesyłanego pliku */
- unsigned char hash[GG_DCC7_HASH_LEN];
- /**< Skrót SHA1 przesyłanego pliku */
- int dcc_type; /**< Rodzaj połączenia bezpośredniego */
- int established; /**< Flaga ustanowienia połączenia */
- int incoming; /**< Flaga połączenia przychodzącego */
- int reverse; /**< Flaga połączenia zwrotnego */
- uint32_t local_addr; /**< Adres lokalny */
- uint16_t local_port; /**< Port lokalny */
- uint32_t remote_addr; /**< Adres drugiej strony */
- uint16_t remote_port; /**< Port drugiej strony */
- struct gg_session *sess;
- /**< Sesja do której przypisano połączenie */
- struct gg_dcc7 *next; /**< Następne połączenie w liście */
- int soft_timeout; /**< Flaga mówiąca, że po przekroczeniu \c timeout należy wywołać \c gg_dcc7_watch_fd() */
- int seek; /**< Flaga mówiąca, że można zmieniać położenie w wysyłanym pliku */
- void *resolver; /**< Dane prywatne procesu lub wÄ…tku rozwiÄ…zujÄ…cego nazwÄ™ serwera */
- int relay; /**< Flaga mówiąca, że laczymy sie przez serwer */
- int relay_index; /**< Numer serwera pośredniczącego, do którego się łączymy */
- int relay_count; /**< Rozmiar listy serwerów pośredniczących */
- struct gg_dcc7_relay *relay_list; /**< Lista serwerów pośredniczących */
- GG_SESSION_GG = 1, /**< Połączenie z serwerem Gadu-Gadu */
- GG_SESSION_HTTP, /**< Połączenie HTTP */
- GG_SESSION_SEARCH, /**< Wyszukiwanie w katalogu publicznym (nieaktualne) */
- GG_SESSION_REGISTER, /**< Rejestracja nowego konta */
- GG_SESSION_REMIND, /**< Przypominanie hasła */
- GG_SESSION_PASSWD, /**< Zmiana hasła */
- GG_SESSION_CHANGE, /**< Zmiana informacji w katalogu publicznym (nieaktualne) */
- GG_SESSION_DCC, /**< Połączenie bezpośrednie (do wersji 6.x) */
- GG_SESSION_DCC_SOCKET, /**< Gniazdo nasłuchujące (do wersji 6.x) */
- GG_SESSION_DCC_SEND, /**< Wysyłanie pliku (do wersji 6.x) */
- GG_SESSION_DCC_GET, /**< Odbieranie pliku (do wersji 6.x) */
- GG_SESSION_DCC_VOICE, /**< Rozmowa głosowa (do wersji 6.x) */
- GG_SESSION_USERLIST_GET, /**< Import listy kontaktów z serwera (nieaktualne) */
- GG_SESSION_USERLIST_PUT, /**< Eksport listy kontaktów do serwera (nieaktualne) */
- GG_SESSION_UNREGISTER, /**< Usuwanie konta */
- GG_SESSION_USERLIST_REMOVE, /**< Usuwanie listy kontaktów z serwera (nieaktualne) */
- GG_SESSION_TOKEN, /**< Pobieranie tokenu */
- GG_SESSION_DCC7_SOCKET, /**< Gniazdo nasłuchujące (od wersji 7.x) */
- GG_SESSION_DCC7_SEND, /**< Wysyłanie pliku (od wersji 7.x) */
- GG_SESSION_DCC7_GET, /**< Odbieranie pliku (od wersji 7.x) */
- GG_SESSION_DCC7_VOICE, /**< Rozmowa głosowa (od wersji 7.x) */
- GG_SESSION_USER0 = 256, /**< Rodzaj zadeklarowany dla użytkownika */
- GG_SESSION_USER1, /**< Rodzaj zadeklarowany dla użytkownika */
- GG_SESSION_USER2, /**< Rodzaj zadeklarowany dla użytkownika */
- GG_SESSION_USER3, /**< Rodzaj zadeklarowany dla użytkownika */
- GG_SESSION_USER4, /**< Rodzaj zadeklarowany dla użytkownika */
- GG_SESSION_USER5, /**< Rodzaj zadeklarowany dla użytkownika */
- GG_SESSION_USER6, /**< Rodzaj zadeklarowany dla użytkownika */
- GG_SESSION_USER7 /**< Rodzaj zadeklarowany dla użytkownika */
- GG_STATE_IDLE = 0, /**< Nie dzieje siÄ™ nic */
- GG_STATE_RESOLVING, /**< Oczekiwanie na rozwiÄ…zanie nazwy serwera */
- GG_STATE_CONNECTING, /**< Oczekiwanie na połączenie */
- GG_STATE_READING_DATA, /**< Oczekiwanie na dane */
- GG_STATE_ERROR, /**< Kod błędu w polu \c error */
- GG_STATE_CONNECTING_HUB, /**< Oczekiwanie na połączenie z hubem */
- GG_STATE_CONNECTING_GG, /**< Oczekiwanie na połączenie z serwerem */
- GG_STATE_READING_KEY, /**< Oczekiwanie na klucz */
- GG_STATE_READING_REPLY, /**< Oczekiwanie na odpowiedź serwera */
- GG_STATE_CONNECTED, /**< Połączono z serwerem */
- GG_STATE_SENDING_QUERY, /**< Wysłano zapytanie HTTP */
- GG_STATE_READING_HEADER, /**< Oczekiwanie na nagłówek HTTP */
- GG_STATE_PARSING, /**< Przetwarzanie danych */
- GG_STATE_DONE, /**< Połączenie zakończone */
- GG_STATE_LISTENING, /* czeka na połączenia */
- GG_STATE_READING_UIN_1, /* czeka na uin peera */
- GG_STATE_READING_UIN_2, /* czeka na swój uin */
- GG_STATE_SENDING_ACK, /* wysyła potwierdzenie dcc */
- GG_STATE_READING_ACK, /* czeka na potwierdzenie dcc */
- GG_STATE_READING_REQUEST, /* czeka na komendÄ™ */
- GG_STATE_SENDING_REQUEST, /* wysyła komendę */
- GG_STATE_SENDING_FILE_INFO, /* wysyła informacje o pliku */
- GG_STATE_READING_PRE_FILE_INFO, /* czeka na pakiet przed file_info */
- GG_STATE_READING_FILE_INFO, /* czeka na informacje o pliku */
- GG_STATE_SENDING_FILE_ACK, /* wysyła potwierdzenie pliku */
- GG_STATE_READING_FILE_ACK, /* czeka na potwierdzenie pliku */
- GG_STATE_SENDING_FILE_HEADER, /* wysyła nagłówek pliku */
- GG_STATE_READING_FILE_HEADER, /* czeka na nagłówek */
- GG_STATE_GETTING_FILE, /* odbiera plik */
- GG_STATE_SENDING_FILE, /* wysyła plik */
- GG_STATE_READING_VOICE_ACK, /* czeka na potwierdzenie voip */
- GG_STATE_READING_VOICE_HEADER, /* czeka na rodzaj bloku voip */
- GG_STATE_READING_VOICE_SIZE, /* czeka na rozmiar bloku voip */
- GG_STATE_READING_VOICE_DATA, /* czeka na dane voip */
- GG_STATE_SENDING_VOICE_ACK, /* wysyła potwierdzenie voip */
- GG_STATE_SENDING_VOICE_REQUEST, /* wysyła żądanie voip */
- GG_STATE_READING_TYPE, /* czeka na typ połączenia */
- /* nowe. bez sensu jest to API. */
- GG_STATE_TLS_NEGOTIATION, /**< Negocjacja połączenia szyfrowanego */
- GG_STATE_REQUESTING_ID, /**< Oczekiwanie na nadanie identyfikatora połączenia bezpośredniego */
- GG_STATE_WAITING_FOR_ACCEPT, /**< Oczekiwanie na potwierdzenie lub odrzucenie połączenia bezpośredniego */
- GG_STATE_WAITING_FOR_INFO, /**< Oczekiwanie na informacje o połączeniu bezpośrednim */
- GG_STATE_READING_ID, /**< Odebranie identyfikatora połączenia bezpośredniego */
- GG_STATE_SENDING_ID, /**< Wysłano identyfikator połączenia bezpośredniego */
- GG_STATE_RESOLVING_GG, /**< Oczekiwanie na rozwiÄ…zanie nazwy serwera Gadu-Gadu */
- GG_STATE_RESOLVING_RELAY, /**< Oczekiwanie na rozwiązanie nazwy serwera pośredniczącego */
- GG_STATE_CONNECTING_RELAY, /**< Oczekiwanie na połączenie z serwerem pośredniczącym */
- GG_STATE_READING_RELAY, /**< Odbieranie danych */
- GG_STATE_DISCONNECTING, /**< Oczekiwanie na potwierdzenie rozłączenia */
- * Informacja o tym, czy biblioteka chce zapisywać i/lub czytać
- * z deskryptora. Maska bitowa.
- GG_CHECK_NONE = 0, /**< Nie sprawdzaj niczego */
- GG_CHECK_WRITE = 1, /**< Sprawdź możliwość zapisu */
- GG_CHECK_READ = 2 /**< Sprawdź możliwość odczytu */
- * Flaga połączenia szyfrowanego.
- GG_SSL_DISABLED = 0, /**< Połączenie SSL wyłączone */
- GG_SSL_ENABLED, /**< Połączenie SSL włączone gdy dostępne */
- GG_SSL_REQUIRED /**< Połączenie SSL wymagane */
- * Parametry połączenia z serwerem Gadu-Gadu. Parametry zostały przeniesione
- * do struktury, by uniknąć zmian API po rozszerzeniu protokołu i dodaniu
- * kolejnych opcji połączenia. Część parametrów, które nie są już aktualne
- * lub nie mają znaczenia, została usunięta z dokumentacji.
-struct gg_login_params {
- uin_t uin; /**< Numer Gadu-Gadu */
- char *password; /**< Hasło */
- int async; /**< Flaga asynchronicznego połączenia (domyślnie nie) */
- int status; /**< Początkowy status użytkownika (domyślnie \c GG_STATUS_AVAIL) */
- char *status_descr; /**< Początkowy opis użytkownika (domyślnie brak) */
- uint32_t server_addr; /**< Adres serwera Gadu-Gadu (domyślnie pobierany automatycznie) */
- uint16_t server_port; /**< Port serwera Gadu-Gadu (domyślnie pobierany automatycznie) */
- uint32_t client_addr; /**< Adres połączeń bezpośrednich (domyślnie dobierany automatycznie) */
- uint16_t client_port; /**< Port połączeń bezpośrednich (domyślnie dobierany automatycznie) */
- int protocol_version; /**< Wersja protokołu wysyłana do serwera (domyślnie najnowsza obsługiwana) */
- char *client_version; /**< Wersja klienta wysyłana do serwera (domyślnie najnowsza znana) */
- int has_audio; /**< Flaga obsługi połączeń głosowych */
- int last_sysmsg; /**< Numer ostatnio odebranej wiadomości systemowej */
- uint32_t external_addr; /**< Adres publiczny dla połączeń bezpośrednich (domyślnie dobierany automatycznie) */
- uint16_t external_port; /**< Port publiczny dla połączeń bezpośrednich (domyślnie dobierany automatycznie) */
- int tls; /**< Flaga połączenia szyfrowanego (patrz \ref gg_ssl_t) */
- int image_size; /**< Maksymalny rozmiar obsługiwanych obrazków w kilobajtach */
- int era_omnix; /**< Flaga udawania klienta Era Omnix (nieaktualna) */
- int hash_type; /**< Rodzaj skrótu hasła (\c GG_LOGIN_HASH_GG32 lub \c GG_LOGIN_HASH_SHA1, domyślnie SHA1) */
- gg_encoding_t encoding; /**< Rodzaj kodowania używanego w sesji (domyślnie CP1250) */
- gg_resolver_t resolver; /**< Sposób rozwiązywania nazw (patrz \ref build-resolver) */
- int protocol_features; /**< Opcje protokołu (flagi GG_FEATURE_*). */
- int status_flags; /**< Flagi statusu (flagi GG_STATUS_FLAG_*, patrz \ref status). */
- char dummy[1 * sizeof(int)]; /**< \internal Miejsce na kilka kolejnych
- parametrów, żeby wraz z dodawaniem kolejnych
- parametrów nie zmieniał się rozmiar struktury */
-struct gg_session *gg_login(const struct gg_login_params *p);
-void gg_free_session(struct gg_session *sess);
-void gg_logoff(struct gg_session *sess);
-int gg_change_status(struct gg_session *sess, int status);
-int gg_change_status_descr(struct gg_session *sess, int status, const char *descr);
-int gg_change_status_descr_time(struct gg_session *sess, int status, const char *descr, int time);
-int gg_change_status_flags(struct gg_session *sess, int flags);
-int gg_send_message(struct gg_session *sess, int msgclass, uin_t recipient, const unsigned char *message);
-int gg_send_message_richtext(struct gg_session *sess, int msgclass, uin_t recipient, const unsigned char *message, const unsigned char *format, int formatlen);
-int gg_send_message_confer(struct gg_session *sess, int msgclass, int recipients_count, uin_t *recipients, const unsigned char *message);
-int gg_send_message_confer_richtext(struct gg_session *sess, int msgclass, int recipients_count, uin_t *recipients, const unsigned char *message, const unsigned char *format, int formatlen);
-int gg_send_message_ctcp(struct gg_session *sess, int msgclass, uin_t recipient, const unsigned char *message, int message_len);
-int gg_ping(struct gg_session *sess);
-int gg_userlist_request(struct gg_session *sess, char type, const char *request);
-int gg_userlist100_request(struct gg_session *sess, char type, unsigned int version, char format_type, const char *request);
-int gg_image_request(struct gg_session *sess, uin_t recipient, int size, uint32_t crc32);
-int gg_image_reply(struct gg_session *sess, uin_t recipient, const char *filename, const char *image, int size);
-int gg_typing_notification(struct gg_session *sess, uin_t recipient, int length);
-uint32_t gg_crc32(uint32_t crc, const unsigned char *buf, int len);
-int gg_session_set_resolver(struct gg_session *gs, gg_resolver_t type);
-gg_resolver_t gg_session_get_resolver(struct gg_session *gs);
-int gg_session_set_custom_resolver(struct gg_session *gs, int (*resolver_start)(int*, void**, const char*), void (*resolver_cleanup)(void**, int));
-int gg_http_set_resolver(struct gg_http *gh, gg_resolver_t type);
-gg_resolver_t gg_http_get_resolver(struct gg_http *gh);
-int gg_http_set_custom_resolver(struct gg_http *gh, int (*resolver_start)(int*, void**, const char*), void (*resolver_cleanup)(void**, int));
-int gg_global_set_resolver(gg_resolver_t type);
-gg_resolver_t gg_global_get_resolver(void);
-int gg_global_set_custom_resolver(int (*resolver_start)(int*, void**, const char*), void (*resolver_cleanup)(void**, int));
-int gg_multilogon_disconnect(struct gg_session *gs, gg_multilogon_id_t conn_id);
- GG_EVENT_NONE = 0, /**< Nie wydarzyło się nic wartego uwagi */
- GG_EVENT_MSG, /**< \brief Otrzymano wiadomość. Przekazuje również wiadomości systemowe od numeru 0. */
- GG_EVENT_NOTIFY, /**< \brief Informacja o statusach osób z listy kontaktów (przed 6.0). Zdarzenie należy obsługiwać, jeśli planuje się używać protokołu w wersji starszej niż domyślna. Ostatni element tablicy zawiera uin równy 0, a pozostałe pola są niezainicjowane. */
- GG_EVENT_NOTIFY_DESCR, /**< \brief Informacja o statusie opisowym osoby z listy kontaktów (przed 6.0). Zdarzenie należy obsługiwać, jeśli planuje się używać protokołu w wersji starszej niż domyślna. */
- GG_EVENT_STATUS, /**< \brief Zmiana statusu osoby z listy kontaktów (przed 6.0). Zdarzenie należy obsługiwać, jeśli planuje się używać protokołu w wersji starszej niż domyślna. */
- GG_EVENT_ACK, /**< Potwierdzenie doręczenia wiadomości */
- GG_EVENT_PONG, /**< \brief Utrzymanie połączenia. Obecnie serwer nie wysyła już do klienta ramek utrzymania połączenia, polega wyłącznie na wysyłaniu ramek przez klienta. */
- GG_EVENT_CONN_FAILED, /**< \brief Nie udało się połączyć */
- GG_EVENT_CONN_SUCCESS, /**< \brief Połączono z serwerem. Pierwszą rzeczą, jaką należy zrobić jest wysłanie listy kontaktów. */
- GG_EVENT_DISCONNECT, /**< \brief Serwer zrywa połączenie. Zdarza się, gdy równolegle do serwera podłączy się druga sesja i trzeba zerwać połączenie z pierwszą. */
- GG_EVENT_DCC_NEW, /**< Nowe połączenie bezpośrednie (6.x) */
- GG_EVENT_DCC_ERROR, /**< Błąd połączenia bezpośredniego (6.x) */
- GG_EVENT_DCC_DONE, /**< Zakończono połączenie bezpośrednie (6.x) */
- GG_EVENT_DCC_CLIENT_ACCEPT, /**< Moment akceptacji klienta w połączeniu bezpośrednim (6.x) */
- GG_EVENT_DCC_CALLBACK, /**< Zwrotne połączenie bezpośrednie (6.x) */
- GG_EVENT_DCC_NEED_FILE_INFO, /**< Należy wypełnić \c file_info dla połączenia bezpośredniego (6.x) */
- GG_EVENT_DCC_NEED_FILE_ACK, /**< Czeka na potwierdzenie pliku w połączeniu bezpośrednim (6.x) */
- GG_EVENT_DCC_NEED_VOICE_ACK, /**< Czeka na potwierdzenie rozmowy w połączeniu bezpośrednim (6.x) */
- GG_EVENT_DCC_VOICE_DATA, /**< Dane bezpośredniego połączenia głosowego (6.x) */
- GG_EVENT_PUBDIR50_SEARCH_REPLY, /**< Odpowiedź katalogu publicznego */
- GG_EVENT_PUBDIR50_READ, /**< Odczytano własne dane z katalogu publicznego */
- GG_EVENT_PUBDIR50_WRITE, /**< Zmieniono własne dane w katalogu publicznym */
- GG_EVENT_STATUS60, /**< Zmiana statusu osoby z listy kontaktów */
- GG_EVENT_NOTIFY60, /**< Informacja o statusach osób z listy kontaktów. Ostatni element tablicy zawiera uin równy 0, a pozostałe pola są niezainicjowane. */
- GG_EVENT_USERLIST, /**< Wynik importu lub eksportu listy kontaktów */
- GG_EVENT_IMAGE_REQUEST, /**< Żądanie przesłania obrazka z wiadomości */
- GG_EVENT_IMAGE_REPLY, /**< Przysłano obrazek z wiadomości */
- GG_EVENT_DCC_ACK, /**< Potwierdzenie transmisji w połączeniu bezpośrednim (6.x) */
- GG_EVENT_DCC7_NEW, /**< Nowe połączenie bezpośrednie (7.x) */
- GG_EVENT_DCC7_ACCEPT, /**< Zaakceptowano połączenie bezpośrednie (7.x), nowy deskryptor */
- GG_EVENT_DCC7_REJECT, /**< Odrzucono połączenie bezpośrednie (7.x) */
- GG_EVENT_DCC7_CONNECTED, /**< Zestawiono połączenie bezpośrednie (7.x), nowy deskryptor */
- GG_EVENT_DCC7_ERROR, /**< Błąd połączenia bezpośredniego (7.x) */
- GG_EVENT_DCC7_DONE, /**< Zakończono połączenie bezpośrednie (7.x) */
- GG_EVENT_DCC7_PENDING, /**< Trwa próba połączenia bezpośredniego (7.x), nowy deskryptor */
- GG_EVENT_XML_EVENT, /**< Otrzymano komunikat systemowy (7.7) */
- GG_EVENT_DISCONNECT_ACK, /**< \brief Potwierdzenie zakończenia sesji. Informuje o tym, że zmiana stanu na niedostępny z opisem dotarła do serwera i można zakończyć połączenie TCP. */
- GG_EVENT_TYPING_NOTIFICATION, /**< Powiadomienie o pisaniu */
- GG_EVENT_USER_DATA, /**< Informacja o kontaktach */
- GG_EVENT_MULTILOGON_MSG, /**< Wiadomość wysłana z innej sesji multilogowania */
- GG_EVENT_MULTILOGON_INFO, /**< Informacja o innych sesjach multilogowania */
- GG_EVENT_USERLIST100_VERSION, /**< Otrzymano numer wersji listy kontaktów na serwerze (10.0) */
- GG_EVENT_USERLIST100_REPLY, /**< Wynik importu lub eksportu listy kontaktów (10.0) */
-#define GG_EVENT_SEARCH50_REPLY GG_EVENT_PUBDIR50_SEARCH_REPLY
- * Powód nieudanego połączenia.
- GG_FAILURE_RESOLVING = 1, /**< Nie znaleziono serwera */
- GG_FAILURE_CONNECTING, /**< Błąd połączenia */
- GG_FAILURE_INVALID, /**< Serwer zwrócił nieprawidłowe dane */
- GG_FAILURE_READING, /**< Zerwano połączenie podczas odczytu */
- GG_FAILURE_WRITING, /**< Zerwano połączenie podczas zapisu */
- GG_FAILURE_PASSWORD, /**< Nieprawidłowe hasło */
- GG_FAILURE_404, /**< Nieużywane */
- GG_FAILURE_TLS, /**< Błąd negocjacji szyfrowanego połączenia */
- GG_FAILURE_NEED_EMAIL, /**< Serwer rozłączył nas z prośbą o zmianę adresu e-mail */
- GG_FAILURE_INTRUDER, /**< Zbyt wiele prób połączenia z nieprawidłowym hasłem */
- GG_FAILURE_UNAVAILABLE, /**< Serwery są wyłączone */
- GG_FAILURE_PROXY, /**< Błąd serwera pośredniczącego */
- GG_FAILURE_HUB, /**< Błąd połączenia z hubem */
- * Kod błędu danej operacji.
- * Nie zawiera przesadnie szczegółowych informacji o powodach błędów, by nie
- * komplikować ich obsługi. Jeśli wymagana jest większa dokładność, należy
- * sprawdzić zawartość zmiennej systemowej \c errno.
- GG_ERROR_RESOLVING = 1, /**< Nie znaleziono hosta */
- GG_ERROR_CONNECTING, /**< Błąd połączenia */
- GG_ERROR_READING, /**< BÅ‚Ä…d odczytu/odbierania */
- GG_ERROR_WRITING, /**< Błąd zapisu/wysyłania */
- GG_ERROR_DCC_HANDSHAKE, /**< BÅ‚Ä…d negocjacji */
- GG_ERROR_DCC_FILE, /**< BÅ‚Ä…d odczytu/zapisu pliku */
- GG_ERROR_DCC_EOF, /**< Przedwczesny koniec pliku */
- GG_ERROR_DCC_NET, /**< Błąd wysyłania/odbierania */
- GG_ERROR_DCC_REFUSED, /**< Połączenie odrzucone */
- GG_ERROR_DCC7_HANDSHAKE, /**< BÅ‚Ä…d negocjacji */
- GG_ERROR_DCC7_FILE, /**< BÅ‚Ä…d odczytu/zapisu pliku */
- GG_ERROR_DCC7_EOF, /**< Przedwczesny koniec pliku */
- GG_ERROR_DCC7_NET, /**< Błąd wysyłania/odbierania */
- GG_ERROR_DCC7_REFUSED, /**< Połączenie odrzucone */
- GG_ERROR_DCC7_RELAY, /**< Problem z serwerem pośredniczącym */
- * Pole zapytania lub odpowiedzi katalogu publicznego.
-struct gg_pubdir50_entry {
- int num; /**< Numer wyniku */
- char *field; /**< Nazwa pola */
- char *value; /**< Wartość pola */
- * Zapytanie lub odpowiedź katalogu publicznego.
- * Patrz \c gg_pubdir50_t.
- int count; /**< Liczba wyników odpowiedzi */
- uin_t next; /**< Numer początkowy następnego zapytania */
- int type; /**< Rodzaj zapytania */
- uint32_t seq; /**< Numer sekwencyjny */
- struct gg_pubdir50_entry *entries; /**< Pola zapytania lub odpowiedzi */
- int entries_count; /**< Liczba pól */
- * Zapytanie lub odpowiedź katalogu publicznego.
- * Do pól nie należy się odwoływać bezpośrednio -- wszystkie niezbędne
- * informacje są dostępne za pomocą funkcji \c gg_pubdir50_*
-typedef struct gg_pubdir50_s *gg_pubdir50_t;
- * Opis zdarzeń \c GG_EVENT_MSG i \c GG_EVENT_MULTILOGON_MSG.
- uin_t sender; /**< Numer nadawcy/odbiorcy */
- int msgclass; /**< Klasa wiadomości */
- time_t time; /**< Czas nadania */
- unsigned char *message; /**< Treść wiadomości */
- int recipients_count; /**< Liczba odbiorców konferencji */
- uin_t *recipients; /**< Odbiorcy konferencji */
- int formats_length; /**< Długość informacji o formatowaniu tekstu */
- void *formats; /**< Informacje o formatowaniu tekstu */
- uint32_t seq; /**< Numer sekwencyjny wiadomości */
- char *xhtml_message; /**< Treść wiadomości w formacie XHTML (może być równe \c NULL, jeśli wiadomość nie zawiera treści XHTML) */
- * Opis zdarzenia \c GG_EVENT_NOTIFY_DESCR.
-struct gg_event_notify_descr {
- struct gg_notify_reply *notify; /**< Informacje o liście kontaktów */
- char *descr; /**< Opis status */
- * Opis zdarzenia \c GG_EVENT_STATUS.
-struct gg_event_status {
- uin_t uin; /**< Numer Gadu-Gadu */
- uint32_t status; /**< Nowy status */
- char *descr; /**< Opis */
- * Opis zdarzenia \c GG_EVENT_STATUS60.
-struct gg_event_status60 {
- uin_t uin; /**< Numer Gadu-Gadu */
- int status; /**< Nowy status */
- uint32_t remote_ip; /**< Adres IP dla połączeń bezpośrednich */
- uint16_t remote_port; /**< Port dla połączeń bezpośrednich */
- int version; /**< Wersja protokołu */
- int image_size; /**< Maksymalny rozmiar obsługiwanych obrazków w KiB */
- char *descr; /**< Opis statusu */
- time_t time; /**< Czas powrotu */
- * Opis zdarzenia \c GG_EVENT_NOTIFY_REPLY60.
-struct gg_event_notify60 {
- uin_t uin; /**< Numer Gadu-Gadu. W ostatnim elemencie jest równy 0, a pozostałe pola są niezainicjowane. */
- int status; /**< Nowy status */
- uint32_t remote_ip; /**< Adres IP dla połączeń bezpośrednich */
- uint16_t remote_port; /**< Port dla połączeń bezpośrednich */
- int version; /**< Wersja protokołu */
- int image_size; /**< Maksymalny rozmiar obsługiwanych obrazków w KiB */
- char *descr; /**< Opis statusu */
- time_t time; /**< Czas powrotu */
- * Opis zdarzenia \c GG_EVENT_ACK.
- uin_t recipient; /**< Numer odbiorcy */
- int status; /**< Status doręczenia */
- int seq; /**< Numer sekwencyjny wiadomości */
- * Opis zdarzenia \c GG_EVENT_USERLIST.
-struct gg_event_userlist {
- char type; /**< Rodzaj odpowiedzi */
- char *reply; /**< Treść odpowiedzi */
- * Opis zdarzenia \c GG_EVENT_DCC_VOICE_DATA.
-struct gg_event_dcc_voice_data {
- uint8_t *data; /**< Dane dźwiękowe */
- int length; /**< Rozmiar danych dźwiękowych */
- * Opis zdarzenia \c GG_EVENT_IMAGE_REQUEST.
-struct gg_event_image_request {
- uin_t sender; /**< Nadawca żądania */
- uint32_t size; /**< Rozmiar obrazka */
- uint32_t crc32; /**< Suma kontrolna CRC32 */
- * Opis zdarzenia \c GG_EVENT_IMAGE_REPLY.
-struct gg_event_image_reply {
- uin_t sender; /**< Nadawca obrazka */
- uint32_t size; /**< Rozmiar obrazka */
- uint32_t crc32; /**< Suma kontrolna CRC32 */
- char *filename; /**< Nazwa pliku */
- char *image; /**< Bufor z obrazkiem */
- * Opis zdarzenia \c GG_EVENT_XML_EVENT.
-struct gg_event_xml_event {
- char *data; /**< Bufor z komunikatem */
- * Opis zdarzenia \c GG_EVENT_DCC7_CONNECTED.
-struct gg_event_dcc7_connected {
- struct gg_dcc7 *dcc7; /**< Struktura połączenia */
- * Opis zdarzenia \c GG_EVENT_DCC7_PENDING.
-struct gg_event_dcc7_pending {
- struct gg_dcc7 *dcc7; /**< Struktura połączenia */
- * Opis zdarzenia \c GG_EVENT_DCC7_REJECT.
-struct gg_event_dcc7_reject {
- struct gg_dcc7 *dcc7; /**< Struktura połączenia */
- int reason; /**< powód odrzucenia */
- * Opis zdarzenia \c GG_EVENT_DCC7_ACCEPT.
-struct gg_event_dcc7_accept {
- struct gg_dcc7 *dcc7; /**< Struktura połączenia */
- int type; /**< Sposób połączenia (P2P, przez serwer) */
- uint32_t remote_ip; /**< Adres zdalnego klienta */
- uint16_t remote_port; /**< Port zdalnego klienta */
- * Opis zdarzenia \c GG_EVENT_DCC7_DONE.
-struct gg_event_dcc7_done {
- struct gg_dcc7 *dcc7; /**< Struktura połączenia */
- * Opis zdarzenia \c GG_EVENT_TYPING_NOTIFICATION.
-struct gg_event_typing_notification {
- uin_t uin; /**< Numer rozmówcy */
- int length; /**< Długość tekstu */
- * Atrybut użytkownika.
-struct gg_event_user_data_attr {
- int type; /**< Typ atrybutu */
- char *key; /**< Klucz */
- char *value; /**< Wartość */
- * Struktura opisujÄ…ca kontakt w zdarzeniu GG_EVENT_USER_DATA.
-struct gg_event_user_data_user {
- uin_t uin; /**< Numer kontaktu */
- size_t attr_count; /**< Liczba atrybutów */
- struct gg_event_user_data_attr *attrs; /**< Lista atrybutów */
- * Opis zdarzenia \c GG_EVENT_USER_DATA.
-struct gg_event_user_data {
- int type; /**< Rodzaj informacji o kontaktach */
- size_t user_count; /**< Liczba kontaktów */
- struct gg_event_user_data_user *users; /**< Lista kontaktów */
- * Struktura opisujÄ…ca sesjÄ™ multilogowania.
-struct gg_multilogon_session {
- gg_multilogon_id_t id; /**< Identyfikator sesji */
- char *name; /**< Nazwa sesji (podana w \c gg_login_params.client_version) */
- uint32_t remote_addr; /**< Adres sesji */
- int status_flags; /**< Flagi statusu sesji */
- int protocol_features; /**< Opcje protokolu sesji */
- time_t logon_time; /**< Czas zalogowania */
- * Opis zdarzenia \c GG_EVENT_MULTILOGON_INFO.
-struct gg_event_multilogon_info {
- int count; /**< Liczba sesji */
- struct gg_multilogon_session *sessions; /** Lista sesji */
- * Opis zdarzenia \c GG_EVENT_USERLIST100_VERSION.
-struct gg_event_userlist100_version {
- uint32_t version; /**< Numer wersji listy kontaktów na serwerze */
- * Opis zdarzenia \c GG_EVENT_USERLIST100_REPLY.
-struct gg_event_userlist100_reply {
- char type; /**< Rodzaj odpowiedzi */
- uint32_t version; /**< Aktualna wersja listy kontaktów na serwerze */
- char format_type; /**< Typ formatu listy kontaktów (żądany w \c gg_userlist100_request.format_type) */
- char *reply; /**< Treść listy kontaktów w przesyłanej wersji i formacie */
- * Unia wszystkich zdarzeń zwracanych przez funkcje \c gg_watch_fd(),
- * \c gg_dcc_watch_fd() i \c gg_dcc7_watch_fd().
- enum gg_failure_t failure; /**< Błąd połączenia (\c GG_EVENT_CONN_FAILED) */
- struct gg_notify_reply *notify; /**< Zmiana statusu kontaktów (\c GG_EVENT_NOTIFY) */
- struct gg_event_notify_descr notify_descr; /**< Zmiana statusu kontaktów (\c GG_EVENT_NOTIFY_DESCR) */
- struct gg_event_status status; /**< Zmiana statusu kontaktów (\c GG_EVENT_STATUS) */
- struct gg_event_status60 status60; /**< Zmiana statusu kontaktów (\c GG_EVENT_STATUS60) */
- struct gg_event_notify60 *notify60; /**< Zmiana statusu kontaktów (\c GG_EVENT_NOTIFY60) */
- struct gg_event_msg msg; /**< Otrzymano wiadomość (\c GG_EVENT_MSG) */
- struct gg_event_ack ack; /**< Potwierdzenie wiadomości (\c GG_EVENT_ACK) */
- struct gg_event_image_request image_request; /**< Żądanie wysłania obrazka (\c GG_EVENT_IMAGE_REQUEST) */
- struct gg_event_image_reply image_reply; /**< Odpowiedź z obrazkiem (\c GG_EVENT_IMAGE_REPLY) */
- struct gg_event_userlist userlist; /**< Odpowiedź listy kontaktów (\c GG_EVENT_USERLIST) */
- gg_pubdir50_t pubdir50; /**< Odpowiedź katalogu publicznego (\c GG_EVENT_PUBDIR50_*) */
- struct gg_event_xml_event xml_event; /**< Zdarzenie systemowe (\c GG_EVENT_XML_EVENT) */
- struct gg_dcc *dcc_new; /**< Nowe połączenie bezpośrednie (\c GG_EVENT_DCC_NEW) */
- enum gg_error_t dcc_error; /**< Błąd połączenia bezpośredniego (\c GG_EVENT_DCC_ERROR) */
- struct gg_event_dcc_voice_data dcc_voice_data; /**< Dane połączenia głosowego (\c GG_EVENT_DCC_VOICE_DATA) */
- struct gg_dcc7 *dcc7_new; /**< Nowe połączenie bezpośrednie (\c GG_EVENT_DCC7_NEW) */
- enum gg_error_t dcc7_error; /**< Błąd połączenia bezpośredniego (\c GG_EVENT_DCC7_ERROR) */
- struct gg_event_dcc7_connected dcc7_connected; /**< Informacja o zestawieniu połączenia bezpośredniego (\c GG_EVENT_DCC7_CONNECTED) */
- struct gg_event_dcc7_pending dcc7_pending; /**< Trwa próba połączenia bezpośredniego (\c GG_EVENT_DCC7_PENDING) */
- struct gg_event_dcc7_reject dcc7_reject; /**< Odrzucono połączenia bezpośredniego (\c GG_EVENT_DCC7_REJECT) */
- struct gg_event_dcc7_accept dcc7_accept; /**< Zaakceptowano połączenie bezpośrednie (\c GG_EVENT_DCC7_ACCEPT) */
- struct gg_event_dcc7_done dcc7_done; /**< Zakończono połączenie bezpośrednie (\c GG_EVENT_DCC7_DONE) */
- struct gg_event_typing_notification typing_notification; /**< Powiadomienie o pisaniu */
- struct gg_event_user_data user_data; /**< Informacje o kontaktach */
- struct gg_event_msg multilogon_msg; /**< Inna sesja wysłała wiadomość (\c GG_EVENT_MULTILOGON_MSG) */
- struct gg_event_multilogon_info multilogon_info; /**< Informacja o innych sesjach multilogowania (\c GG_EVENT_MULTILOGON_INFO) */
- struct gg_event_userlist100_version userlist100_version; /**< Informacja o numerze wersji listy kontaktów na serwerze (\c GG_EVENT_USERLIST100_VERSION) */
- struct gg_event_userlist100_reply userlist100_reply; /**< Odpowiedź listy kontaktów (10.0) (\c GG_EVENT_USERLIST100_REPLY) */
- * Zwracany przez funkcje \c gg_watch_fd(), \c gg_dcc_watch_fd()
- * i \c gg_dcc7_watch_fd(). Po przeanalizowaniu należy zwolnić
- * za pomocÄ… \c gg_event_free().
- int type; /**< Rodzaj zdarzenia */
- union gg_event_union event; /**< Informacja o zdarzeniu */
-struct gg_event *gg_watch_fd(struct gg_session *sess);
-void gg_event_free(struct gg_event *e);
-int gg_notify_ex(struct gg_session *sess, uin_t *userlist, char *types, int count);
-int gg_notify(struct gg_session *sess, uin_t *userlist, int count);
-int gg_add_notify_ex(struct gg_session *sess, uin_t uin, char type);
-int gg_add_notify(struct gg_session *sess, uin_t uin);
-int gg_remove_notify_ex(struct gg_session *sess, uin_t uin, char type);
-int gg_remove_notify(struct gg_session *sess, uin_t uin);
-struct gg_http *gg_http_connect(const char *hostname, int port, int async, const char *method, const char *path, const char *header);
-int gg_http_watch_fd(struct gg_http *h);
-void gg_http_stop(struct gg_http *h);
-void gg_http_free(struct gg_http *h);
-uint32_t gg_pubdir50(struct gg_session *sess, gg_pubdir50_t req);
-gg_pubdir50_t gg_pubdir50_new(int type);
-int gg_pubdir50_add(gg_pubdir50_t req, const char *field, const char *value);
-int gg_pubdir50_seq_set(gg_pubdir50_t req, uint32_t seq);
-const char *gg_pubdir50_get(gg_pubdir50_t res, int num, const char *field);
-int gg_pubdir50_type(gg_pubdir50_t res);
-int gg_pubdir50_count(gg_pubdir50_t res);
-uin_t gg_pubdir50_next(gg_pubdir50_t res);
-uint32_t gg_pubdir50_seq(gg_pubdir50_t res);
-void gg_pubdir50_free(gg_pubdir50_t res);
-#define GG_PUBDIR50_UIN "FmNumber"
-#define GG_PUBDIR50_STATUS "FmStatus"
-#define GG_PUBDIR50_FIRSTNAME "firstname"
-#define GG_PUBDIR50_LASTNAME "lastname"
-#define GG_PUBDIR50_NICKNAME "nickname"
-#define GG_PUBDIR50_BIRTHYEAR "birthyear"
-#define GG_PUBDIR50_CITY "city"
-#define GG_PUBDIR50_GENDER "gender"
-#define GG_PUBDIR50_GENDER_FEMALE "1"
-#define GG_PUBDIR50_GENDER_MALE "2"
-#define GG_PUBDIR50_GENDER_SET_FEMALE "2"
-#define GG_PUBDIR50_GENDER_SET_MALE "1"
-#define GG_PUBDIR50_ACTIVE "ActiveOnly"
-#define GG_PUBDIR50_ACTIVE_TRUE "1"
-#define GG_PUBDIR50_START "fmstart"
-#define GG_PUBDIR50_FAMILYNAME "familyname"
-#define GG_PUBDIR50_FAMILYCITY "familycity"
- * Rodzaj pola zapytania.
- GG_PUBDIR50_UIN, /**< Numer Gadu-Gadu */
- GG_PUBDIR50_STATUS, /**< Status (tylko wynik wyszukiwania) */
- GG_PUBDIR50_FIRSTNAME, /**< ImiÄ™ */
- GG_PUBDIR50_LASTNAME, /**< Nazwisko */
- GG_PUBDIR50_NICKNAME, /**< Pseudonim */
- GG_PUBDIR50_BIRTHYEAR, /**< Rok urodzenia lub przedział lat oddzielony spacją */
- GG_PUBDIR50_CITY, /**< Miejscowość */
- GG_PUBDIR50_GENDER, /**< Płeć */
- GG_PUBDIR50_ACTIVE, /**< Osoba dostępna (tylko wyszukiwanie) */
- GG_PUBDIR50_START, /**< Numer poczÄ…tkowy wyszukiwania (tylko wyszukiwanie) */
- GG_PUBDIR50_FAMILYNAME, /**< Nazwisko rodowe (tylko wysyłanie informacji o sobie) */
- GG_PUBDIR50_FAMILYCITY, /**< Miejscowość pochodzenia (tylko wysyłanie informacji o sobie) */
- * Wartość pola GG_PUBDIR50_GENDER przy wyszukiwaniu. Brak pola oznacza dowolną płeć.
- GG_PUBDIR50_GENDER_FEMALE, /**< Kobieta */
- GG_PUBDIR50_GENDER_MALE, /**< Mężczyzna */
- * Wartość pola GG_PUBDIR50_GENDER przy wysyłaniu informacji o sobie.
- GG_PUBDIR50_GENDER_SET_FEMALE, /**< Kobieta */
- GG_PUBDIR50_GENDER_SET_MALE, /**< Mężczyzna */
- * Wartość pola GG_PUBDIR50_ACTIVE.
- GG_PUBDIR50_ACTIVE_TRUE, /**< Wyszukaj tylko osoby dostępne */
- * Wynik operacji na katalogu publicznym.
- int success; /**< Flaga powodzenia operacji */
- uin_t uin; /**< Otrzymany numer lub 0 w przypadku błędu */
-int gg_pubdir_watch_fd(struct gg_http *f);
-void gg_pubdir_free(struct gg_http *f);
- * Token autoryzacji niektórych operacji HTTP.
- int width; /**< Szerokość obrazka */
- int height; /**< Wysokość obrazka */
- int length; /**< Liczba znaków w tokenie */
- char *tokenid; /**< Identyfikator tokenu */
-struct gg_http *gg_token(int async);
-int gg_token_watch_fd(struct gg_http *h);
-void gg_token_free(struct gg_http *h);
-struct gg_http *gg_register3(const char *email, const char *password, const char *tokenid, const char *tokenval, int async);
-#define gg_register_watch_fd gg_pubdir_watch_fd
-#define gg_register_free gg_pubdir_free
-struct gg_http *gg_unregister3(uin_t uin, const char *password, const char *tokenid, const char *tokenval, int async);
-#define gg_unregister_watch_fd gg_pubdir_watch_fd
-#define gg_unregister_free gg_pubdir_free
-struct gg_http *gg_remind_passwd3(uin_t uin, const char *email, const char *tokenid, const char *tokenval, int async);
-#define gg_remind_passwd_watch_fd gg_pubdir_watch_fd
-#define gg_remind_passwd_free gg_pubdir_free
-struct gg_http *gg_change_passwd4(uin_t uin, const char *email, const char *passwd, const char *newpasswd, const char *tokenid, const char *tokenval, int async);
-#define gg_change_passwd_watch_fd gg_pubdir_watch_fd
-#define gg_change_passwd_free gg_pubdir_free
-extern unsigned long gg_dcc_ip;
-int gg_dcc_request(struct gg_session *sess, uin_t uin);
-struct gg_dcc *gg_dcc_send_file(uint32_t ip, uint16_t port, uin_t my_uin, uin_t peer_uin);
-struct gg_dcc *gg_dcc_get_file(uint32_t ip, uint16_t port, uin_t my_uin, uin_t peer_uin);
-struct gg_dcc *gg_dcc_voice_chat(uint32_t ip, uint16_t port, uin_t my_uin, uin_t peer_uin);
-void gg_dcc_set_type(struct gg_dcc *d, int type);
-int gg_dcc_fill_file_info(struct gg_dcc *d, const char *filename);
-int gg_dcc_fill_file_info2(struct gg_dcc *d, const char *filename, const char *local_filename);
-int gg_dcc_voice_send(struct gg_dcc *d, char *buf, int length);
-#define GG_DCC_VOICE_FRAME_LENGTH 195 /**< Rozmiar pakietu głosowego przed wersją Gadu-Gadu 5.0.5 */
-#define GG_DCC_VOICE_FRAME_LENGTH_505 326 /**< Rozmiar pakietu głosowego od wersji Gadu-Gadu 5.0.5 */
-struct gg_dcc *gg_dcc_socket_create(uin_t uin, uint16_t port);
-#define gg_dcc_socket_free gg_dcc_free
-#define gg_dcc_socket_watch_fd gg_dcc_watch_fd
-struct gg_event *gg_dcc_watch_fd(struct gg_dcc *d);
-void gg_dcc_free(struct gg_dcc *c);
-struct gg_event *gg_dcc7_watch_fd(struct gg_dcc7 *d);
-struct gg_dcc7 *gg_dcc7_send_file(struct gg_session *sess, uin_t rcpt, const char *filename, const char *filename1250, const char *hash);
-struct gg_dcc7 *gg_dcc7_send_file_fd(struct gg_session *sess, uin_t rcpt, int fd, size_t size, const char *filename1250, const char *hash);
-int gg_dcc7_accept(struct gg_dcc7 *dcc, unsigned int offset);
-int gg_dcc7_reject(struct gg_dcc7 *dcc, int reason);
-void gg_dcc7_free(struct gg_dcc7 *d);
-extern int gg_debug_level;
-extern void (*gg_debug_handler)(int level, const char *format, va_list ap);
-extern void (*gg_debug_handler_session)(struct gg_session *sess, int level, const char *format, va_list ap);
-extern FILE *gg_debug_file;
-#define GG_DEBUG_NET 1 /**< Rejestracja zdarzeń związanych z siecią */
-#define GG_DEBUG_TRAFFIC 2 /**< Rejestracja ruchu sieciowego */
-#define GG_DEBUG_DUMP 4 /**< Rejestracja zawartości pakietów */
-#define GG_DEBUG_FUNCTION 8 /**< Rejestracja wywołań funkcji */
-#define GG_DEBUG_MISC 16 /**< Rejestracja różnych informacji */
-#define gg_debug(x, y...) do { } while(0)
-#define gg_debug_session(z, x, y...) do { } while(0)
-void gg_debug(int level, const char *format, ...);
-void gg_debug_session(struct gg_session *sess, int level, const char *format, ...);
-const char *gg_libgadu_version(void);
- * Lista funkcji biblioteki, które zależą od zewnętrznych bibliotek.
- GG_LIBGADU_FEATURE_SSL, /**< Biblioteka obsługuje połączenia szyfrowane */
- GG_LIBGADU_FEATURE_PTHREAD, /**< Biblioteka obsługuje rozwiązywanie nazw za pomocą wątków */
- GG_LIBGADU_FEATURE_USERLIST100, /**< Biblioteka obsługuje listę kontaktów zgodną z Gadu-Gadu 10 */
-int gg_libgadu_check_feature(gg_libgadu_feature_t feature);
-extern int gg_proxy_enabled;
-extern char *gg_proxy_host;
-extern int gg_proxy_port;
-extern char *gg_proxy_username;
-extern char *gg_proxy_password;
-extern int gg_proxy_http_only;
-extern unsigned long gg_local_ip;
-#define GG_LOGIN_HASH_GG32 0x01 /**< Algorytm Gadu-Gadu */
-#define GG_LOGIN_HASH_SHA1 0x02 /**< Algorytm SHA1 */
-#define GG_PUBDIR50_WRITE 0x01
-#define GG_PUBDIR50_READ 0x02
-#define GG_PUBDIR50_SEARCH 0x03
-#define GG_PUBDIR50_SEARCH_REQUEST GG_PUBDIR50_SEARCH
-#define GG_PUBDIR50_SEARCH_REPLY 0x05
- * Rodzaj zapytania lub odpowiedzi katalogu publicznego.
- GG_PUBDIR50_WRITE, /**< Wysłanie do serwera informacji o sobie */
- GG_PUBDIR50_READ, /**< Pobranie z serwera informacji o sobie */
- GG_PUBDIR50_SEARCH, /**< Wyszukiwanie w katalogu publicznym */
- GG_PUBDIR50_SEARCH_REPLY, /**< Wynik wyszukiwania w katalogu publicznym */
-#define gg_free_event gg_event_free
-#define gg_free_http gg_http_free
-#define gg_free_pubdir gg_pubdir_free
-#define gg_free_register gg_pubdir_free
-#define gg_free_remind_passwd gg_pubdir_free
-#define gg_free_dcc gg_dcc_free
-#define gg_free_change_passwd gg_pubdir_free
-struct gg_search_request {
- struct gg_search_result *results;
-struct gg_search_result {
-#define GG_GENDER_NONE 0
-#define GG_GENDER_FEMALE 1
-#define GG_GENDER_MALE 2
-struct gg_http *gg_search(const struct gg_search_request *r, int async) GG_DEPRECATED;
-int gg_search_watch_fd(struct gg_http *f) GG_DEPRECATED;
-void gg_free_search(struct gg_http *f) GG_DEPRECATED;
-#define gg_search_free gg_free_search
-const struct gg_search_request *gg_search_request_mode_0(char *nickname, char *first_name, char *last_name, char *city, int gender, int min_birth, int max_birth, int active, int start) GG_DEPRECATED;
-const struct gg_search_request *gg_search_request_mode_1(char *email, int active, int start) GG_DEPRECATED;
-const struct gg_search_request *gg_search_request_mode_2(char *phone, int active, int start) GG_DEPRECATED;
-const struct gg_search_request *gg_search_request_mode_3(uin_t uin, int active, int start) GG_DEPRECATED;
-void gg_search_request_free(struct gg_search_request *r) GG_DEPRECATED;
-struct gg_http *gg_register(const char *email, const char *password, int async) GG_DEPRECATED;
-struct gg_http *gg_register2(const char *email, const char *password, const char *qa, int async) GG_DEPRECATED;
-struct gg_http *gg_unregister(uin_t uin, const char *password, const char *email, int async) GG_DEPRECATED;
-struct gg_http *gg_unregister2(uin_t uin, const char *password, const char *qa, int async) GG_DEPRECATED;
-struct gg_http *gg_remind_passwd(uin_t uin, int async) GG_DEPRECATED;
-struct gg_http *gg_remind_passwd2(uin_t uin, const char *tokenid, const char *tokenval, int async) GG_DEPRECATED;
-struct gg_http *gg_change_passwd(uin_t uin, const char *passwd, const char *newpasswd, const char *newemail, int async) GG_DEPRECATED;
-struct gg_http *gg_change_passwd2(uin_t uin, const char *passwd, const char *newpasswd, const char *email, const char *newemail, int async) GG_DEPRECATED;
-struct gg_http *gg_change_passwd3(uin_t uin, const char *passwd, const char *newpasswd, const char *qa, int async) GG_DEPRECATED;
-struct gg_change_info_request {
-struct gg_change_info_request *gg_change_info_request_new(const char *first_name, const char *last_name, const char *nickname, const char *email, int born, int gender, const char *city) GG_DEPRECATED;
-void gg_change_info_request_free(struct gg_change_info_request *r) GG_DEPRECATED;
-struct gg_http *gg_change_info(uin_t uin, const char *passwd, const struct gg_change_info_request *request, int async) GG_DEPRECATED;
-#define gg_change_pubdir_watch_fd gg_pubdir_watch_fd
-#define gg_change_pubdir_free gg_pubdir_free
-#define gg_free_change_pubdir gg_pubdir_free
-struct gg_http *gg_userlist_get(uin_t uin, const char *password, int async) GG_DEPRECATED;
-int gg_userlist_get_watch_fd(struct gg_http *f) GG_DEPRECATED;
-void gg_userlist_get_free(struct gg_http *f) GG_DEPRECATED;
-struct gg_http *gg_userlist_put(uin_t uin, const char *password, const char *contacts, int async) GG_DEPRECATED;
-int gg_userlist_put_watch_fd(struct gg_http *f) GG_DEPRECATED;
-void gg_userlist_put_free(struct gg_http *f) GG_DEPRECATED;
-struct gg_http *gg_userlist_remove(uin_t uin, const char *password, int async) GG_DEPRECATED;
-int gg_userlist_remove_watch_fd(struct gg_http *f) GG_DEPRECATED;
-void gg_userlist_remove_free(struct gg_http *f) GG_DEPRECATED;
-int gg_pubdir50_handle_reply(struct gg_event *e, const char *packet, int length) GG_DEPRECATED;
-int gg_file_hash_sha1(int fd, uint8_t *result) GG_DEPRECATED;
-char *gg_saprintf(const char *format, ...) __attribute__ ((format (printf, 1, 2))) GG_DEPRECATED;
-char *gg_saprintf(const char *format, ...) GG_DEPRECATED;
-char *gg_vsaprintf(const char *format, va_list ap) GG_DEPRECATED;
-#define gg_alloc_sprintf gg_saprintf
-char *gg_get_line(char **ptr) GG_DEPRECATED;
-int gg_connect(void *addr, int port, int async) GG_DEPRECATED;
-struct in_addr *gg_gethostbyname(const char *hostname) GG_DEPRECATED;
-char *gg_read_line(int sock, char *buf, int length) GG_DEPRECATED;
-void gg_chomp(char *line) GG_DEPRECATED;
-char *gg_urlencode(const char *str) GG_DEPRECATED;
-int gg_http_hash(const char *format, ...) GG_DEPRECATED;
-void gg_http_free_fields(struct gg_http *h) GG_DEPRECATED;
-int gg_read(struct gg_session *sess, char *buf, int length) GG_DEPRECATED;
-int gg_write(struct gg_session *sess, const char *buf, int length) GG_DEPRECATED;
-void *gg_recv_packet(struct gg_session *sess) GG_DEPRECATED;
-int gg_send_packet(struct gg_session *sess, int type, ...) GG_DEPRECATED;
-unsigned int gg_login_hash(const unsigned char *password, unsigned int seed) GG_DEPRECATED;
-void gg_login_hash_sha1(const char *password, uint32_t seed, uint8_t *result) GG_DEPRECATED;
-uint32_t gg_fix32(uint32_t x);
-uint16_t gg_fix16(uint16_t x);
-char *gg_proxy_auth(void) GG_DEPRECATED;
-char *gg_base64_encode(const char *buf) GG_DEPRECATED;
-char *gg_base64_decode(const char *buf) GG_DEPRECATED;
-int gg_image_queue_remove(struct gg_session *s, struct gg_image_queue *q, int freeq) GG_DEPRECATED;
- * Kolejka odbieranych obrazków.
- uin_t sender; /**< Nadawca obrazka */
- uint32_t size; /**< Rozmiar obrazka */
- uint32_t crc32; /**< Suma kontrolna CRC32 */
- char *filename; /**< Nazwa pliku */
- char *image; /**< Bufor z odebranymi danymi */
- uint32_t done; /**< Rozmiar odebranych danych */
- struct gg_image_queue *next; /**< Kolejny element listy */
-int gg_dcc7_handle_id(struct gg_session *sess, struct gg_event *e, const void *payload, int len) GG_DEPRECATED;
-int gg_dcc7_handle_new(struct gg_session *sess, struct gg_event *e, const void *payload, int len) GG_DEPRECATED;
-int gg_dcc7_handle_info(struct gg_session *sess, struct gg_event *e, const void *payload, int len) GG_DEPRECATED;
-int gg_dcc7_handle_accept(struct gg_session *sess, struct gg_event *e, const void *payload, int len) GG_DEPRECATED;
-int gg_dcc7_handle_reject(struct gg_session *sess, struct gg_event *e, const void *payload, int len) GG_DEPRECATED;
-#define GG_APPMSG_HOST "appmsg.gadu-gadu.pl"
-#define GG_APPMSG_PORT 80
-#define GG_PUBDIR_HOST "pubdir.gadu-gadu.pl"
-#define GG_PUBDIR_PORT 80
-#define GG_REGISTER_HOST "register.gadu-gadu.pl"
-#define GG_REGISTER_PORT 80
-#define GG_REMIND_HOST "retr.gadu-gadu.pl"
-#define GG_REMIND_PORT 80
-#define GG_RELAY_HOST "relay.gadu-gadu.pl"
-#define GG_RELAY_PORT 80
-#define GG_DEFAULT_PORT 8074
-#define GG_HTTPS_PORT 443
-#define GG_HTTP_USERAGENT "Mozilla/4.7 [en] (Win98; I)"
-#define GG_DEFAULT_CLIENT_VERSION "10.1.0.11070"
-#define GG_DEFAULT_PROTOCOL_VERSION 0x2e
-#define GG_DEFAULT_TIMEOUT 30
-#define GG_HAS_AUDIO_MASK 0x40000000
-#define GG_HAS_AUDIO7_MASK 0x20000000
-#define GG_ERA_OMNIX_MASK 0x04000000
-#undef GG_LIBGADU_VERSION
-#define GG_FEATURE_MSG77 0x0001
-#define GG_FEATURE_STATUS77 0x0002
-#define GG_FEATURE_UNKNOWN_4 0x0004
-#define GG_FEATURE_UNKNOWN_8 0x0008
-#define GG_FEATURE_DND_FFC 0x0010
-#define GG_FEATURE_IMAGE_DESCR 0x0020
-#define GG_FEATURE_UNKNOWN_40 0x0040
-#define GG_FEATURE_UNKNOWN_80 0x0080
-#define GG_FEATURE_UNKNOWN_100 0x0100
-#define GG_FEATURE_USER_DATA 0x0200
-#define GG_FEATURE_MSG_ACK 0x0400
-#define GG_FEATURE_UNKNOWN_800 0x0800
-#define GG_FEATURE_UNKNOWN_1000 0x1000
-#define GG_FEATURE_TYPING_NOTIFICATION 0x2000
-#define GG_FEATURE_MULTILOGON 0x4000
-/* Poniższe makra zostały zachowane dla zgodności API */
-#define GG_FEATURE_MSG80 0
-#define GG_FEATURE_STATUS80 0
-#define GG_FEATURE_STATUS80BETA 0
-#define GG_FEATURE_ALL (GG_FEATURE_MSG80 | GG_FEATURE_STATUS80 | GG_FEATURE_DND_FFC | GG_FEATURE_IMAGE_DESCR | GG_FEATURE_UNKNOWN_100 | GG_FEATURE_USER_DATA | GG_FEATURE_MSG_ACK | GG_FEATURE_TYPING_NOTIFICATION)
- * Flagi opcji protokołu.
- GG_FEATURE_MSG77, /**< Klient życzy sobie otrzymywać wiadomości zgodnie z protokołem 7.7 */
- GG_FEATURE_STATUS77, /**< Klient życzy sobie otrzymywać zmiany stanu zgodnie z protokołem 7.7 */
- GG_FEATURE_DND_FFC, /**< Klient obsługuje statusy "nie przeszkadzać" i "poGGadaj ze mną" */
- GG_FEATURE_IMAGE_DESCR, /**< Klient obsługuje opisy graficzne oraz flagę \c GG_STATUS80_DESCR_MASK */
-#define GG_DEFAULT_DCC_PORT 1550
- uint32_t type; /* typ pakietu */
- uint32_t length; /* długość reszty pakietu */
-#define GG_WELCOME 0x0001
-#define GG_NEED_EMAIL 0x0014
- uint32_t key; /* klucz szyfrowania hasła */
- uint32_t uin; /* mój numerek */
- uint32_t hash; /* hash hasła */
- uint32_t status; /* status na dzień dobry */
- uint32_t version; /* moja wersja klienta */
- uint32_t local_ip; /* mój adres ip */
- uint16_t local_port; /* port, na którym słucham */
-#define GG_LOGIN_EXT 0x0013
- uint32_t uin; /* mój numerek */
- uint32_t hash; /* hash hasła */
- uint32_t status; /* status na dzień dobry */
- uint32_t version; /* moja wersja klienta */
- uint32_t local_ip; /* mój adres ip */
- uint16_t local_port; /* port, na którym słucham */
- uint32_t external_ip; /* zewnętrzny adres ip */
- uint16_t external_port; /* zewnętrzny port */
-#define GG_LOGIN60 0x0015
- uint32_t uin; /* mój numerek */
- uint32_t hash; /* hash hasła */
- uint32_t status; /* status na dzień dobry */
- uint32_t version; /* moja wersja klienta */
- uint8_t dunno1; /* 0x00 */
- uint32_t local_ip; /* mój adres ip */
- uint16_t local_port; /* port, na którym słucham */
- uint32_t external_ip; /* zewnętrzny adres ip */
- uint16_t external_port; /* zewnętrzny port */
- uint8_t image_size; /* maksymalny rozmiar grafiki w KiB */
- uint8_t dunno2; /* 0xbe */
-#define GG_LOGIN70 0x0019
- uint32_t uin; /* mój numerek */
- uint8_t hash_type; /* rodzaj hashowania hasła */
- uint8_t hash[64]; /* hash hasła dopełniony zerami */
- uint32_t status; /* status na dzień dobry */
- uint32_t version; /* moja wersja klienta */
- uint8_t dunno1; /* 0x00 */
- uint32_t local_ip; /* mój adres ip */
- uint16_t local_port; /* port, na którym słucham */
- uint32_t external_ip; /* zewnętrzny adres ip (???) */
- uint16_t external_port; /* zewnętrzny port (???) */
- uint8_t image_size; /* maksymalny rozmiar grafiki w KiB */
- uint8_t dunno2; /* 0xbe */
-#define GG_LOGIN_OK 0x0003
-#define GG_LOGIN_FAILED 0x0009
-#define GG_PUBDIR50_REQUEST 0x0014
-struct gg_pubdir50_request {
- uint8_t type; /* GG_PUBDIR50_* */
- uint32_t seq; /* czas wysłania zapytania */
-#define GG_PUBDIR50_REPLY 0x000e
-struct gg_pubdir50_reply {
- uint8_t type; /* GG_PUBDIR50_* */
- uint32_t seq; /* czas wysłania zapytania */
-#define GG_NEW_STATUS 0x0002
-#define GG_STATUS_NOT_AVAIL 0x0001
-#define GG_STATUS_NOT_AVAIL_DESCR 0x0015
-#define GG_STATUS_FFC 0x0017
-#define GG_STATUS_FFC_DESCR 0x0018
-#define GG_STATUS_AVAIL 0x0002
-#define GG_STATUS_AVAIL_DESCR 0x0004
-#define GG_STATUS_BUSY 0x0003
-#define GG_STATUS_BUSY_DESCR 0x0005
-#define GG_STATUS_DND 0x0021
-#define GG_STATUS_DND_DESCR 0x0022
-#define GG_STATUS_INVISIBLE 0x0014
-#define GG_STATUS_INVISIBLE_DESCR 0x0016
-#define GG_STATUS_BLOCKED 0x0006
-#define GG_STATUS_IMAGE_MASK 0x0100
-#define GG_STATUS_DESCR_MASK 0x4000
-#define GG_STATUS_FRIENDS_MASK 0x8000
-#define GG_STATUS_FLAG_UNKNOWN 0x00000001
-#define GG_STATUS_FLAG_VIDEO 0x00000002
-#define GG_STATUS_FLAG_MOBILE 0x00100000
-#define GG_STATUS_FLAG_SPAM 0x00800000
- * Rodzaje statusów użytkownika.
- GG_STATUS_NOT_AVAIL, /**< Niedostępny */
- GG_STATUS_NOT_AVAIL_DESCR, /**< Niedostępny z opisem */
- GG_STATUS_FFC, /**< PoGGadaj ze mnÄ… */
- GG_STATUS_FFC_DESCR, /**< PoGGadaj ze mnÄ… z opisem */
- GG_STATUS_AVAIL, /**< Dostępny */
- GG_STATUS_AVAIL_DESCR, /**< Dostępny z opisem */
- GG_STATUS_BUSY, /**< Zajęty */
- GG_STATUS_BUSY_DESCR, /**< Zajęty z opisem */
- GG_STATUS_DND, /**< Nie przeszkadzać */
- GG_STATUS_DND_DESCR, /**< Nie przeszakdzać z opisem */
- GG_STATUS_INVISIBLE, /**< Niewidoczny (tylko własny status) */
- GG_STATUS_INVISIBLE_DESCR, /**< Niewidoczny z opisem (tylko własny status) */
- GG_STATUS_BLOCKED, /**< Zablokowany (tylko status innych) */
- GG_STATUS_IMAGE_MASK, /**< Flaga bitowa oznaczająca opis graficzny (tylko jeśli wybrano \c GG_FEATURE_IMAGE_DESCR) */
- GG_STATUS_DESCR_MASK, /**< Flaga bitowa oznaczająca status z opisem (tylko jeśli wybrano \c GG_FEATURE_IMAGE_DESCR) */
- GG_STATUS_FRIENDS_MASK, /**< Flaga bitowa dostępności tylko dla znajomych */
- * Rodzaje statusów użytkownika. Mapa bitowa.
- GG_STATUS_FLAG_UNKNOWN, /**< Przeznaczenie nieznane, ale występuje zawsze */
- GG_STATUS_FLAG_VIDEO, /**< Klient obsługuje wideorozmowy */
- GG_STATUS_FLAG_MOBILE, /**< Klient mobilny (ikona telefonu komórkowego) */
- GG_STATUS_FLAG_SPAM, /**< Klient chce otrzymywać linki od nieznajomych */
- * Flaga bitowa dostepnosci informujaca ze mozemy voipowac
-#define GG_STATUS_VOICE_MASK 0x20000 /**< czy ma wlaczone audio (7.7) */
- * Maksymalna długośc opisu.
-#define GG_STATUS_DESCR_MAXSIZE 255
-#define GG_STATUS_DESCR_MAXSIZE_PRE_8_0 70
-#define GG_STATUS_MASK 0xff
-/* GG_S_F() tryb tylko dla znajomych */
-#define GG_S_F(x) (((x) & GG_STATUS_FRIENDS_MASK) != 0)
-/* GG_S() stan bez uwzględnienia dodatkowych flag */
-#define GG_S(x) ((x) & GG_STATUS_MASK)
-/* GG_S_FF() chętny do rozmowy */
-#define GG_S_FF(x) (GG_S(x) == GG_STATUS_FFC || GG_S(x) == GG_STATUS_FFC_DESCR)
-/* GG_S_AV() dostępny */
-#define GG_S_AV(x) (GG_S(x) == GG_STATUS_AVAIL || GG_S(x) == GG_STATUS_AVAIL_DESCR)
-/* GG_S_AW() zaraz wracam */
-#define GG_S_AW(x) (GG_S(x) == GG_STATUS_BUSY || GG_S(x) == GG_STATUS_BUSY_DESCR)
-/* GG_S_DD() nie przeszkadzać */
-#define GG_S_DD(x) (GG_S(x) == GG_STATUS_DND || GG_S(x) == GG_STATUS_DND_DESCR)
-/* GG_S_NA() niedostępny */
-#define GG_S_NA(x) (GG_S(x) == GG_STATUS_NOT_AVAIL || GG_S(x) == GG_STATUS_NOT_AVAIL_DESCR)
-/* GG_S_I() niewidoczny */
-#define GG_S_I(x) (GG_S(x) == GG_STATUS_INVISIBLE || GG_S(x) == GG_STATUS_INVISIBLE_DESCR)
-/* GG_S_A() dostępny lub chętny do rozmowy */
-#define GG_S_A(x) (GG_S_FF(x) || GG_S_AV(x))
-/* GG_S_B() zajęty lub nie przeszkadzać */
-#define GG_S_B(x) (GG_S_AW(x) || GG_S_DD(x))
-/* GG_S_D() stan opisowy */
-#define GG_S_D(x) (GG_S(x) == GG_STATUS_NOT_AVAIL_DESCR || \
- GG_S(x) == GG_STATUS_FFC_DESCR || \
- GG_S(x) == GG_STATUS_AVAIL_DESCR || \
- GG_S(x) == GG_STATUS_BUSY_DESCR || \
- GG_S(x) == GG_STATUS_DND_DESCR || \
- GG_S(x) == GG_STATUS_INVISIBLE_DESCR)
-/* GG_S_BL() blokowany lub blokujÄ…cy */
-#define GG_S_BL(x) (GG_S(x) == GG_STATUS_BLOCKED)
- * Zmiana statusu (pakiet \c GG_NEW_STATUS i \c GG_NEW_STATUS80BETA)
- uint32_t status; /**< Nowy status */
-#define GG_NOTIFY_FIRST 0x000f
-#define GG_NOTIFY_LAST 0x0010
-#define GG_NOTIFY 0x0010
- uint32_t uin; /* numerek danej osoby */
- uint8_t dunno1; /* rodzaj wpisu w liście */
-#define GG_USER_OFFLINE 0x01
-#define GG_USER_NORMAL 0x03
-#define GG_USER_BLOCKED 0x04
- GG_USER_NORMAL, /**< Zwykły kontakt */
- GG_USER_BLOCKED, /**< Zablokowany */
- GG_USER_OFFLINE, /**< Niewidoczny dla kontaktu */
-#define GG_LIST_EMPTY 0x0012
-#define GG_NOTIFY_REPLY 0x000c /* tak, to samo co GG_LOGIN */
-struct gg_notify_reply {
- uint32_t uin; /* numerek */
- uint32_t status; /* status danej osoby */
- uint32_t remote_ip; /* adres ip delikwenta */
- uint16_t remote_port; /* port, na którym słucha klient */
- uint32_t version; /* wersja klienta */
- uint16_t dunno2; /* znowu port? */
-#define GG_NOTIFY_REPLY60 0x0011
-struct gg_notify_reply60 {
- uint32_t uin; /* numerek plus flagi w MSB */
- uint8_t status; /* status danej osoby */
- uint32_t remote_ip; /* adres ip delikwenta */
- uint16_t remote_port; /* port, na którym słucha klient */
- uint8_t version; /* wersja klienta */
- uint8_t image_size; /* maksymalny rozmiar grafiki w KiB */
- uint8_t dunno1; /* 0x00 */
-#define GG_STATUS60 0x000f
- uint32_t uin; /* numerek plus flagi w MSB */
- uint8_t status; /* status danej osoby */
- uint32_t remote_ip; /* adres ip delikwenta */
- uint16_t remote_port; /* port, na którym słucha klient */
- uint8_t version; /* wersja klienta */
- uint8_t image_size; /* maksymalny rozmiar grafiki w KiB */
- uint8_t dunno1; /* 0x00 */
-#define GG_NOTIFY_REPLY77 0x0018
-struct gg_notify_reply77 {
- uint32_t uin; /* numerek plus flagi w MSB */
- uint8_t status; /* status danej osoby */
- uint32_t remote_ip; /* adres ip delikwenta */
- uint16_t remote_port; /* port, na którym słucha klient */
- uint8_t version; /* wersja klienta */
- uint8_t image_size; /* maksymalny rozmiar grafiki w KiB */
- uint8_t dunno1; /* 0x00 */
- uint32_t dunno2; /* ? */
-#define GG_STATUS77 0x0017
- uint32_t uin; /* numerek plus flagi w MSB */
- uint8_t status; /* status danej osoby */
- uint32_t remote_ip; /* adres ip delikwenta */
- uint16_t remote_port; /* port, na którym słucha klient */
- uint8_t version; /* wersja klienta */
- uint8_t image_size; /* maksymalny rozmiar grafiki w KiB */
- uint8_t dunno1; /* 0x00 */
- uint32_t dunno2; /* ? */
-#define GG_ADD_NOTIFY 0x000d
-#define GG_REMOVE_NOTIFY 0x000e
- uint32_t uin; /* numerek */
- uint8_t dunno1; /* bitmapa */
-#define GG_STATUS 0x0002
- uint32_t uin; /* numerek */
- uint32_t status; /* nowy stan */
-#define GG_SEND_MSG 0x000b
-#define GG_CLASS_QUEUED 0x0001
-#define GG_CLASS_OFFLINE GG_CLASS_QUEUED
-#define GG_CLASS_MSG 0x0004
-#define GG_CLASS_CHAT 0x0008
-#define GG_CLASS_CTCP 0x0010
-#define GG_CLASS_ACK 0x0020
-#define GG_CLASS_EXT GG_CLASS_ACK /**< Dla kompatybilności wstecz */
- * Klasy wiadomości. Wartości są maskami bitowymi, które w większości
- * przypadków można łączyć (połączenie \c GG_CLASS_MSG i \c GG_CLASS_CHAT
- GG_CLASS_MSG, /**< Wiadomość ma pojawić się w osobnym oknie */
- GG_CLASS_CHAT, /**< Wiadomość ma pojawić się w oknie rozmowy */
- GG_CLASS_CTCP, /**< Wiadomość przeznaczona dla klienta Gadu-Gadu */
- GG_CLASS_ACK, /**< Klient nie życzy sobie potwierdzenia */
- GG_CLASS_QUEUED, /**< Wiadomość zakolejkowana na serwerze (tylko przy odbieraniu) */
- * Maksymalna długość wiadomości.
-#define GG_MSG_MAXSIZE 1989
-struct gg_msg_richtext {
- * Struktura opisująca formatowanie tekstu. W zależności od wartości pola
- * \c font, zaraz za tą strukturą może wystąpić \c gg_msg_richtext_color
- * lub \c gg_msg_richtext_image.
-struct gg_msg_richtext_format {
- uint16_t position; /**< PoczÄ…tkowy znak formatowania (liczony od 0) */
- uint8_t font; /**< Atrybuty formatowania */
-#define GG_FONT_BOLD 0x01
-#define GG_FONT_ITALIC 0x02
-#define GG_FONT_UNDERLINE 0x04
-#define GG_FONT_COLOR 0x08
-#define GG_FONT_IMAGE 0x80
- * Atrybuty formatowania wiadomości.
- * Struktura opisujÄ…cÄ… kolor tekstu dla atrybutu \c GG_FONT_COLOR.
-struct gg_msg_richtext_color {
- uint8_t red; /**< Składowa czerwona koloru */
- uint8_t green; /**< Składowa zielona koloru */
- uint8_t blue; /**< Składowa niebieska koloru */
- * Strukturya opisująca obrazek wstawiony do wiadomości dla atrubutu
-struct gg_msg_richtext_image {
- uint16_t unknown1; /**< Nieznane pole o wartości 0x0109 */
- uint32_t size; /**< Rozmiar obrazka */
- uint32_t crc32; /**< Suma kontrolna CRC32 obrazka */
-struct gg_msg_recipients {
-struct gg_msg_image_request {
-struct gg_msg_image_reply {
-#define GG_SEND_MSG_ACK 0x0005
-#define GG_ACK_BLOCKED 0x0001
-#define GG_ACK_DELIVERED 0x0002
-#define GG_ACK_QUEUED 0x0003
-#define GG_ACK_MBOXFULL 0x0004
-#define GG_ACK_NOT_DELIVERED 0x0006
- * Status doręczenia wiadomości.
- GG_ACK_DELIVERED, /**< Wiadomość dostarczono. */
- GG_ACK_QUEUED, /**< Wiadomość zakolejkowano z powodu niedostępności odbiorcy. */
- GG_ACK_BLOCKED, /**< Wiadomość zablokowana przez serwer (spam, świąteczne ograniczenia itd.) */
- GG_ACK_MBOXFULL, /**< Wiadomości nie dostarczono z powodu zapełnionej kolejki wiadomości odbiorcy. */
- GG_ACK_NOT_DELIVERED /**< Wiadomości nie dostarczono (tylko dla \c GG_CLASS_CTCP). */
-struct gg_send_msg_ack {
-#define GG_RECV_MSG 0x000a
-#define GG_DISCONNECTING 0x000b
-#define GG_USERLIST_REQUEST 0x0016
-#define GG_XML_EVENT 0x0027
-#define GG_USERLIST_PUT 0x00
-#define GG_USERLIST_PUT_MORE 0x01
-#define GG_USERLIST_GET 0x02
- * \ingroup importexport
- GG_USERLIST_PUT, /**< Eksport listy kontaktów. */
- GG_USERLIST_GET, /**< Import listy kontaktów. */
-struct gg_userlist_request {
-#define GG_USERLIST_REPLY 0x0010
-#define GG_USERLIST_PUT_REPLY 0x00
-#define GG_USERLIST_PUT_MORE_REPLY 0x02
-#define GG_USERLIST_GET_REPLY 0x06
-#define GG_USERLIST_GET_MORE_REPLY 0x04
- * \ingroup importexport
- GG_USERLIST_PUT_REPLY, /**< Wyeksportowano listy kontaktów. */
- GG_USERLIST_GET_REPLY, /**< Zaimportowano listę kontaktów. */
-struct gg_userlist_reply {
-#define GG_USERLIST100_PUT 0x00
-#define GG_USERLIST100_GET 0x02
- * \ingroup importexport
- * Rodzaj zapytania (10.0).
- GG_USERLIST100_PUT, /**< Eksport listy kontaktów. */
- GG_USERLIST100_GET, /**< Import listy kontaktów. */
-#define GG_USERLIST100_FORMAT_TYPE_NONE 0x00
-#define GG_USERLIST100_FORMAT_TYPE_GG70 0x01
-#define GG_USERLIST100_FORMAT_TYPE_GG100 0x02
- * \ingroup importexport
- * Typ formatu listy kontaktów (10.0).
- GG_USERLIST100_FORMAT_TYPE_NONE, /**< Brak treści listy kontaktów. */
- GG_USERLIST100_FORMAT_TYPE_GG70, /**< Format listy kontaktów zgodny z Gadu-Gadu 7.0. */
- GG_USERLIST100_FORMAT_TYPE_GG100, /**< Format listy kontaktów zgodny z Gadu-Gadu 10.0. */
-#define GG_USERLIST100_REPLY_LIST 0x00
-#define GG_USERLIST100_REPLY_ACK 0x10
-#define GG_USERLIST100_REPLY_REJECT 0x12
- * \ingroup importexport
- * Typ odpowiedzi listy kontaktów (10.0).
- GG_USERLIST100_REPLY_LIST, /**< W odpowiedzi znajduje się aktualna lista kontaktów na serwerze. */
- GG_USERLIST100_REPLY_ACK, /**< Potwierdzenie odebrania nowej wersji listy kontaktów. W polu \c gg_userlist100_reply.version znajduje się numer nowej wersji listy kontaktów. */
- GG_USERLIST100_REPLY_REJECT, /**< Odmowa przyjęcia nowej wersji listy kontaktów. W polu \c gg_userlist100_reply.version znajduje się numer wersji listy kontaktów aktualnie przechowywanej przez serwer. */
-struct gg_dcc_tiny_packet {
- uint8_t type; /* rodzaj pakietu */
-struct gg_dcc_small_packet {
- uint32_t type; /* rodzaj pakietu */
-struct gg_dcc_big_packet {
- uint32_t type; /* rodzaj pakietu */
- uint32_t dunno1; /* niewiadoma */
- uint32_t dunno2; /* niewiadoma */
- * póki co, nie znamy dokładnie protokołu. nie wiemy, co czemu odpowiada.
- * nazwy są niepoważne i tymczasowe.
-#define GG_DCC_WANT_FILE 0x0003 /* peer chce plik */
-#define GG_DCC_HAVE_FILE 0x0001 /* więc mu damy */
-#define GG_DCC_HAVE_FILEINFO 0x0003 /* niech ma informacje o pliku */
-#define GG_DCC_GIMME_FILE 0x0006 /* peer jest pewny */
-#define GG_DCC_CATCH_FILE 0x0002 /* wysyłamy plik */
-#define GG_DCC_FILEATTR_READONLY 0x0020
-#define GG_DCC_TIMEOUT_SEND 1800 /* 30 minut */
-#define GG_DCC_TIMEOUT_GET 1800 /* 30 minut */
-#define GG_DCC_TIMEOUT_FILE_ACK 300 /* 5 minut */
-#define GG_DCC_TIMEOUT_VOICE_ACK 300 /* 5 minut */
-#define GG_DCC7_INFO 0x1f
- uint32_t uin; /* numer nadawcy */
- uint32_t type; /* sposób połączenia */
- gg_dcc7_id_t id; /* identyfikator połączenia */
- char info[GG_DCC7_INFO_LEN]; /* informacje o połączeniu "ip port" */
- char hash[GG_DCC7_INFO_HASH_LEN];/* skrót "ip" */
-#define GG_DCC7_NEW 0x20
- gg_dcc7_id_t id; /* identyfikator połączenia */
- uint32_t uin_from; /* numer nadawcy */
- uint32_t uin_to; /* numer odbiorcy */
- uint32_t type; /* rodzaj transmisji */
- unsigned char filename[GG_DCC7_FILENAME_LEN]; /* nazwa pliku */
- uint32_t size; /* rozmiar pliku */
- uint32_t size_hi; /* rozmiar pliku (starsze bajty) */
- unsigned char hash[GG_DCC7_HASH_LEN]; /* hash SHA1 */
-#define GG_DCC7_ACCEPT 0x21
- uint32_t uin; /* numer przyjmującego połączenie */
- gg_dcc7_id_t id; /* identyfikator połączenia */
- uint32_t offset; /* offset przy wznawianiu transmisji */
- uint32_t dunno1; /* 0x00000000 */
-#define GG_DCC7_TYPE_P2P 0x00000001 /**< Połączenie bezpośrednie */
-#define GG_DCC7_TYPE_SERVER 0x00000002 /**< Połączenie przez serwer */
-#define GG_DCC7_REJECT 0x22
- uint32_t uin; /**< Numer odrzucającego połączenie */
- gg_dcc7_id_t id; /**< Identyfikator połączenia */
- uint32_t reason; /**< Powód rozłączenia */
-#define GG_DCC7_REJECT_BUSY 0x00000001 /**< Połączenie bezpośrednie już trwa, nie umiem obsłużyć więcej */
-#define GG_DCC7_REJECT_USER 0x00000002 /**< Użytkownik odrzucił połączenie */
-#define GG_DCC7_REJECT_VERSION 0x00000006 /**< Druga strona ma wersję klienta nieobsługującą połączeń bezpośrednich tego typu */
-#define GG_DCC7_ID_REQUEST 0x23
-struct gg_dcc7_id_request {
- uint32_t type; /**< Rodzaj tranmisji */
-#define GG_DCC7_TYPE_VOICE 0x00000001 /**< Transmisja głosu */
-#define GG_DCC7_TYPE_FILE 0x00000004 /**< transmisja pliku */
-#define GG_DCC7_ID_REPLY 0x23
-struct gg_dcc7_id_reply {
- uint32_t type; /** Rodzaj transmisji */
- gg_dcc7_id_t id; /** Przyznany identyfikator */
-#define GG_DCC7_DUNNO1 0x24
-#define GG_DCC7_TIMEOUT_CONNECT 10 /* 10 sekund */
-#define GG_DCC7_TIMEOUT_SEND 1800 /* 30 minut */
-#define GG_DCC7_TIMEOUT_GET 1800 /* 30 minut */
-#define GG_DCC7_TIMEOUT_FILE_ACK 300 /* 5 minut */
-#define GG_DCC7_TIMEOUT_VOICE_ACK 300 /* 5 minut */
-#endif /* __GG_LIBGADU_H */
- * c-indentation-style: k&r
- * indent-tabs-mode: notnil
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/libpurple.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-#include <libpurple/gaim-compat.h>
-#include <libpurple/connection.h>
-#include <libpurple/conversation.h>
-#include <libpurple/core.h>
-#include <libpurple/debug.h>
-#include <libpurple/dnsquery.h>
-#include <libpurple/ft.h>
-#include <libpurple/imgstore.h>
-#include <libpurple/network.h>
-#include <libpurple/notify.h>
-#include <libpurple/plugin.h>
-#include <libpurple/pounce.h>
-#include <libpurple/prefs.h>
-#include <libpurple/privacy.h>
-#include <libpurple/proxy.h>
-#include <libpurple/request.h>
-#include <libpurple/roomlist.h>
-#include <libpurple/signals.h>
-#include <libpurple/sslconn.h>
-#include <libpurple/sound.h>
-#include <libpurple/util.h>
-#include <libpurple/whiteboard.h>
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/libymsg.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,401 +0,0 @@
- * @file libymsg.h The Yahoo! and Yahoo! JAPAN Protocol Plugins
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#define YAHOO_PAGER_HOST_REQ_URL "http://vcs1.msg.yahoo.com/capacity"
-#define YAHOO_PAGER_HOST_FALLBACK "scsa.msg.yahoo.com"
-#define YAHOO_PAGER_PORT 5050
-#define YAHOO_PAGER_PORT_P2P 5101
-#define YAHOO_LOGIN_URL "https://login.yahoo.com/config/pwtoken_login?src=ymsgr&ts=&token=%s"
-#define YAHOO_TOKEN_URL "https://login.yahoo.com/config/pwtoken_get?src=ymsgr&ts=&login=%s&passwd=%s&chal=%s"
-#define YAHOO_P2P_KEEPALIVE_SECS 300
-#define YAHOO_P2P_SERVER_TIMEOUT 10
-#define YAHOO_PROFILE_URL "http://profiles.yahoo.com/"
-#define YAHOO_MAIL_URL "http://rd.yahoo.com/messenger/client/?http://mail.yahoo.com/"
-#define YAHOO_XFER_HOST "filetransfer.msg.yahoo.com"
-#define YAHOO_XFER_PORT 80
-#define YAHOO_XFER_RELAY_HOST "relay.msg.yahoo.com"
-#define YAHOO_XFER_RELAY_PORT 80
-#define YAHOO_ROOMLIST_URL "http://insider.msg.yahoo.com/ycontent/"
-#define YAHOO_ROOMLIST_LOCALE "us"
-/* Yahoo! JAPAN stuff */
-#define YAHOOJP_PAGER_HOST_REQ_URL "http://cs1.yahoo.co.jp/capacity"
-#define YAHOOJP_TOKEN_URL "https://login.yahoo.co.jp/config/pwtoken_get?src=ymsgr&ts=&login=%s&passwd=%s&chal=%s"
-#define YAHOOJP_LOGIN_URL "https://login.yahoo.co.jp/config/pwtoken_login?src=ymsgr&ts=&token=%s"
-#define YAHOOJP_PROFILE_URL "http://profiles.yahoo.co.jp/"
-#define YAHOOJP_MAIL_URL "http://mail.yahoo.co.jp/"
-#define YAHOOJP_XFER_HOST "filetransfer.msg.yahoo.co.jp"
-#define YAHOOJP_WEBCAM_HOST "wc.yahoo.co.jp"
-/* not sure, must test: */
-#define YAHOOJP_XFER_RELAY_HOST "relay.msg.yahoo.co.jp"
-#define YAHOOJP_XFER_RELAY_PORT 80
-#define YAHOOJP_ROOMLIST_URL "http://insider.msg.yahoo.co.jp/ycontent/"
-#define YAHOOJP_ROOMLIST_LOCALE "ja"
-#define YAHOO_AUDIBLE_URL "http://us.dl1.yimg.com/download.yahoo.com/dl/aud"
-#define WEBMESSENGER_URL "http://login.yahoo.com/config/login?.src=pg"
-#define YAHOO_SMS_CARRIER_URL "http://validate.msg.yahoo.com"
-#define YAHOO_USERINFO_URL "http://address.yahoo.com/yab/us?v=XM&sync=1&tags=short&useutf8=1&noclear=1&legenc=codepage-1252"
-#define YAHOOJP_USERINFO_URL "http://address.yahoo.co.jp/yab/jp?v=XM&sync=1&tags=short&useutf8=1&noclear=1&legenc=codepage-1252"
-#define YAHOO_PICURL_SETTING "picture_url"
-#define YAHOO_PICCKSUM_SETTING "picture_checksum"
-#define YAHOO_PICEXPIRE_SETTING "picture_expire"
-#define YAHOO_STATUS_TYPE_OFFLINE "offline"
-#define YAHOO_STATUS_TYPE_AVAILABLE "available"
-#define YAHOO_STATUS_TYPE_BRB "brb"
-#define YAHOO_STATUS_TYPE_BUSY "busy"
-#define YAHOO_STATUS_TYPE_NOTATHOME "notathome"
-#define YAHOO_STATUS_TYPE_NOTATDESK "notatdesk"
-#define YAHOO_STATUS_TYPE_NOTINOFFICE "notinoffice"
-#define YAHOO_STATUS_TYPE_ONPHONE "onphone"
-#define YAHOO_STATUS_TYPE_ONVACATION "onvacation"
-#define YAHOO_STATUS_TYPE_OUTTOLUNCH "outtolunch"
-#define YAHOO_STATUS_TYPE_STEPPEDOUT "steppedout"
-#define YAHOO_STATUS_TYPE_AWAY "away"
-#define YAHOO_STATUS_TYPE_INVISIBLE "invisible"
-#define YAHOO_STATUS_TYPE_MOBILE "mobile"
-#define YAHOO_CLIENT_VERSION_ID "4194239"
-#define YAHOO_CLIENT_VERSION "9.0.0.2162"
-#define YAHOOJP_CLIENT_VERSION_ID "4186047"
-#define YAHOOJP_CLIENT_VERSION "9.0.0.1727"
-#define YAHOO_CLIENT_USERAGENT "Mozilla/5.0"
-/* Index into attention types list. */
- YAHOO_PKT_TYPE_SERVER = 0,
- YAHOO_P2P_WE_ARE_CLIENT =0,
- YAHOO_P2P_WE_ARE_SERVER
-} yahoo_p2p_connection_type;
- YAHOO_STATUS_AVAILABLE = 0,
- YAHOO_STATUS_NOTATHOME,
- YAHOO_STATUS_NOTATDESK,
- YAHOO_STATUS_NOTINOFFICE,
- YAHOO_STATUS_ONVACATION,
- YAHOO_STATUS_OUTTOLUNCH,
- YAHOO_STATUS_STEPPEDOUT,
- YAHOO_STATUS_INVISIBLE = 12,
- YAHOO_STATUS_CUSTOM = 99,
- YAHOO_STATUS_IDLE = 999,
- YAHOO_STATUS_WEBLOGIN = 0x5a55aa55,
- YAHOO_STATUS_OFFLINE = 0x5a55aa56, /* don't ask */
- YAHOO_STATUS_TYPING = 0x16,
- YAHOO_STATUS_DISCONNECTED = 0xffffffff /* in ymsg 15. doesnt mean the normal sense of 'disconnected' */
- * Yahoo federated networks. Key 241 in ymsg.
- * If it doesn't exist, it is on Yahoo's netowrk.
- * It if does exist, send to another IM network.
- YAHOO_FEDERATION_NONE = 0, /* No federation - Yahoo! network */
- YAHOO_FEDERATION_OCS = 1, /* LCS or OCS private networks */
- YAHOO_FEDERATION_MSN = 2, /* MSN or Windows Live network */
- YAHOO_FEDERATION_IBM = 9, /* IBM/Sametime network */
- YAHOO_FEDERATION_PBX = 100 /* Yahoo! Pingbox service */
-struct yahoo_buddy_icon_upload_data {
- yahoo_p2p_connection_type connection_type;
-typedef struct _YahooPersonalDetails {
- PurpleCircBuffer *txbuf;
- char **profiles; /* Multiple profiles can be associated with an account */
- YahooPersonalDetails ypd;
- * This is used to keep track of the IMVironment chosen
- * by people you talk to. We don't do very much with
- * this right now... but at least now if the remote user
- * selects an IMVironment we won't reset it back to the
- GHashTable *imvironments;
- GString *tmp_serv_blist, *tmp_serv_ilist, *tmp_serv_plist;
- unsigned int conf_id; /* just a counter */
- char *pending_chat_room;
- char *pending_chat_topic;
- char *pending_chat_goto;
- gboolean wm; /* connected w/ web messenger method */
- /* picture aka buddy icon stuff */
- /* ew. we have to check the icon before we connect,
- * but can't upload it til we're connected. */
- struct yahoo_buddy_icon_upload_data *picture_upload_todo;
- PurpleProxyConnectData *buddy_icon_connect_data;
- struct _YchtConn *ycht;
- * This linked list contains PurpleUtilFetchUrlData structs
- * for when we lookup people profile or photo information.
- GHashTable *xfer_peer_idstring_map;/* Hey, i dont know, but putting this HashTable next to friends gives a run time fault... */
- GSList *cookies;/* contains all cookies, including _y and _t */
- PurpleNetworkListenData *listen_data;
- * We may receive a list15 in multiple packets with no prior warning as to how many we'll be getting;
- * the server expects us to keep track of the group for which it is sending us contact names.
- char *current_list15_grp;
- GHashTable *peers; /* information about p2p data */
- int yahoo_local_p2p_server_fd;
- int yahoo_p2p_server_watcher;
- GHashTable *sms_carrier; /* sms carrier data */
- guint yahoo_p2p_server_timeout_handle;
-#define YAHOO_MAX_STATUS_MESSAGE_LENGTH (255)
- * Current Maximum Length for Instant Messages
- * This was found by experiment.
- * The YMSG protocol allows a message of up to 948 bytes, but the official client
- * limits to 800 characters. According to experiments I conducted, it seems that
- * the discrepancy is to allow some leeway for messages with mixed single- and
- * multi-byte characters, as I was able to send messages of 840 and 932 bytes
- * by using some multibyte characters (some random Chinese or Japanese characters,
- * to be precise). - rekkanoryo
-#define YAHOO_MAX_MESSAGE_LENGTH_BYTES 948
-#define YAHOO_MAX_MESSAGE_LENGTH_CHARS 800
-/* sometimes i wish prpls could #include things from other prpls. then i could just
- * use the routines from libfaim and not have to admit to knowing how they work. */
-#define yahoo_put16(buf, data) ( \
- (*(buf) = (unsigned char)((data)>>8)&0xff), \
- (*((buf)+1) = (unsigned char)(data)&0xff), \
-#define yahoo_get16(buf) ((((*(buf))<<8)&0xff00) + ((*((buf)+1)) & 0xff))
-#define yahoo_put32(buf, data) ( \
- (*((buf)) = (unsigned char)((data)>>24)&0xff), \
- (*((buf)+1) = (unsigned char)((data)>>16)&0xff), \
- (*((buf)+2) = (unsigned char)((data)>>8)&0xff), \
- (*((buf)+3) = (unsigned char)(data)&0xff), \
-#define yahoo_get32(buf) ((((*(buf))<<24)&0xff000000) + \
- (((*((buf)+1))<<16)&0x00ff0000) + \
- (((*((buf)+2))<< 8)&0x0000ff00) + \
- (((*((buf)+3) )&0x000000ff)))
-void yahoo_init_colorht(void);
-void yahoo_dest_colorht(void);
-char *yahoo_codes_to_html(const char *x);
- * This function takes a normal HTML message and converts it to the message
- * format used by Yahoo, which uses a frankensteinish combination of ANSI
- * escape codes and broken HTML.
- * It results in slightly different output than would be sent by official
- * Yahoo clients. The two main differences are:
- * 1. We always close all tags, whereas official Yahoo clients leave tags
- * dangling open at the end of each message (and the client treats them
- * 2. We always close inner tags first before closing outter tags.
- * For example, if you want to send this message:
- * <b> bold <i> bolditalic </i></b><i> italic </i>
- * Official Yahoo clients would send:
- * ESC[1m bold ESC[2m bolditalic ESC[x1m italic
- * ESC[1m bold ESC[2m bolditalic ESC[x2mESC[x1mESC[2m italic ESC[x2m
-char *yahoo_html_to_codes(const char *src);
-yahoo_account_use_http_proxy(PurpleConnection *conn);
- * Encode some text to send to the yahoo server.
- * @param gc The connection handle.
- * @param str The null terminated utf8 string to encode.
- * @param utf8 If not @c NULL, whether utf8 is okay or not.
- * Even if it is okay, we may not use it. If we
- * used it, we set this to @c TRUE, else to
- * @c FALSE. If @c NULL, false is assumed, and
- * it is not dereferenced.
- * @return The g_malloced string in the appropriate encoding.
-char *yahoo_string_encode(PurpleConnection *gc, const char *str, gboolean *utf8);
- * Decode some text received from the server.
- * @param gc The gc handle.
- * @param str The null terminated string to decode.
- * @param utf8 Did the server tell us it was supposed to be utf8?
- * @return The decoded, utf-8 string, which must be g_free()'d.
-char *yahoo_string_decode(PurpleConnection *gc, const char *str, gboolean utf8);
-char *yahoo_convert_to_numeric(const char *str);
-YahooFederation yahoo_get_federation_from_name(const char *who);
-void yahoo_get_info(PurpleConnection *gc, const char *name);
-/* libymsg.h - these functions were formerly static but need not to be for the
- * new two-prpl model. */
-const char *yahoo_list_icon(PurpleAccount *a, PurpleBuddy *b);
-const char *yahoo_list_emblem(PurpleBuddy *b);
-char *yahoo_status_text(PurpleBuddy *b);
-void yahoo_tooltip_text(PurpleBuddy *b, PurpleNotifyUserInfo *user_info, gboolean full);
-GList *yahoo_status_types(PurpleAccount *account);
-GList *yahoo_blist_node_menu(PurpleBlistNode *node);
-void yahoo_login(PurpleAccount *account);
-void yahoo_close(PurpleConnection *gc);
-int yahoo_send_im(PurpleConnection *gc, const char *who, const char *what, PurpleMessageFlags flags);
-unsigned int yahoo_send_typing(PurpleConnection *gc, const char *who, PurpleTypingState state);
-void yahoo_set_status(PurpleAccount *account, PurpleStatus *status);
-void yahoo_set_idle(PurpleConnection *gc, int idle);
-void yahoo_add_buddy(PurpleConnection *gc, PurpleBuddy *buddy, PurpleGroup *g);
-void yahoo_remove_buddy(PurpleConnection *gc, PurpleBuddy *buddy, PurpleGroup *group);
-void yahoo_add_deny(PurpleConnection *gc, const char *who);
-void yahoo_rem_deny(PurpleConnection *gc, const char *who);
-void yahoo_set_permit_deny(PurpleConnection *gc);
-void yahoo_keepalive(PurpleConnection *gc);
-void yahoo_change_buddys_group(PurpleConnection *gc, const char *who, const char *old_group, const char *new_group);
-void yahoo_rename_group(PurpleConnection *gc, const char *old_name, PurpleGroup *group, GList *moved_buddies);
-gboolean yahoo_offline_message(const PurpleBuddy *buddy);
-gboolean yahoo_send_attention(PurpleConnection *gc, const char *username, guint type);
-GList *yahoo_attention_types(PurpleAccount *account);
-GList *yahoo_actions(PurplePlugin *plugin, gpointer context);
-void yahoopurple_register_commands(void);
-PurpleCmdRet yahoopurple_cmd_buzz(PurpleConversation *c, const gchar *cmd, gchar **args, gchar **error, void *data);
-PurpleCmdRet yahoopurple_cmd_chat_join(PurpleConversation *conv, const char *cmd, char **args, char **error, void *data);
-PurpleCmdRet yahoopurple_cmd_chat_list(PurpleConversation *conv, const char *cmd, char **args, char **error, void *data);
-/* needed for xfer, thought theyd be useful for other enhancements later on
- Returns list of cookies stored in yahoo_data formatted as a single null terminated string
- returned value must be g_freed
-gchar* yahoo_get_cookies(PurpleConnection *gc);
-/* send p2p pkt containing our encoded ip, asking peer to connect to us */
-void yahoo_send_p2p_pkt(PurpleConnection *gc, const char *who, int val_13);
-#endif /* _LIBYMSG_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/log.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,583 +0,0 @@
- * @file log.h Logging API
- * @see @ref log-signals
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-/********************************************************
- * DATA STRUCTURES **************************************
- ********************************************************/
-typedef struct _PurpleLog PurpleLog;
-typedef struct _PurpleLogLogger PurpleLogLogger;
-typedef struct _PurpleLogCommonLoggerData PurpleLogCommonLoggerData;
-typedef struct _PurpleLogSet PurpleLogSet;
- PURPLE_LOG_READ_NO_NEWLINE = 1
-#include "conversation.h"
-typedef void (*PurpleLogSetCallback) (GHashTable *sets, PurpleLogSet *set);
- * This struct gets filled out and is included in the PurpleLog. It contains everything
- * needed to write and read from logs.
-struct _PurpleLogLogger {
- char *name; /**< The logger's name */
- char *id; /**< an identifier to refer to this logger */
- /** This gets called when the log is first created.
- I don't think this is actually needed. */
- void (*create)(PurpleLog *log);
- /** This is used to write to the log file */
- gsize (*write)(PurpleLog *log,
- PurpleMessageFlags type,
- /** Called when the log is destroyed */
- void (*finalize)(PurpleLog *log);
- /** This function returns a sorted GList of available PurpleLogs */
- GList *(*list)(PurpleLogType type, const char *name, PurpleAccount *account);
- /** Given one of the logs returned by the logger's list function,
- * this returns the contents of the log in GtkIMHtml markup */
- char *(*read)(PurpleLog *log, PurpleLogReadFlags *flags);
- /** Given one of the logs returned by the logger's list function,
- * this returns the size of the log in bytes */
- int (*size)(PurpleLog *log);
- /** Returns the total size of all the logs. If this is undefined a default
- * implementation is used */
- int (*total_size)(PurpleLogType type, const char *name, PurpleAccount *account);
- /** This function returns a sorted GList of available system PurpleLogs */
- GList *(*list_syslog)(PurpleAccount *account);
- /** Adds PurpleLogSets to a GHashTable. By passing the data in the PurpleLogSets
- * to list, the caller can get every available PurpleLog from the logger.
- * Loggers using purple_log_common_writer() (or otherwise storing their
- * logs in the same directory structure as the stock loggers) do not
- * need to implement this function.
- * Loggers which implement this function must create a PurpleLogSet,
- * then call @a cb with @a sets and the newly created PurpleLogSet. */
- void (*get_log_sets)(PurpleLogSetCallback cb, GHashTable *sets);
- /* Attempts to delete the specified log, indicating success or failure */
- gboolean (*remove)(PurpleLog *log);
- /* Tests whether a log is deletable */
- gboolean (*is_deletable)(PurpleLog *log);
- void (*_purple_reserved1)(void);
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
- void (*_purple_reserved4)(void);
- * A log. Not the wooden type.
- PurpleLogType type; /**< The type of log this is */
- char *name; /**< The name of this log */
- PurpleAccount *account; /**< The account this log is taking
- PurpleConversation *conv; /**< The conversation being logged */
- time_t time; /**< The time this conversation
- started, converted to the local timezone */
- PurpleLogLogger *logger; /**< The logging mechanism this log
- void *logger_data; /**< Data used by the log logger */
- struct tm *tm; /**< The time this conversation
- started, saved with original
- timezone data, if available and
- if struct tm has the BSD
- timezone fields, else @c NULL.
- Do NOT modify anything in this struct.*/
- /* IMPORTANT: Some code in log.c allocates these without zeroing them.
- * IMPORTANT: Update that code if you add members here. */
- * A common logger_data struct containing a file handle and path, as well
- * as a pointer to something else for additional data.
-struct _PurpleLogCommonLoggerData {
- * Describes available logs.
- * By passing the elements of this struct to purple_log_get_logs(), the caller
- * can get all available PurpleLogs.
- PurpleLogType type; /**< The type of logs available */
- char *name; /**< The name of the logs available */
- PurpleAccount *account; /**< The account the available logs
- took place on. This will be
- @c NULL if the account no longer
- exists. (Depending on a
- logger's implementation of
- list, it may not be possible
- gboolean buddy; /**< Is this (account, name) a buddy
- char *normalized_name; /**< The normalized version of
- @a name. It must be set, and
- may be set to the same pointer
- /* IMPORTANT: Some code in log.c allocates these without zeroing them.
- * IMPORTANT: Update that code if you add members here. */
-/***************************************/
-/** @name Log Functions */
-/***************************************/
- * @param type The type of log this is.
- * @param name The name of this conversation (buddy name, chat name,
- * @param account The account the conversation is occurring on
- * @param conv The conversation being logged
- * @param time The time this conversation started
- * @param tm The time this conversation started, with timezone data,
- * if available and if struct tm has the BSD timezone fields.
-PurpleLog *purple_log_new(PurpleLogType type, const char *name, PurpleAccount *account,
- PurpleConversation *conv, time_t time, const struct tm *tm);
- * @param log The log to destroy
-void purple_log_free(PurpleLog *log);
- * Writes to a log file. Assumes you have checked preferences already.
- * @param log The log to write to
- * @param type The type of message being logged
- * @param from Whom this message is coming from, or @c NULL for
- * @param time A timestamp in UNIX time
- * @param message The message to log
-void purple_log_write(PurpleLog *log,
- PurpleMessageFlags type,
- * @param log The log to read from
- * @param flags The returned logging flags.
- * @return The contents of this log in Purple Markup.
-char *purple_log_read(PurpleLog *log, PurpleLogReadFlags *flags);
- * Returns a list of all available logs
- * @param type The type of the log
- * @param name The name of the log
- * @param account The account
- * @return A sorted list of PurpleLogs
-GList *purple_log_get_logs(PurpleLogType type, const char *name, PurpleAccount *account);
- * Returns a GHashTable of PurpleLogSets.
- * A "log set" here means the information necessary to gather the
- * PurpleLogs for a given buddy/chat. This information would be passed
- * to purple_log_list to get a list of PurpleLogs.
- * The primary use of this function is to get a list of everyone the
- * user has ever talked to (assuming he or she uses logging).
- * The GHashTable that's returned will free all log sets in it when
- * destroyed. If a PurpleLogSet is removed from the GHashTable, it
- * must be freed with purple_log_set_free().
- * @return A GHashTable of all available unique PurpleLogSets
-GHashTable *purple_log_get_log_sets(void);
- * Returns a list of all available system logs
- * @param account The account
- * @return A sorted list of PurpleLogs
-GList *purple_log_get_system_logs(PurpleAccount *account);
- * Returns the size of a log
- * @return The size of the log, in bytes
-int purple_log_get_size(PurpleLog *log);
- * Returns the size, in bytes, of all available logs in this conversation
- * @param type The type of the log
- * @param name The name of the log
- * @param account The account
- * @return The size in bytes
-int purple_log_get_total_size(PurpleLogType type, const char *name, PurpleAccount *account);
- * Returns the activity score of a log, based on total size in bytes,
- * which is then decayed based on age
- * @param type The type of the log
- * @param name The name of the log
- * @param account The account
- * @return The activity score
-int purple_log_get_activity_score(PurpleLogType type, const char *name, PurpleAccount *account);
- * Tests whether a log is deletable
- * A return value of @c FALSE indicates that purple_log_delete() will fail on this
- * log, unless something changes between the two calls. A return value of @c TRUE,
- * however, does not guarantee the log can be deleted.
- * @return A boolean indicating if the log is deletable
-gboolean purple_log_is_deletable(PurpleLog *log);
- * @return A boolean indicating success or failure
-gboolean purple_log_delete(PurpleLog *log);
- * Returns the default logger directory Purple uses for a given account
- * and username. This would be where Purple stores logs created by
- * the built-in text or HTML loggers.
- * @param type The type of the log.
- * @param name The name of the log.
- * @param account The account.
- * @return The default logger directory for Purple.
-char *purple_log_get_log_dir(PurpleLogType type, const char *name, PurpleAccount *account);
- * Implements GCompareFunc for PurpleLogs
- * @param z Another PurpleLog
- * @return A value as specified by GCompareFunc
-gint purple_log_compare(gconstpointer y, gconstpointer z);
- * Implements GCompareFunc for PurpleLogSets
- * @param y A PurpleLogSet
- * @param z Another PurpleLogSet
- * @return A value as specified by GCompareFunc
-gint purple_log_set_compare(gconstpointer y, gconstpointer z);
- * @param set The log set to destroy
-void purple_log_set_free(PurpleLogSet *set);
-/******************************************/
-/** @name Common Logger Functions */
-/******************************************/
- * Opens a new log file in the standard Purple log location
- * with the given file extension, named for the current time,
- * for writing. If a log file is already open, the existing
- * file handle is retained. The log's logger_data value is
- * set to a PurpleLogCommonLoggerData struct containing the log
- * file handle and log path.
- * This function is intended to be used as a "common"
- * implementation of a logger's @c write function.
- * It should only be passed to purple_log_logger_new() and never
- * @param log The log to write to.
- * @param ext The file extension to give to this log file.
-void purple_log_common_writer(PurpleLog *log, const char *ext);
- * Returns a sorted GList of PurpleLogs of the requested type.
- * This function should only be used with logs that are written
- * with purple_log_common_writer(). It's intended to be used as
- * a "common" implementation of a logger's @c list function.
- * It should only be passed to purple_log_logger_new() and never
- * @param type The type of the logs being listed.
- * @param name The name of the log.
- * @param account The account of the log.
- * @param ext The file extension this log format uses.
- * @param logger A reference to the logger struct for this log.
- * @return A sorted GList of PurpleLogs matching the parameters.
-GList *purple_log_common_lister(PurpleLogType type, const char *name,
- PurpleAccount *account, const char *ext,
- PurpleLogLogger *logger);
- * Returns the total size of all the logs for a given user, with
- * This function should only be used with logs that are written
- * with purple_log_common_writer(). It's intended to be used as
- * a "common" implementation of a logger's @c total_size function.
- * It should only be passed to purple_log_logger_new() and never
- * @param type The type of the logs being sized.
- * @param name The name of the logs to size
- * (e.g. the username or chat name).
- * @param account The account of the log.
- * @param ext The file extension this log format uses.
- * @return The size of all the logs with the specified extension
- * for the specified user.
-int purple_log_common_total_sizer(PurpleLogType type, const char *name,
- PurpleAccount *account, const char *ext);
- * Returns the size of a given PurpleLog.
- * This function should only be used with logs that are written
- * with purple_log_common_writer(). It's intended to be used as
- * a "common" implementation of a logger's @c size function.
- * It should only be passed to purple_log_logger_new() and never
- * @param log The PurpleLog to size.
- * @return An integer indicating the size of the log in bytes.
-int purple_log_common_sizer(PurpleLog *log);
- * This function should only be used with logs that are written
- * with purple_log_common_writer(). It's intended to be used as
- * a "common" implementation of a logger's @c delete function.
- * It should only be passed to purple_log_logger_new() and never
- * @param log The PurpleLog to delete.
- * @return A boolean indicating success or failure.
-gboolean purple_log_common_deleter(PurpleLog *log);
- * Checks to see if a log is deletable
- * This function should only be used with logs that are written
- * with purple_log_common_writer(). It's intended to be used as
- * a "common" implementation of a logger's @c is_deletable function.
- * It should only be passed to purple_log_logger_new() and never
- * @param log The PurpleLog to check.
- * @return A boolean indicating if the log is deletable.
-gboolean purple_log_common_is_deletable(PurpleLog *log);
-/******************************************/
-/** @name Logger Functions */
-/******************************************/
- * @param id The logger's id.
- * @param name The logger's name.
- * @param functions The number of functions being passed. The following
- * functions are currently available (in order): @c create,
- * @c write, @c finalize, @c list, @c read, @c size,
- * @c total_size, @c list_syslog, @c get_log_sets,
- * @c remove, @c is_deletable.
- * For details on these functions, see PurpleLogLogger.
- * Functions may not be skipped. For example, passing
- * @c create and @c write is acceptable (for a total of
- * two functions). Passing @c create and @c finalize,
- * however, is not. To accomplish that, the caller must
- * pass @c create, @c NULL (a placeholder for @c write),
- * and @c finalize (for a total of 3 functions).
- * @return The new logger
-PurpleLogLogger *purple_log_logger_new(const char *id, const char *name, int functions, ...);
- * @param logger The logger to free
-void purple_log_logger_free(PurpleLogLogger *logger);
- * @param logger The new logger to add
-void purple_log_logger_add (PurpleLogLogger *logger);
- * @param logger The logger to remove
-void purple_log_logger_remove (PurpleLogLogger *logger);
- * Sets the current logger
- * @param logger The logger to set
-void purple_log_logger_set (PurpleLogLogger *logger);
- * Returns the current logger
- * @return logger The current logger
-PurpleLogLogger *purple_log_logger_get (void);
- * Returns a GList containing the IDs and names of the registered
- * @return The list of IDs and names.
-GList *purple_log_logger_get_options(void);
-/**************************************************************************/
-/** @name Log Subsystem */
-/**************************************************************************/
- * Initializes the log subsystem.
-void purple_log_init(void);
- * Returns the log subsystem handle.
- * @return The log subsystem handle.
-void *purple_log_get_handle(void);
- * Uninitializes the log subsystem.
-void purple_log_uninit(void);
-#endif /* _PURPLE_LOG_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/marshallers.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-#ifndef __purple_smarshal_MARSHAL_H__
-#define __purple_smarshal_MARSHAL_H__
-#include <glib-object.h>
-/* VOID:POINTER,POINTER,OBJECT (./marshallers.list:1) */
-extern void purple_smarshal_VOID__POINTER_POINTER_OBJECT (GClosure *closure,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-/* BOOLEAN:OBJECT,POINTER,STRING (./marshallers.list:2) */
-extern void purple_smarshal_BOOLEAN__OBJECT_POINTER_STRING (GClosure *closure,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-/* VOID:STRING,STRING (./marshallers.list:3) */
-extern void purple_smarshal_VOID__STRING_STRING (GClosure *closure,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-/* VOID:STRING,STRING,DOUBLE (./marshallers.list:4) */
-extern void purple_smarshal_VOID__STRING_STRING_DOUBLE (GClosure *closure,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-/* VOID:ENUM,STRING,STRING (./marshallers.list:5) */
-extern void purple_smarshal_VOID__ENUM_STRING_STRING (GClosure *closure,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-/* VOID:ENUM,STRING,STRING,BOOLEAN (./marshallers.list:6) */
-extern void purple_smarshal_VOID__ENUM_STRING_STRING_BOOLEAN (GClosure *closure,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-/* VOID:FLAGS,FLAGS (./marshallers.list:7) */
-extern void purple_smarshal_VOID__FLAGS_FLAGS (GClosure *closure,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-/* VOID:STRING,STRING,OBJECT,OBJECT (./marshallers.list:8) */
-extern void purple_smarshal_VOID__STRING_STRING_OBJECT_OBJECT (GClosure *closure,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-#endif /* __purple_smarshal_MARSHAL_H__ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/media-gst.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,201 +0,0 @@
- * @file media-gst.h Media API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_MEDIA_GST_H_
-#define _PURPLE_MEDIA_GST_H_
-#include "mediamanager.h"
-#define PURPLE_TYPE_MEDIA_ELEMENT_TYPE (purple_media_element_type_get_type())
-#define PURPLE_TYPE_MEDIA_ELEMENT_INFO (purple_media_element_info_get_type())
-#define PURPLE_MEDIA_ELEMENT_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), PURPLE_TYPE_MEDIA_ELEMENT_INFO, PurpleMediaElementInfo))
-#define PURPLE_MEDIA_ELEMENT_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PURPLE_TYPE_MEDIA_ELEMENT_INFO, PurpleMediaElementInfo))
-#define PURPLE_IS_MEDIA_ELEMENT_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), PURPLE_TYPE_MEDIA_ELEMENT_INFO))
-#define PURPLE_IS_MEDIA_ELEMENT_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), PURPLE_TYPE_MEDIA_ELEMENT_INFO))
-#define PURPLE_MEDIA_ELEMENT_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PURPLE_TYPE_MEDIA_ELEMENT_INFO, PurpleMediaElementInfo))
-/** An opaque structure representing an audio/video source/sink. */
-typedef struct _PurpleMediaElementInfo PurpleMediaElementInfo;
-typedef struct _PurpleMediaElementInfoClass PurpleMediaElementInfoClass;
-typedef GstElement *(*PurpleMediaElementCreateCallback)(PurpleMedia *media,
- const gchar *session_id, const gchar *participant);
- PURPLE_MEDIA_ELEMENT_NONE = 0, /** empty element */
- PURPLE_MEDIA_ELEMENT_AUDIO = 1, /** supports audio */
- PURPLE_MEDIA_ELEMENT_VIDEO = 1 << 1, /** supports video */
- PURPLE_MEDIA_ELEMENT_AUDIO_VIDEO = PURPLE_MEDIA_ELEMENT_AUDIO
- | PURPLE_MEDIA_ELEMENT_VIDEO, /** supports audio and video */
- PURPLE_MEDIA_ELEMENT_NO_SRCS = 0, /** has no src pads */
- PURPLE_MEDIA_ELEMENT_ONE_SRC = 1 << 2, /** has one src pad */
- PURPLE_MEDIA_ELEMENT_MULTI_SRC = 1 << 3, /** has multiple src pads */
- PURPLE_MEDIA_ELEMENT_REQUEST_SRC = 1 << 4, /** src pads must be requested */
- PURPLE_MEDIA_ELEMENT_NO_SINKS = 0, /** has no sink pads */
- PURPLE_MEDIA_ELEMENT_ONE_SINK = 1 << 5, /** has one sink pad */
- PURPLE_MEDIA_ELEMENT_MULTI_SINK = 1 << 6, /** has multiple sink pads */
- PURPLE_MEDIA_ELEMENT_REQUEST_SINK = 1 << 7, /** sink pads must be requested */
- PURPLE_MEDIA_ELEMENT_UNIQUE = 1 << 8, /** This element is unique and
- only one instance of it should
- be created at a time */
- PURPLE_MEDIA_ELEMENT_SRC = 1 << 9, /** can be set as an active src */
- PURPLE_MEDIA_ELEMENT_SINK = 1 << 10, /** can be set as an active sink */
-} PurpleMediaElementType;
- * Gets the element type's GType.
- * @return The element type's GType.
-GType purple_media_element_type_get_type(void);
- * Gets the element info's GType.
- * @return The element info's GType.
-GType purple_media_element_info_get_type(void);
- * Gets the source from a session
- * @param media The media object the session is in.
- * @param sess_id The session id of the session to get the source from.
- * @return The source retrieved.
-GstElement *purple_media_get_src(PurpleMedia *media, const gchar *sess_id);
- * Gets the tee from a given session/stream.
- * @param media The instance to get the tee from.
- * @param session_id The id of the session to get the tee from.
- * @param participant Optionally, the participant of the stream to get the tee from.
- * @return The GstTee element from the chosen session/stream.
-GstElement *purple_media_get_tee(PurpleMedia *media,
- const gchar *session_id, const gchar *participant);
- * Gets the pipeline from the media manager.
- * @param manager The media manager to get the pipeline from.
- * @return The pipeline.
-GstElement *purple_media_manager_get_pipeline(PurpleMediaManager *manager);
- * Returns a GStreamer source or sink for audio or video.
- * @param manager The media manager to use to obtain the source/sink.
- * @param type The type of source/sink to get.
- * @param media The media call this element is requested for.
- * @param session_id The id of the session this element is requested for or NULL.
- * @param participant The remote user this element is requested for or NULL.
-GstElement *purple_media_manager_get_element(PurpleMediaManager *manager,
- PurpleMediaSessionType type, PurpleMedia *media,
- const gchar *session_id, const gchar *participant);
-PurpleMediaElementInfo *purple_media_manager_get_element_info(
- PurpleMediaManager *manager, const gchar *name);
-gboolean purple_media_manager_register_element(PurpleMediaManager *manager,
- PurpleMediaElementInfo *info);
-gboolean purple_media_manager_unregister_element(PurpleMediaManager *manager,
-gboolean purple_media_manager_set_active_element(PurpleMediaManager *manager,
- PurpleMediaElementInfo *info);
-PurpleMediaElementInfo *purple_media_manager_get_active_element(
- PurpleMediaManager *manager, PurpleMediaElementType type);
- * Reduces media formats supported by the video source to given set.
- * Useful to force negotiation of smaller picture resolution more suitable for
- * use with particular codec and communication protocol without rescaling.
- * @param manager The media manager to set the media formats.
- * @param caps Set of allowed media formats.
-void purple_media_manager_set_video_caps(PurpleMediaManager *manager,
- * Returns current set of media formats limiting the output from video source.
- * @param manager The media manager to get the media formats from.
- * @return @c GstCaps limiting the video source's formats.
-GstCaps *purple_media_manager_get_video_caps(PurpleMediaManager *manager);
-gchar *purple_media_element_info_get_id(PurpleMediaElementInfo *info);
-gchar *purple_media_element_info_get_name(PurpleMediaElementInfo *info);
-PurpleMediaElementType purple_media_element_info_get_element_type(
- PurpleMediaElementInfo *info);
-GstElement *purple_media_element_info_call_create(
- PurpleMediaElementInfo *info, PurpleMedia *media,
- const gchar *session_id, const gchar *participant);
-#endif /* _PURPLE_MEDIA_GST_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/media.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,446 +0,0 @@
- * @file media.h Media API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_MEDIA_H_
-#define _PURPLE_MEDIA_H_
-#include "media/candidate.h"
-#include "media/codec.h"
-#include "media/enum-types.h"
-#include <glib-object.h>
-#define PURPLE_TYPE_MEDIA (purple_media_get_type())
-#define PURPLE_MEDIA(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), PURPLE_TYPE_MEDIA, PurpleMedia))
-#define PURPLE_MEDIA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PURPLE_TYPE_MEDIA, PurpleMediaClass))
-#define PURPLE_IS_MEDIA(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), PURPLE_TYPE_MEDIA))
-#define PURPLE_IS_MEDIA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), PURPLE_TYPE_MEDIA))
-#define PURPLE_MEDIA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PURPLE_TYPE_MEDIA, PurpleMediaClass))
-/** An opaque structure representing a media call. */
-typedef struct _PurpleMedia PurpleMedia;
- * Gets the media class's GType
- * @return The media class's GType.
-GType purple_media_get_type(void);
- * Gets a list of session IDs.
- * @param media The media session from which to retrieve session IDs.
- * @return GList of session IDs. The caller must free the list.
-GList *purple_media_get_session_ids(PurpleMedia *media);
- * Gets the PurpleAccount this media session is on.
- * @param media The media session to retrieve the account from.
- * @return The account retrieved.
-PurpleAccount *purple_media_get_account(PurpleMedia *media);
- * Gets the prpl data from the media session.
- * @param media The media session to retrieve the prpl data from.
- * @return The prpl data retrieved.
-gpointer purple_media_get_prpl_data(PurpleMedia *media);
- * Sets the prpl data on the media session.
- * @param media The media session to set the prpl data on.
- * @param prpl_data The data to set on the media session.
-void purple_media_set_prpl_data(PurpleMedia *media, gpointer prpl_data);
- * Signals an error in the media session.
- * @param media The media object to set the state on.
- * @param error The format of the error message to send in the signal.
- * @param ... The arguments to plug into the format.
-void purple_media_error(PurpleMedia *media, const gchar *error, ...);
- * Ends all streams that match the given parameters
- * @param media The media object with which to end streams.
- * @param session_id The session to end streams on.
- * @param participant The participant to end streams with.
-void purple_media_end(PurpleMedia *media, const gchar *session_id,
- const gchar *participant);
- * Signals different information about the given stream.
- * @param media The media instance to containing the stream to signal.
- * @param type The type of info being signaled.
- * @param session_id The id of the session of the stream being signaled.
- * @param participant The participant of the stream being signaled.
- * @param local TRUE if the info originated locally, FALSE if on the remote end.
-void purple_media_stream_info(PurpleMedia *media, PurpleMediaInfoType type,
- const gchar *session_id, const gchar *participant,
- * Sets various optional parameters of the media call.
- * Currently supported are:
- * - "sdes-cname" : The CNAME for the RTP sessions
- * - "sdes-name" : Real name used to describe the source in SDES messages
- * - "sdes-tool" : The TOOL to put in SDES messages
- * - "sdes-email" : Email address to put in SDES messages
- * - "sdes-location" : The LOCATION to put in SDES messages
- * - "sdes-note" : The NOTE to put in SDES messages
- * - "sdes-phone" : The PHONE to put in SDES messages
- * @param media The media object to set the parameters on.
- * @param num_params The number of parameters to pass
- * @param params Array of @c GParameter to pass
-void purple_media_set_params(PurpleMedia *media,
- guint num_params, GParameter *params);
- * Gets the list of optional parameters supported by the media backend.
- * The list is owned by the @c PurpleMedia internals and should NOT be freed.
- * @param media The media object
- * @return NULL-terminated array of names of supported parameters.
-const gchar **purple_media_get_available_params(PurpleMedia *media);
- * Checks if given optional parameter is supported by the media backend.
- * @param media The media object
- * @param param name of parameter
- * @return @c TRUE if backend recognizes the parameter, @c FALSE otherwise.
-gboolean purple_media_param_is_supported(PurpleMedia *media, const gchar *param);
- * Adds a stream to a session.
- * It only adds a stream to one audio session or video session as
- * the @c sess_id must be unique between sessions.
- * @param media The media object to find the session in.
- * @param sess_id The session id of the session to add the stream to.
- * @param who The name of the remote user to add the stream for.
- * @param type The type of stream to create.
- * @param initiator Whether or not the local user initiated the stream.
- * @param transmitter The transmitter to use for the stream.
- * @param num_params The number of parameters to pass to Farsight.
- * @param params The parameters to pass to Farsight.
- * @return @c TRUE The stream was added successfully, @c FALSE otherwise.
-gboolean purple_media_add_stream(PurpleMedia *media, const gchar *sess_id,
- const gchar *who, PurpleMediaSessionType type,
- gboolean initiator, const gchar *transmitter,
- guint num_params, GParameter *params);
- * Gets the session type from a session
- * @param media The media object to find the session in.
- * @param sess_id The session id of the session to get the type from.
- * @return The retreived session type.
-PurpleMediaSessionType purple_media_get_session_type(PurpleMedia *media, const gchar *sess_id);
- * Gets the PurpleMediaManager this media session is a part of.
- * @param media The media object to get the manager instance from.
- * @return The PurpleMediaManager instance retrieved.
-struct _PurpleMediaManager *purple_media_get_manager(PurpleMedia *media);
- * Gets the codecs from a session.
- * @param media The media object to find the session in.
- * @param sess_id The session id of the session to get the codecs from.
- * @return The retreieved codecs.
-GList *purple_media_get_codecs(PurpleMedia *media, const gchar *sess_id);
- * Adds remote candidates to the stream.
- * @param media The media object to find the session in.
- * @param sess_id The session id of the session find the stream in.
- * @param participant The name of the remote user to add the candidates for.
- * @param remote_candidates The remote candidates to add.
-void purple_media_add_remote_candidates(PurpleMedia *media,
- const gchar *participant,
- GList *remote_candidates);
- * Gets the local candidates from a stream.
- * @param media The media object to find the session in.
- * @param sess_id The session id of the session to find the stream in.
- * @param participant The name of the remote user to get the candidates from.
-GList *purple_media_get_local_candidates(PurpleMedia *media,
- const gchar *participant);
- * Gets the active local candidates for the stream.
- * @param media The media object to find the session in.
- * @param sess_id The session id of the session to find the stream in.
- * @param participant The name of the remote user to get the active candidate
- * @return The active candidates retrieved.
-GList *purple_media_get_active_local_candidates(PurpleMedia *media,
- const gchar *sess_id, const gchar *participant);
- * Gets the active remote candidates for the stream.
- * @param media The media object to find the session in.
- * @param sess_id The session id of the session to find the stream in.
- * @param participant The name of the remote user to get the remote candidate
- * @return The remote candidates retrieved.
-GList *purple_media_get_active_remote_candidates(PurpleMedia *media,
- const gchar *sess_id, const gchar *participant);
- * Sets remote candidates from the stream.
- * @param media The media object to find the session in.
- * @param sess_id The session id of the session find the stream in.
- * @param participant The name of the remote user to set the candidates from.
- * @param codecs The list of remote codecs to set.
- * @return @c TRUE The codecs were set successfully, or @c FALSE otherwise.
-gboolean purple_media_set_remote_codecs(PurpleMedia *media, const gchar *sess_id,
- const gchar *participant, GList *codecs);
- * Returns whether or not the candidates for set of streams are prepared
- * @param media The media object to find the remote user in.
- * @param session_id The session id of the session to check.
- * @param participant The remote user to check for.
- * @return @c TRUE All streams for the given session_id/participant combination have candidates prepared, @c FALSE otherwise.
-gboolean purple_media_candidates_prepared(PurpleMedia *media,
- const gchar *session_id, const gchar *participant);
- * Sets the send codec for the a session.
- * @param media The media object to find the session in.
- * @param sess_id The session id of the session to set the codec for.
- * @param codec The codec to set the session to stream.
- * @return @c TRUE The codec was successfully changed, or @c FALSE otherwise.
-gboolean purple_media_set_send_codec(PurpleMedia *media, const gchar *sess_id, PurpleMediaCodec *codec);
- * Gets whether a session's codecs are ready to be used.
- * @param media The media object to find the session in.
- * @param sess_id The session id of the session to check.
- * @return @c TRUE The codecs are ready, or @c FALSE otherwise.
-gboolean purple_media_codecs_ready(PurpleMedia *media, const gchar *sess_id);
- * Gets whether the local user is the conference/session/stream's initiator.
- * @param media The media instance to find the session in.
- * @param sess_id The session id of the session to check.
- * @param participant The participant of the stream to check.
- * @return TRUE if the local user is the stream's initator, else FALSE.
-gboolean purple_media_is_initiator(PurpleMedia *media,
- const gchar *sess_id, const gchar *participant);
- * Gets whether a streams selected have been accepted.
- * @param media The media object to find the session in.
- * @param sess_id The session id of the session to check.
- * @param participant The participant to check.
- * @return @c TRUE The selected streams have been accepted, or @c FALSE otherwise.
-gboolean purple_media_accepted(PurpleMedia *media, const gchar *sess_id,
- const gchar *participant);
- * Sets the input volume of all the selected sessions.
- * @param media The media object the sessions are in.
- * @param session_id The session to select (if any).
- * @param level The level to set the volume to.
-void purple_media_set_input_volume(PurpleMedia *media, const gchar *session_id, double level);
- * Sets the output volume of all the selected streams.
- * @param media The media object the streams are in.
- * @param session_id The session to limit the streams to (if any).
- * @param participant The participant to limit the streams to (if any).
- * @param level The level to set the volume to.
-void purple_media_set_output_volume(PurpleMedia *media, const gchar *session_id,
- const gchar *participant, double level);
- * Sets a video output window for the given session/stream.
- * @param media The media instance to set the output window on.
- * @param session_id The session to set the output window on.
- * @param participant Optionally, the participant to set the output window on.
- * @param window_id The window id use for embedding the video in.
- * @return An id to reference the output window.
-gulong purple_media_set_output_window(PurpleMedia *media,
- const gchar *session_id, const gchar *participant,
- * Removes all output windows from a given media session.
- * @param media The instance to remove all output windows from.
-void purple_media_remove_output_windows(PurpleMedia *media);
-#endif /* _PURPLE_MEDIA_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/media/backend-iface.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,224 +0,0 @@
- * @file backend-iface.h Interface for media backends
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _MEDIA_BACKEND_IFACE_H_
-#define _MEDIA_BACKEND_IFACE_H_
-#include <glib-object.h>
-#define PURPLE_TYPE_MEDIA_BACKEND (purple_media_backend_get_type())
-#define PURPLE_IS_MEDIA_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), PURPLE_TYPE_MEDIA_BACKEND))
-#define PURPLE_MEDIA_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), PURPLE_TYPE_MEDIA_BACKEND, PurpleMediaBackend))
-#define PURPLE_MEDIA_BACKEND_GET_INTERFACE(inst)(G_TYPE_INSTANCE_GET_INTERFACE((inst), PURPLE_TYPE_MEDIA_BACKEND, PurpleMediaBackendIface))
-/** A placeholder to represent any media backend */
-typedef struct _PurpleMediaBackend PurpleMediaBackend;
-/** A structure to derive media backends from. */
-typedef struct _PurpleMediaBackendIface PurpleMediaBackendIface;
-struct _PurpleMediaBackendIface
- GTypeInterface parent_iface; /**< The parent iface class */
- /** Implementable functions called with purple_media_backend_* */
- gboolean (*add_stream) (PurpleMediaBackend *self,
- const gchar *sess_id, const gchar *who,
- PurpleMediaSessionType type, gboolean initiator,
- const gchar *transmitter,
- guint num_params, GParameter *params);
- void (*add_remote_candidates) (PurpleMediaBackend *self,
- const gchar *sess_id, const gchar *participant,
- GList *remote_candidates);
- gboolean (*codecs_ready) (PurpleMediaBackend *self,
- GList *(*get_codecs) (PurpleMediaBackend *self,
- GList *(*get_local_candidates) (PurpleMediaBackend *self,
- const gchar *sess_id, const gchar *participant);
- gboolean (*set_remote_codecs) (PurpleMediaBackend *self,
- const gchar *sess_id, const gchar *participant,
- gboolean (*set_send_codec) (PurpleMediaBackend *self,
- const gchar *sess_id, PurpleMediaCodec *codec);
- void (*set_params) (PurpleMediaBackend *self,
- guint num_params, GParameter *params);
- const gchar **(*get_available_params) (void);
- * Gets the media backend's GType.
- * @return The media backend's GType.
-GType purple_media_backend_get_type(void);
- * Creates and adds a stream to the media backend.
- * @param self The backend to add the stream to.
- * @param sess_id The session id of the stream to add.
- * @param who The remote participant of the stream to add.
- * @param type The media type and direction of the stream to add.
- * @param initiator True if the local user initiated the stream.
- * @param transmitter The string id of the tranmsitter to use.
- * @param num_params The number of parameters in the param parameter.
- * @param params The additional parameters to pass when creating the stream.
- * @return True if the stream was successfully created, othewise False.
-gboolean purple_media_backend_add_stream(PurpleMediaBackend *self,
- const gchar *sess_id, const gchar *who,
- PurpleMediaSessionType type, gboolean initiator,
- const gchar *transmitter,
- guint num_params, GParameter *params);
- * Add remote candidates to a stream.
- * @param self The backend the stream is in.
- * @param sess_id The session id associated with the stream.
- * @param participant The participant associated with the stream.
- * @param remote_candidates The list of remote candidates to add.
-void purple_media_backend_add_remote_candidates(PurpleMediaBackend *self,
- const gchar *sess_id, const gchar *participant,
- GList *remote_candidates);
- * Get whether or not a session's codecs are ready.
- * A codec is ready if all of the attributes and additional
- * parameters have been collected.
- * @param self The media backend the session is in.
- * @param sess_id The session id of the session to check.
- * @return True if the codecs are ready, otherwise False.
-gboolean purple_media_backend_codecs_ready(PurpleMediaBackend *self,
- * Gets the codec intersection list for a session.
- * The intersection list consists of all codecs that are compatible
- * between the local and remote software.
- * @param self The media backend the session is in.
- * @param sess_id The session id of the session to use.
- * @return The codec intersection list.
-GList *purple_media_backend_get_codecs(PurpleMediaBackend *self,
- * Gets the list of local candidates for a stream.
- * @param self The media backend the stream is in.
- * @param sess_id The session id associated with the stream.
- * @param particilant The participant associated with the stream.
- * @return The list of local candidates.
-GList *purple_media_backend_get_local_candidates(PurpleMediaBackend *self,
- const gchar *sess_id, const gchar *participant);
- * Sets the remote codecs on a stream.
- * @param self The media backend the stream is in.
- * @param sess_id The session id the stream is associated with.
- * @param participant The participant the stream is associated with.
- * @param codecs The list of remote codecs to set.
- * @return True if the remote codecs were set successfully, otherwise False.
-gboolean purple_media_backend_set_remote_codecs(PurpleMediaBackend *self,
- const gchar *sess_id, const gchar *participant,
- * Sets which codec format to send media content in for a session.
- * @param self The media backend the session is in.
- * @param sess_id The session id of the session to set the codec for.
- * @param codec The codec to set.
- * @return True if set successfully, otherwise False.
-gboolean purple_media_backend_set_send_codec(PurpleMediaBackend *self,
- const gchar *sess_id, PurpleMediaCodec *codec);
- * Sets various optional parameters of the media backend.
- * @param self The media backend to set the parameters on.
- * @param num_params The number of parameters to pass to backend
- * @param params Array of @c GParameter to pass to backend
-void purple_media_backend_set_params(PurpleMediaBackend *self,
- guint num_params, GParameter *params);
- * Gets the list of optional parameters supported by the media backend.
- * The list should NOT be freed.
- * @param self The media backend
- * @return NULL-terminated array of names of supported parameters.
-const gchar **purple_media_backend_get_available_params(PurpleMediaBackend *self);
-#endif /* _MEDIA_BACKEND_IFACE_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/media/candidate.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,252 +0,0 @@
- * @file candidate.h Candidate for Media API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_MEDIA_CANDIDATE_H_
-#define _PURPLE_MEDIA_CANDIDATE_H_
-#include <glib-object.h>
-#define PURPLE_TYPE_MEDIA_CANDIDATE (purple_media_candidate_get_type())
-#define PURPLE_IS_MEDIA_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), PURPLE_TYPE_MEDIA_CANDIDATE))
-#define PURPLE_IS_MEDIA_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), PURPLE_TYPE_MEDIA_CANDIDATE))
-#define PURPLE_MEDIA_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), PURPLE_TYPE_MEDIA_CANDIDATE, PurpleMediaCandidate))
-#define PURPLE_MEDIA_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PURPLE_TYPE_MEDIA_CANDIDATE, PurpleMediaCandidate))
-#define PURPLE_MEDIA_CANDIDATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PURPLE_TYPE_MEDIA_CANDIDATE, PurpleMediaCandidate))
-/** An opaque structure representing a network candidate (IP Address and port pair). */
-typedef struct _PurpleMediaCandidate PurpleMediaCandidate;
- * Gets the type of the media candidate structure.
- * @return The media canditate's GType
-GType purple_media_candidate_get_type(void);
- * Creates a PurpleMediaCandidate instance.
- * @param foundation The foundation of the candidate.
- * @param component_id The component this candidate is for.
- * @param type The type of candidate.
- * @param proto The protocol this component is for.
- * @param ip The IP address of this component.
- * @param port The network port.
- * @return The newly created PurpleMediaCandidate instance.
-PurpleMediaCandidate *purple_media_candidate_new(
- const gchar *foundation, guint component_id,
- PurpleMediaCandidateType type,
- PurpleMediaNetworkProtocol proto,
- const gchar *ip, guint port);
- * Copies a PurpleMediaCandidate.
- * @param candidate The candidate to copy.
- * @return The copy of the PurpleMediaCandidate.
-PurpleMediaCandidate *purple_media_candidate_copy(
- PurpleMediaCandidate *candidate);
- * Copies a GList of PurpleMediaCandidate and its contents.
- * @param candidates The list of candidates to be copied.
- * @return The copy of the GList.
-GList *purple_media_candidate_list_copy(GList *candidates);
- * Frees a GList of PurpleMediaCandidate and its contents.
- * @param candidates The list of candidates to be freed.
-void purple_media_candidate_list_free(GList *candidates);
- * Gets the foundation (identifier) from the candidate.
- * @param candidate The candidate to get the foundation from.
- * @return The foundation.
-gchar *purple_media_candidate_get_foundation(PurpleMediaCandidate *candidate);
- * Gets the component id (rtp or rtcp)
- * @param candidate The candidate to get the compnent id from.
- * @return The component id.
-guint purple_media_candidate_get_component_id(PurpleMediaCandidate *candidate);
- * @param candidate The candidate to get the IP address from.
- * @return The IP address.
-gchar *purple_media_candidate_get_ip(PurpleMediaCandidate *candidate);
- * @param candidate The candidate to get the port from.
-guint16 purple_media_candidate_get_port(PurpleMediaCandidate *candidate);
- * Gets the base (internal) IP address.
- * @param candidate The candidate to get the base IP address from.
- * @return The base IP address.
-gchar *purple_media_candidate_get_base_ip(PurpleMediaCandidate *candidate);
- * Gets the base (internal) port.
- * Invalid if the base IP is NULL.
- * @param candidate The candidate to get the base port.
- * @return The base port.
-guint16 purple_media_candidate_get_base_port(PurpleMediaCandidate *candidate);
- * Gets the protocol (TCP or UDP).
- * @param candidate The candidate to get the protocol from.
- * @return The protocol.
-PurpleMediaNetworkProtocol purple_media_candidate_get_protocol(
- PurpleMediaCandidate *candidate);
- * @param candidate The candidate to get the priority from.
- * @return The priority.
-guint32 purple_media_candidate_get_priority(PurpleMediaCandidate *candidate);
- * Gets the candidate type.
- * @param candidate The candidate to get the candidate type from.
- * @return The candidate type.
-PurpleMediaCandidateType purple_media_candidate_get_candidate_type(
- PurpleMediaCandidate *candidate);
- * This can be NULL. It depends on the transmission type.
- * @param The candidate to get the username from.
- * @return The username.
-gchar *purple_media_candidate_get_username(PurpleMediaCandidate *candidate);
- * This can be NULL. It depends on the transmission type.
- * @param The candidate to get the password from.
- * @return The password.
-gchar *purple_media_candidate_get_password(PurpleMediaCandidate *candidate);
- * @param The candidate to get the TTL from.
-guint purple_media_candidate_get_ttl(PurpleMediaCandidate *candidate);
-#endif /* _PURPLE_MEDIA_CANDIDATE_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/media/codec.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,214 +0,0 @@
- * @file codec.h Codec for Media API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_MEDIA_CODEC_H_
-#define _PURPLE_MEDIA_CODEC_H_
-/** An opaque structure representing an audio or video codec. */
-typedef struct _PurpleMediaCodec PurpleMediaCodec;
-#include <glib-object.h>
-#define PURPLE_TYPE_MEDIA_CODEC (purple_media_codec_get_type())
-#define PURPLE_IS_MEDIA_CODEC(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), PURPLE_TYPE_MEDIA_CODEC))
-#define PURPLE_IS_MEDIA_CODEC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), PURPLE_TYPE_MEDIA_CODEC))
-#define PURPLE_MEDIA_CODEC(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), PURPLE_TYPE_MEDIA_CODEC, PurpleMediaCodec))
-#define PURPLE_MEDIA_CODEC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PURPLE_TYPE_MEDIA_CODEC, PurpleMediaCodec))
-#define PURPLE_MEDIA_CODEC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PURPLE_TYPE_MEDIA_CODEC, PurpleMediaCodec))
- * Gets the type of the media codec structure.
- * @return The media codec's GType
-GType purple_media_codec_get_type(void);
- * Creates a new PurpleMediaCodec instance.
- * @param id Codec identifier.
- * @param encoding_name Name of the media type this encodes.
- * @param media_type PurpleMediaSessionType of this codec.
- * @param clock_rate The clock rate this codec encodes at, if applicable.
- * @return The newly created PurpleMediaCodec.
-PurpleMediaCodec *purple_media_codec_new(int id, const char *encoding_name,
- PurpleMediaSessionType media_type, guint clock_rate);
- * @param The codec to get the id from.
- * @return The codec id.
-guint purple_media_codec_get_id(PurpleMediaCodec *codec);
- * Gets the encoding name.
- * @param The codec to get the encoding name from.
- * @return The encoding name.
-gchar *purple_media_codec_get_encoding_name(PurpleMediaCodec *codec);
- * @param The codec to get the clock rate from.
- * @return The clock rate.
-guint purple_media_codec_get_clock_rate(PurpleMediaCodec *codec);
- * Gets the number of channels.
- * @param The codec to get the number of channels from.
- * @return The number of channels.
-guint purple_media_codec_get_channels(PurpleMediaCodec *codec);
- * Gets a list of the optional parameters.
- * The list consists of PurpleKeyValuePair's.
- * @param The codec to get the optional parameters from.
- * @return The list of optional parameters. The list is owned by the codec and
-GList *purple_media_codec_get_optional_parameters(PurpleMediaCodec *codec);
- * Adds an optional parameter to the codec.
- * @param codec The codec to add the parameter to.
- * @param name The name of the parameter to add.
- * @param value The value of the parameter to add.
-void purple_media_codec_add_optional_parameter(PurpleMediaCodec *codec,
- const gchar *name, const gchar *value);
- * Removes an optional parameter from the codec.
- * @param codec The codec to remove the parameter from.
- * @param param A pointer to the parameter to remove.
-void purple_media_codec_remove_optional_parameter(PurpleMediaCodec *codec,
- PurpleKeyValuePair *param);
- * Gets an optional parameter based on the values given.
- * @param codec The codec to find the parameter in.
- * @param name The name of the parameter to search for.
- * @param value The value to search for or NULL.
- * @return The value found or NULL.
-PurpleKeyValuePair *purple_media_codec_get_optional_parameter(
- PurpleMediaCodec *codec, const gchar *name,
- * Copies a PurpleMediaCodec object.
- * @param codec The codec to copy.
- * @return The copy of the codec.
-PurpleMediaCodec *purple_media_codec_copy(PurpleMediaCodec *codec);
- * Copies a GList of PurpleMediaCodec and its contents.
- * @param codecs The list of codecs to be copied.
- * @return The copy of the GList.
-GList *purple_media_codec_list_copy(GList *codecs);
- * Frees a GList of PurpleMediaCodec and its contents.
- * @param codecs The list of codecs to be freed.
-void purple_media_codec_list_free(GList *codecs);
- * Creates a string representation of the codec.
- * @param codec The codec to create the string of.
- * @return The new string representation.
-gchar *purple_media_codec_to_string(const PurpleMediaCodec *codec);
-#endif /* _PURPLE_MEDIA_CODEC_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/media/enum-types.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,162 +0,0 @@
- * @file enum-types.h Enum types for Media API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_MEDIA_ENUM_TYPES_H_
-#define _PURPLE_MEDIA_ENUM_TYPES_H_
-#include <glib-object.h>
-#define PURPLE_TYPE_MEDIA_CANDIDATE_TYPE (purple_media_candidate_type_get_type())
-#define PURPLE_MEDIA_TYPE_CAPS (purple_media_caps_get_type())
-#define PURPLE_MEDIA_TYPE_INFO_TYPE (purple_media_info_type_get_type())
-#define PURPLE_TYPE_MEDIA_NETWORK_PROTOCOL (purple_media_network_protocol_get_type())
-#define PURPLE_TYPE_MEDIA_SESSION_TYPE (purple_media_session_type_get_type())
-#define PURPLE_MEDIA_TYPE_STATE (purple_media_state_changed_get_type())
-/** Media candidate types */
- PURPLE_MEDIA_CANDIDATE_TYPE_HOST,
- PURPLE_MEDIA_CANDIDATE_TYPE_SRFLX,
- PURPLE_MEDIA_CANDIDATE_TYPE_PRFLX,
- PURPLE_MEDIA_CANDIDATE_TYPE_RELAY,
- PURPLE_MEDIA_CANDIDATE_TYPE_MULTICAST,
-} PurpleMediaCandidateType;
- PURPLE_MEDIA_CAPS_NONE = 0,
- PURPLE_MEDIA_CAPS_AUDIO = 1,
- PURPLE_MEDIA_CAPS_AUDIO_SINGLE_DIRECTION = 1 << 1,
- PURPLE_MEDIA_CAPS_VIDEO = 1 << 2,
- PURPLE_MEDIA_CAPS_VIDEO_SINGLE_DIRECTION = 1 << 3,
- PURPLE_MEDIA_CAPS_AUDIO_VIDEO = 1 << 4,
- PURPLE_MEDIA_CAPS_MODIFY_SESSION = 1 << 5,
- PURPLE_MEDIA_CAPS_CHANGE_DIRECTION = 1 << 6,
-/** Media component types */
- PURPLE_MEDIA_COMPONENT_NONE = 0,
- PURPLE_MEDIA_COMPONENT_RTP = 1,
- PURPLE_MEDIA_COMPONENT_RTCP = 2,
-} PurpleMediaComponentType;
- PURPLE_MEDIA_INFO_HANGUP = 0,
- PURPLE_MEDIA_INFO_ACCEPT,
- PURPLE_MEDIA_INFO_REJECT,
- PURPLE_MEDIA_INFO_MUTE,
- PURPLE_MEDIA_INFO_UNMUTE,
- PURPLE_MEDIA_INFO_PAUSE,
- PURPLE_MEDIA_INFO_UNPAUSE,
- PURPLE_MEDIA_INFO_HOLD,
- PURPLE_MEDIA_INFO_UNHOLD,
-/** Media network protocols */
- PURPLE_MEDIA_NETWORK_PROTOCOL_UDP,
- PURPLE_MEDIA_NETWORK_PROTOCOL_TCP,
-} PurpleMediaNetworkProtocol;
-/** Media session types */
- PURPLE_MEDIA_RECV_AUDIO = 1 << 0,
- PURPLE_MEDIA_SEND_AUDIO = 1 << 1,
- PURPLE_MEDIA_RECV_VIDEO = 1 << 2,
- PURPLE_MEDIA_SEND_VIDEO = 1 << 3,
- PURPLE_MEDIA_AUDIO = PURPLE_MEDIA_RECV_AUDIO | PURPLE_MEDIA_SEND_AUDIO,
- PURPLE_MEDIA_VIDEO = PURPLE_MEDIA_RECV_VIDEO | PURPLE_MEDIA_SEND_VIDEO
-} PurpleMediaSessionType;
-/** Media state-changed types */
- PURPLE_MEDIA_STATE_NEW = 0,
- PURPLE_MEDIA_STATE_CONNECTED,
- PURPLE_MEDIA_STATE_END,
- * Gets the media candidate type's GType
- * @return The media candidate type's GType.
-GType purple_media_candidate_type_get_type(void);
- * Gets the type of the media caps flags
- * @return The media caps flags' GType
-GType purple_media_caps_get_type(void);
- * Gets the type of the info type enum
- * @return The info type enum's GType
-GType purple_media_info_type_get_type(void);
- * Gets the media network protocol's GType
- * @return The media network protocol's GType.
-GType purple_media_network_protocol_get_type(void);
- * Gets the media session type's GType
- * @return The media session type's GType.
-GType purple_media_session_type_get_type(void);
- * Gets the type of the state-changed enum
- * @return The state-changed enum's GType
-GType purple_media_state_changed_get_type(void);
-#endif /* _PURPLE_MEDIA_ENUM_TYPES_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/mediamanager.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,246 +0,0 @@
- * @file mediamanager.h Media Manager API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_MEDIA_MANAGER_H_
-#define _PURPLE_MEDIA_MANAGER_H_
-#include <glib-object.h>
-/** An opaque structure representing a group of (usually all) media calls. */
-typedef struct _PurpleMediaManager PurpleMediaManager;
-/** The GObject class structure of the PurpleMediaManager object. */
-typedef struct _PurpleMediaManagerClass PurpleMediaManagerClass;
-#define PURPLE_TYPE_MEDIA_MANAGER (purple_media_manager_get_type())
-#define PURPLE_MEDIA_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), PURPLE_TYPE_MEDIA_MANAGER, PurpleMediaManager))
-#define PURPLE_MEDIA_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PURPLE_TYPE_MEDIA_MANAGER, PurpleMediaManagerClass))
-#define PURPLE_IS_MEDIA_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), PURPLE_TYPE_MEDIA_MANAGER))
-#define PURPLE_IS_MEDIA_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), PURPLE_TYPE_MEDIA_MANAGER))
-#define PURPLE_MEDIA_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PURPLE_TYPE_MEDIA_MANAGER, PurpleMediaManagerClass))
-/**************************************************************************/
-/** @name Media Manager API */
-/**************************************************************************/
- * Gets the media manager's GType.
- * @return The media manager's GType.
-GType purple_media_manager_get_type(void);
- * Gets the "global" media manager object. It's created if it doesn't already exist.
- * @return The "global" instance of the media manager object.
-PurpleMediaManager *purple_media_manager_get(void);
- * Creates a media session.
- * @param manager The media manager to create the session under.
- * @param account The account to create the session on.
- * @param conference_type The conference type to feed into Farsight2.
- * @param remote_user The remote user to initiate the session with.
- * @param initiator TRUE if the local user is the initiator of this media call, FALSE otherwise.
- * @return A newly created media session.
-PurpleMedia *purple_media_manager_create_media(PurpleMediaManager *manager,
- PurpleAccount *account,
- const char *conference_type,
- const char *remote_user,
- * Gets all of the media sessions.
- * @param manager The media manager to get all of the sessions from.
- * @return A list of all the media sessions.
-GList *purple_media_manager_get_media(PurpleMediaManager *manager);
- * Gets all of the media sessions for a given account.
- * @param manager The media manager to get the sessions from.
- * @param account The account the sessions are on.
- * @return A list of the media sessions on the given account.
-GList *purple_media_manager_get_media_by_account(
- PurpleMediaManager *manager, PurpleAccount *account);
- * Removes a media session from the media manager.
- * @param manager The media manager to remove the media session from.
- * @param media The media session to remove.
-purple_media_manager_remove_media(PurpleMediaManager *manager,
- * Signals that output windows should be created for the chosen stream.
- * This shouldn't be called outside of mediamanager.c and media.c
- * @param manager Manager the output windows are registered with.
- * @param media Media session the output windows are registered for.
- * @param session_id The session the output windows are registered with.
- * @param participant The participant the output windows are registered with.
- * @return TRUE if it succeeded, FALSE if it failed.
-gboolean purple_media_manager_create_output_window(
- PurpleMediaManager *manager, PurpleMedia *media,
- const gchar *session_id, const gchar *participant);
- * Registers a video output window to be created for a given stream.
- * @param manager The manager to register the output window with.
- * @param media The media instance to find the stream in.
- * @param session_id The session the stream is associated with.
- * @param participant The participant the stream is associated with.
- * @param window_id The window ID to embed the video in.
- * @return A unique ID to the registered output window, 0 if it failed.
-gulong purple_media_manager_set_output_window(PurpleMediaManager *manager,
- PurpleMedia *media, const gchar *session_id,
- const gchar *participant, gulong window_id);
- * Remove a previously registerd output window.
- * @param manager The manager the output window was registered with.
- * @param output_window_id The ID of the output window.
- * @return TRUE if it found the output window and was successful, else FALSE.
-gboolean purple_media_manager_remove_output_window(
- PurpleMediaManager *manager, gulong output_window_id);
- * Remove all output windows for a given conference/session/participant/stream.
- * @param manager The manager the output windows were registered with.
- * @param media The media instance the output windows were registered for.
- * @param session_id The session the output windows were registered for.
- * @param participant The participant the output windows were registered for.
-void purple_media_manager_remove_output_windows(
- PurpleMediaManager *manager, PurpleMedia *media,
- const gchar *session_id, const gchar *participant);
- * Sets which media caps the UI supports.
- * @param manager The manager to set the caps on.
- * @param caps The caps to set.
-void purple_media_manager_set_ui_caps(PurpleMediaManager *manager,
- * Gets which media caps the UI supports.
- * @param manager The manager to get caps from.
- * @return caps The caps retrieved.
-PurpleMediaCaps purple_media_manager_get_ui_caps(PurpleMediaManager *manager);
- * Sets which media backend type media objects will use.
- * @param manager The manager to set the caps on.
- * @param backend_type The media backend type to use.
-void purple_media_manager_set_backend_type(PurpleMediaManager *manager,
- * Gets which media backend type media objects will use.
- * @param manager The manager to get the media backend type from.
- * @return The type of media backend type media objects will use.
-GType purple_media_manager_get_backend_type(PurpleMediaManager *manager);
-#endif /* _PURPLE_MEDIA_MANAGER_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/mime.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,218 +0,0 @@
- * 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 source distribution
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301,
- * Rudimentary parsing of multi-part MIME messages into more
- * accessible structures.
-typedef struct _PurpleMimeDocument PurpleMimeDocument;
- * A part of a multipart MIME document.
-typedef struct _PurpleMimePart PurpleMimePart;
- * Allocate an empty MIME document.
-PurpleMimeDocument *purple_mime_document_new(void);
- * Frees memory used in a MIME document and all of its parts and fields
- * @param doc The MIME document to free.
-void purple_mime_document_free(PurpleMimeDocument *doc);
- * Parse a MIME document from a NUL-terminated string.
- * @param buf The NULL-terminated string containing the MIME-encoded data.
- * @returns A MIME document.
-PurpleMimeDocument *purple_mime_document_parse(const char *buf);
- * Parse a MIME document from a string
- * @param buf The string containing the MIME-encoded data.
- * @param len Length of buf.
- * @returns A MIME document.
-PurpleMimeDocument *purple_mime_document_parsen(const char *buf, gsize len);
- * Write (append) a MIME document onto a GString.
-void purple_mime_document_write(PurpleMimeDocument *doc, GString *str);
- * The list of fields in the header of a document
- * @param doc The MIME document.
- * @constreturn A list of strings indicating the fields (but not the values
- * of the fields) in the header of doc.
-GList *purple_mime_document_get_fields(PurpleMimeDocument *doc);
- * Get the value of a specific field in the header of a document.
- * @param doc The MIME document.
- * @param field Case-insensitive field name.
- * @returns Value associated with the indicated header field, or
- * NULL if the field doesn't exist.
-const char *purple_mime_document_get_field(PurpleMimeDocument *doc,
- * Set or replace the value of a specific field in the header of a
- * @param doc The MIME document.
- * @param field Case-insensitive field name.
- * @param value Value to associate with the indicated header field,
- * of NULL to remove the field.
-void purple_mime_document_set_field(PurpleMimeDocument *doc,
- * The list of parts in a multipart document.
- * @param doc The MIME document.
- * @constreturn List of PurpleMimePart contained within doc.
-GList *purple_mime_document_get_parts(PurpleMimeDocument *doc);
- * Create and insert a new part into a MIME document.
- * @param doc The new part's parent MIME document.
-PurpleMimePart *purple_mime_part_new(PurpleMimeDocument *doc);
- * The list of fields in the header of a document part.
- * @param part The MIME document part.
- * @constreturn List of strings indicating the fields (but not the values
- * of the fields) in the header of part.
-GList *purple_mime_part_get_fields(PurpleMimePart *part);
- * Get the value of a specific field in the header of a document part.
- * @param part The MIME document part.
- * @param field Case-insensitive name of the header field.
- * @returns Value of the specified header field, or NULL if the
-const char *purple_mime_part_get_field(PurpleMimePart *part,
- * Get the decoded value of a specific field in the header of a
-char *purple_mime_part_get_field_decoded(PurpleMimePart *part,
- * Set or replace the value of a specific field in the header of a
- * @param part The part of the MIME document.
- * @param field Case-insensitive field name
- * @param value Value to associate with the indicated header field,
- * of NULL to remove the field.
-void purple_mime_part_set_field(PurpleMimePart *part,
- * Get the (possibly encoded) data portion of a MIME document part.
- * @param part The MIME document part.
- * @returns NULL-terminated data found in the document part
-const char *purple_mime_part_get_data(PurpleMimePart *part);
- * Get the data portion of a MIME document part, after attempting to
- * decode it according to the content-transfer-encoding field. If the
- * specified encoding method is not supported, this function will
- * @param part The MIME documemt part.
- * @param data Buffer for the data.
- * @param len The length of the buffer.
-void purple_mime_part_get_data_decoded(PurpleMimePart *part,
- guchar **data, gsize *len);
- * Get the length of the data portion of a MIME document part.
- * @param part The MIME document part.
- * @returns Length of the data in the document part.
-gsize purple_mime_part_get_length(PurpleMimePart *part);
-void purple_mime_part_set_data(PurpleMimePart *part, const char *data);
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/msg.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,325 +0,0 @@
- * @file msg.h Message functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-typedef struct _MsnMessage MsnMessage;
- MSN_MSG_ERROR_NONE, /**< No error. */
- MSN_MSG_ERROR_TIMEOUT, /**< The message timedout. */
- MSN_MSG_ERROR_NAK, /**< The message could not be sent. */
- MSN_MSG_ERROR_SB, /**< The error comes from the switchboard. */
- MSN_MSG_ERROR_UNKNOWN /**< An unknown error occurred. */
-#include "transaction.h"
-#include "slpmsg_part.h"
-typedef void (*MsnMsgCb)(MsnMessage *, void *data);
-#define MSG_BODY_DEM "\r\n\r\n"
-#define MSG_LINE_DEM "\r\n"
-#define MSG_OIM_BODY_DEM "\n\n"
-#define MSG_OIM_LINE_DEM "\n"
- guint ref_count; /**< The reference count. */
- MsnSlpMessagePart *part;
- guint total_chunks; /**< How many chunks in this multi-part message */
- guint received_chunks; /**< How many chunks we've received so far */
- GHashTable *header_table;
- gboolean ack_ref; /**< A flag that states if this message has
- been ref'ed for using it in a callback. */
- MsnMsgCb ack_cb; /**< The callback to call when we receive an ACK of this
- MsnMsgCb nak_cb; /**< The callback to call when we receive a NAK of this
- void *ack_data; /**< The data used by callbacks. */
- * Creates a new, empty message.
- * @return A new message.
-MsnMessage *msn_message_new(MsnMsgType type);
- * Creates a new, empty MSNSLP message.
- * @return A new MSNSLP message.
-MsnMessage *msn_message_new_msnslp(void);
- * Creates a new nudge message.
- * @return A new nudge message.
-MsnMessage *msn_message_new_nudge(void);
- * Creates a new plain message.
- * @return A new plain message.
-MsnMessage *msn_message_new_plain(const char *message);
- * Creates a new message based off a command.
- * @param session The MSN session.
- * @param cmd The command.
- * @return The new message.
-MsnMessage *msn_message_new_from_cmd(MsnSession *session, MsnCommand *cmd);
- * Parses the payload of a message.
- * @param msg The message.
- * @param payload The payload.
- * @param payload_len The length of the payload.
-void msn_message_parse_payload(MsnMessage *msg, const char *payload,
- const char *line_dem,const char *body_dem);
- * Increments the reference count on a message.
- * @param msg The message.
-MsnMessage *msn_message_ref(MsnMessage *msg);
- * Decrements the reference count on a message.
- * This will destroy the structure if the count hits 0.
- * @param msg The message.
- * @return @a msg, or @c NULL if the new count is 0.
-void msn_message_unref(MsnMessage *msg);
- * Generates the payload data of a message.
- * @param msg The message.
- * @param ret_size The returned size of the payload.
- * @return The payload data of the message.
-char *msn_message_gen_payload(MsnMessage *msg, size_t *ret_size);
- * Sets the flag for an outgoing message.
- * @param msg The message.
- * @param flag The flag.
-void msn_message_set_flag(MsnMessage *msg, char flag);
- * Returns the flag for an outgoing message.
- * @param msg The message.
-char msn_message_get_flag(const MsnMessage *msg);
- * Sets the binary content of the message.
- * @param msg The message.
- * @param data The binary data.
- * @param len The length of the data.
-void msn_message_set_bin_data(MsnMessage *msg, const void *data, size_t len);
- * Returns the binary content of the message.
- * @param msg The message.
- * @param len The returned length of the data.
- * @return The binary data.
-const void *msn_message_get_bin_data(const MsnMessage *msg, size_t *len);
- * Sets the content type in a message.
- * @param msg The message.
- * @param type The content-type.
-void msn_message_set_content_type(MsnMessage *msg, const char *type);
- * Returns the content type in a message.
- * @param msg The message.
- * @return The content-type.
-const char *msn_message_get_content_type(const MsnMessage *msg);
- * Sets the charset in a message.
- * @param msg The message.
- * @param charset The charset.
-void msn_message_set_charset(MsnMessage *msg, const char *charset);
- * Returns the charset in a message.
- * @param msg The message.
-const char *msn_message_get_charset(const MsnMessage *msg);
- * Sets a header in a message.
- * @param msg The message.
- * @param header The header name.
- * @param value The header value.
-void msn_message_set_header(MsnMessage *msg, const char *name,
- * Returns the value of a header from a message.
- * @param msg The message.
- * @param header The header value.
- * @return The value, or @c NULL if not found.
-const char *msn_message_get_header_value(const MsnMessage *msg, const char *name);
- * Parses the body and returns it in the form of a hashtable.
- * @param msg The message.
- * @return The resulting hashtable.
-GHashTable *msn_message_get_hashtable_from_body(const MsnMessage *msg);
-void msn_message_show_readable(MsnMessage *msg, const char *info,
-char *msn_message_to_string(MsnMessage *msg);
-void msn_plain_msg(MsnCmdProc *cmdproc, MsnMessage *msg);
-void msn_control_msg(MsnCmdProc *cmdproc, MsnMessage *msg);
- * Processes peer to peer messages.
- * @param cmdproc The command processor.
- * @param msg The message.
-void msn_p2p_msg(MsnCmdProc *cmdproc, MsnMessage *msg);
- * Processes emoticon messages.
- * @param cmdproc The command processor.
- * @param msg The message.
-void msn_emoticon_msg(MsnCmdProc *cmdproc, MsnMessage *msg);
-void msn_datacast_msg(MsnCmdProc *cmdproc, MsnMessage *msg);
- * Processes INVITE messages.
- * @param cmdproc The command processor.
- * @param msg The message.
-void msn_invite_msg(MsnCmdProc *cmdproc, MsnMessage *msg);
-void msn_handwritten_msg(MsnCmdProc *cmdproc, MsnMessage *msg);
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/msn.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
- * @file msn.h The MSN protocol plugin
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
- MSN_CAP_VIA_MOBILE = 0x0000001,
- MSN_CAP_VIA_TEXAS = 0x0000002,
- MSN_CAP_INK_GIF = 0x0000004,
- MSN_CAP_INK_ISF = 0x0000008,
- MSN_CAP_VIDEO_CHAT = 0x0000010,
- MSN_CAP_PACKET = 0x0000020,
- MSN_CAP_MOBILE_ON = 0x0000040,
- MSN_CAP_WEB_WATCH = 0x0000080,
- MSN_CAP_ACTIVITIES = 0x0000100,
- MSN_CAP_VIA_WEBIM = 0x0000200,
- MSN_CAP_MOBILE_DEV = 0x0000400,
- MSN_CAP_VIA_FEDERATED = 0x0000800,
- MSN_CAP_SPACE = 0x0001000,
- MSN_CAP_MCE = 0x0002000,
- MSN_CAP_DIRECTIM = 0x0004000,
- MSN_CAP_WINKS = 0x0008000,
- MSN_CAP_SEARCH = 0x0010000,
- MSN_CAP_BOT = 0x0020000,
- MSN_CAP_VOICEIM = 0x0040000,
- MSN_CAP_SCHANNEL = 0x0080000,
- MSN_CAP_SIP_INVITE = 0x0100000,
- MSN_CAP_MULTI_VV = 0x0200000,
- MSN_CAP_SDRIVE = 0x0400000,
- MSN_CAP_PAGEMODE_MSG = 0x080000,
- MSN_CAP_ONECARE = 0x1000000,
- MSN_CAP_P2P_TURN = 0x2000000,
- MSN_CAP_P2P_BOOTSTRAP_VIA_UUN = 0x4000000,
- MSN_CAP_ALIASED = 0x8000000
- MSN_EXT_CAP_SMS_ONLY = 0x1,
- MSN_EXT_CAP_VOICE_OVER_MSNP = 0x2,
- MSN_EXT_CAP_UUCP_SIP = 0x4,
- MSN_EXT_CAP_APP_MSGS = 0x8,
- MSN_EXT_CAP_RTC_VIDEO = 0x10,
- MSN_EXT_CAP_P2PV2 = 0x20,
- MSN_EXT_CAP_AUTH_WEBIM = 0x40,
- MSN_EXT_CAP_1ON1_VIA_GROUP = 0x80,
- MSN_EXT_CAP_OFFLINEIM = 0x100,
- MSN_EXT_CAP_SHARING_VIDEO = 0x200,
- MSN_EXT_CAP_NUDGE = 0x400,
- MSN_EXT_CAP_CIRCLE_VOICEIM = 0x800,
- MSN_EXT_CAP_SHARING = 0x1000,
- MSN_EXT_CAP_P2P_MIXER_RELAY = 0x8000,
- MSN_EXT_CAP_CONV_WINDOW_FT = 0x20000,
- MSN_EXT_CAP_VIDEO_16x9 = 0x40000,
- MSN_EXT_CAP_P2P_ENVELOPE = 0x80000,
- MSN_EXT_CAP_YAHOOIM_DISABLE = 0x400000,
- MSN_EXT_CAP_SIP_TUNNELv2 = 0x800000,
- MSN_EXT_CAP_VOICE_CLIP_WMA = 0x1000000,
- MSN_EXT_CAP_VOICE_CLIP_CIRCLEIM = 0x2000000,
- MSN_EXT_CAP_SOCIAL_NEWS = 0x4000000,
- MSN_EXT_CAP_CUSTOM_SMILEY = 0x8000000,
- MSN_EXT_CAP_UTF8_MOODS = 0x10000000,
- MSN_EXT_CAP_FTURN = 0x20000000,
- MSN_EXT_CAP_P4_ACTIVITY = 0x40000000,
- MSN_EXT_CAP_MUC = 0x80000000
- MSN_CLIENT_VER_5_0 = 0x00,
- MSN_CLIENT_VER_6_0 = 0x10, /* MSNC1 */
- MSN_CLIENT_VER_6_1 = 0x20, /* MSNC2 */
- MSN_CLIENT_VER_6_2 = 0x30, /* MSNC3 */
- MSN_CLIENT_VER_7_0 = 0x40, /* MSNC4 */
- MSN_CLIENT_VER_7_5 = 0x50, /* MSNC5 */
- MSN_CLIENT_VER_8_0 = 0x60, /* MSNC6 */
- MSN_CLIENT_VER_8_1 = 0x70, /* MSNC7 */
- MSN_CLIENT_VER_8_5 = 0x80, /* MSNC8 */
- MSN_CLIENT_VER_9_0 = 0x90, /* MSNC9 */
- MSN_CLIENT_VER_14_0 = 0xA0, /* MSNC10 */
- MSN_CLIENT_VER_15_0 = 0xB0 /* MSNC11 */
-#define MSN_BUF_LEN 8192
-/* Windows Live Messenger Server*/
-#define MSN_SERVER "messenger.hotmail.com"
-#define MSN_HTTPCONN_SERVER "gateway.messenger.hotmail.com"
-/* Max protocol upstream is 16, but this breaks file transfer, contact icons and receiving custom emoticons */
-#define WLM_MAX_PROTOCOL /* 16 */ 15
-#define WLM_MIN_PROTOCOL 15
-#define MSN_TYPING_RECV_TIMEOUT 6
-#define MSN_TYPING_SEND_TIMEOUT 4
-#define PROFILE_URL "http://spaces.live.com/profile.aspx?mem="
-#define PHOTO_URL " contactparams:photopreauthurl=\""
-#define BUDDY_ALIAS_MAXLEN 387
-#define MSN_CAM_GUID "4BD96FC0-AB17-4425-A14A-439185962DC8"
-#define MSN_CAM_REQUEST_GUID "1C9AA97E-9C05-4583-A3BD-908A196F1E92"
-#define MSN_FT_GUID "5D3E02AB-6190-11D3-BBBB-00C04F795683"
-#define MSN_OBJ_GUID "A4268EEC-FEC5-49E5-95C3-F126696BDBF6"
-#define MSN_CLIENTINFO \
- "Client-Name: Purple/" VERSION "\r\n" \
-/* Index into attention_types */
-#define MSN_CLIENT_ID_VERSION MSN_CLIENT_VER_7_0
-#define MSN_CLIENT_ID_CAPABILITIES (MSN_CAP_PACKET|MSN_CAP_INK_GIF|MSN_CAP_VOICEIM)
-#define MSN_CLIENT_ID_EXT_CAPS (0)
- ((MSN_CLIENT_ID_VERSION << 24) | \
- (MSN_CLIENT_ID_CAPABILITIES))
-msn_set_public_alias(PurpleConnection *gc, const char *alias,
- PurpleSetPublicAliasSuccessCallback success_cb,
- PurpleSetPublicAliasFailureCallback failure_cb);
-void msn_send_privacy(PurpleConnection *gc);
-void msn_send_im_message(MsnSession *session, MsnMessage *msg);
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/msnutils.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,235 +0,0 @@
- * @file msnutils.h Utility functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-/*encode the str to RFC2047 style*/
-char *msn_encode_mime(const char *str);
- * Generate the Random GUID
- * Encodes the spaces in a string
- * @param str The string to be encoded.
- * @param buf The buffer to hold the encoded string.
- * @param len The maximum length (including NUL) to put in @buf.
- * @return Whether @str was able to fit in @buf.
-msn_encode_spaces(const char *str, char *buf, size_t len);
- * Parses the MSN message formatting into a format compatible with Purple.
- * @param mime The mime header with the formatting.
- * @param pre_ret The returned prefix string.
- * @param post_ret The returned postfix string.
- * @return The new message.
-void msn_parse_format(const char *mime, char **pre_ret, char **post_ret);
- * Parses the Purple message formatting (html) into the MSN format.
- * @param html The html message to format.
- * @param attributes The returned attributes string.
- * @param message The returned message string.
- * @return The new message.
-void msn_import_html(const char *html, char **attributes, char **message);
- * Parses a socket string.
- * @param str A host:port string.
- * @param ret_host Return string value of the host.
- * @param ret_port Return integer value of the port.
-void msn_parse_socket(const char *str, char **ret_host, int *ret_port);
- * Verify if the email is a vaild passport.
- * @param passport The email
- * @return True if it is a valid passport, else FALSE
-gboolean msn_email_is_valid(const char *passport);
- * Handle MSN Challenge Computation
- * This algorithm references
- * http://imfreedom.org/wiki/index.php/MSN:NS/Challenges
- * @param input Challenge input.
- * @param output Callenge output.
-void msn_handle_chl(char *input, char *output);
- * Read a byte from a buffer
- * @param buf Pointer to buffer.
-guint8 msn_read8(const char *buf);
- * Read a little-endian short from a buffer
- * @param buf Pointer to buffer.
-guint16 msn_read16le(const char *buf);
- * Read a big-endian short from a buffer
- * @param buf Pointer to buffer.
-guint16 msn_read16be(const char *buf);
- * Read a little-endian int from a buffer
- * @param buf Pointer to buffer.
-guint32 msn_read32le(const char *buf);
- * Read a big-endian int from a buffer
- * @param buf Pointer to buffer.
-guint32 msn_read32be(const char *buf);
- * Read a little-endian long from a buffer
- * @param buf Pointer to buffer.
-guint64 msn_read64le(const char *buf);
- * Read a big-endian long from a buffer
- * @param buf Pointer to buffer.
-guint64 msn_read64be(const char *buf);
- * Write a byte to a buffer
- * @param buf Pointer to buffer.
- * @param data 8-bit byte.
-void msn_write8(char *buf, guint8 data);
- * Write a little-endian short to a buffer
- * @param buf Pointer to buffer.
-void msn_write16le(char *buf, guint16 data);
- * Write a big-endian short to a buffer
- * @param buf Pointer to buffer.
-void msn_write16be(char *buf, guint16 data);
- * Write a little-endian int to a buffer
- * @param buf Pointer to buffer.
-void msn_write32le(char *buf, guint32 data);
- * Write a big-endian int to a buffer
- * @param buf Pointer to buffer.
-void msn_write32be(char *buf, guint32 data);
- * Write a little-endian long to a buffer
- * @param buf Pointer to buffer.
-void msn_write64le(char *buf, guint64 data);
- * Write a big-endian long to a buffer
- * @param buf Pointer to buffer.
-void msn_write64be(char *buf, guint64 data);
- * Same as above, but these increment the buf pointer.
-#define msn_pop8(buf) msn_read8((buf+=1)-1)
-#define msn_pop16le(buf) msn_read16le((buf+=2)-2)
-#define msn_pop16be(buf) msn_read16be((buf+=2)-2)
-#define msn_pop32le(buf) msn_read32le((buf+=4)-4)
-#define msn_pop32be(buf) msn_read32be((buf+=4)-4)
-#define msn_pop64le(buf) msn_read64le((buf+=8)-8)
-#define msn_pop64be(buf) msn_read64be((buf+=8)-8)
-#define msn_push8(buf, data) msn_write8(buf, data), buf+=1
-#define msn_push16le(buf, data) msn_write16le(buf, data), buf+=2
-#define msn_push16be(buf, data) msn_write16be(buf, data), buf+=2
-#define msn_push32le(buf, data) msn_write32le(buf, data), buf+=4
-#define msn_push32be(buf, data) msn_write32be(buf, data), buf+=4
-#define msn_push64le(buf, data) msn_write64le(buf, data), buf+=8
-#define msn_push64be(buf, data) msn_write64be(buf, data), buf+=8
-#endif /* MSN_UTILS_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/namespaces.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
- * purple - Jabber Protocol Plugin
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef PURPLE_JABBER_NAMESPACES_H_
-#define PURPLE_JABBER_NAMESPACES_H_
-#define NS_XMPP_BIND "urn:ietf:params:xml:ns:xmpp-bind"
-#define NS_XMPP_CLIENT "jabber:client"
-#define NS_XMPP_SASL "urn:ietf:params:xml:ns:xmpp-sasl"
-#define NS_XMPP_SESSION "urn:ietf:params:xml:ns:xmpp-session"
-#define NS_XMPP_STANZAS "urn:ietf:params:xml:ns:xmpp-stanzas"
-#define NS_XMPP_STREAMS "http://etherx.jabber.org/streams"
-#define NS_XMPP_TLS "urn:ietf:params:xml:ns:xmpp-tls"
-/* XEP-0012 Last Activity (and XEP-0256 Last Activity in Presence) */
-#define NS_LAST_ACTIVITY "jabber:iq:last"
-/* XEP-0030 Service Discovery */
-#define NS_DISCO_INFO "http://jabber.org/protocol/disco#info"
-#define NS_DISCO_ITEMS "http://jabber.org/protocol/disco#items"
-/* XEP-0047 IBB (In-band bytestreams) */
-#define NS_IBB "http://jabber.org/protocol/ibb"
-/* XEP-0065 SOCKS5 Bytestreams */
-#define NS_BYTESTREAMS "http://jabber.org/protocol/bytestreams"
-/* XEP-0066 Out of Band Data (OOB) */
-#define NS_OOB_IQ_DATA "jabber:iq:oob"
-#define NS_OOB_X_DATA "jabber:x:oob"
-/* XEP-0071 XHTML-IM (rich-text messages) */
-#define NS_XHTML_IM "http://jabber.org/protocol/xhtml-im"
-#define NS_XHTML "http://www.w3.org/1999/xhtml"
-/* XEP-0084 v0.12 User Avatar */
-#define NS_AVATAR_0_12_DATA "http://www.xmpp.org/extensions/xep-0084.html#ns-data"
-#define NS_AVATAR_0_12_METADATA "http://www.xmpp.org/extensions/xep-0084.html#ns-metadata"
-/* XEP-0084 v1.1 User Avatar */
-#define NS_AVATAR_1_1_DATA "urn:xmpp:avatar:data"
-#define NS_AVATAR_1_1_METADATA "urn:xmpp:avatar:metadata"
-/* XEP-0096 SI File Transfer */
-#define NS_SI_FILE_TRANSFER "http://jabber.org/protocol/si/profile/file-transfer"
-/* XEP-0124 Bidirectional-streams Over Synchronous HTTP (BOSH) */
-#define NS_BOSH "http://jabber.org/protocol/httpbind"
-/* XEP-0191 Simple Communications Blocking */
-#define NS_SIMPLE_BLOCKING "urn:xmpp:blocking"
-#define NS_PING "urn:xmpp:ping"
-/* XEP-0202 Entity Time */
-#define NS_ENTITY_TIME "urn:xmpp:time"
-/* XEP-0203 Delayed Delivery (and legacy delayed delivery) */
-#define NS_DELAYED_DELIVERY "urn:xmpp:delay"
-#define NS_DELAYED_DELIVERY_LEGACY "jabber:x:delay"
-/* XEP-0206 XMPP over BOSH */
-#define NS_XMPP_BOSH "urn:xmpp:xbosh"
-/* XEP-0224 Attention */
-#define NS_ATTENTION "urn:xmpp:attention:0"
-/* XEP-0231 BoB (Bits of Binary) */
-#define NS_BOB "urn:xmpp:bob"
-/* XEP-0237 Roster Versioning */
-#define NS_ROSTER_VERSIONING "urn:xmpp:features:rosterver"
-/* XEP-0264 File Transfer Thumbnails (Thumbs) */
-#define NS_THUMBS "urn:xmpp:thumbs:0"
-#define NS_GOOGLE_CAMERA "http://www.google.com/xmpp/protocol/camera/v1"
-#define NS_GOOGLE_VIDEO "http://www.google.com/xmpp/protocol/video/v1"
-#define NS_GOOGLE_VOICE "http://www.google.com/xmpp/protocol/voice/v1"
-#define NS_GOOGLE_JINGLE_INFO "google:jingleinfo"
-#define NS_GOOGLE_MAIL_NOTIFY "google:mail:notify"
-#define NS_GOOGLE_ROSTER "google:roster"
-#define NS_GOOGLE_PROTOCOL_SESSION "http://www.google.com/xmpp/protocol/session"
-#define NS_GOOGLE_SESSION "http://www.google.com/session"
-#define NS_GOOGLE_SESSION_PHONE "http://www.google.com/session/phone"
-#define NS_GOOGLE_SESSION_VIDEO "http://www.google.com/session/video"
-#endif /* PURPLE_JABBER_NAMESPACES_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/nat-pmp.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
- * @file nat-pmp.h NAT-PMP Implementation
- * 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
- * Most code in nat-pmp.h copyright (C) 2007, R. Tyler Ballance, bleep, LLC.
- * This file is distributed under the 3-clause (modified) BSD license:
- * Redistribution and use in source and binary forms, with or without modification, are permitted
- * provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright notice, this list of conditions and
- * the following disclaimer.
- * Neither the name of the bleep. LLC nor the names of its contributors may be used to endorse or promote
- * products derived from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
-#ifndef _PURPLE_NAT_PMP_H
-#define _PURPLE_NAT_PMP_H
-#define PURPLE_PMP_LIFETIME 3600 /* 3600 seconds */
-void purple_pmp_init(void);
-char *purple_pmp_get_public_ip(void);
- * Remove the NAT-PMP mapping for a specified type on a specified port
- * @param type The PurplePmpType
- * @param privateport The private port on which we are listening locally
- * @param publicport The public port on which we are expecting a response
- * @param lifetime The lifetime of the mapping. It is recommended that this be PURPLE_PMP_LIFETIME.
- * @returns TRUE if succesful; FALSE if unsuccessful
-gboolean purple_pmp_create_map(PurplePmpType type, unsigned short privateport, unsigned short publicport, int lifetime);
- * Remove the NAT-PMP mapping for a specified type on a specified port
- * @param type The PurplePmpType
- * @param privateport The private port on which the mapping was previously made
- * @returns TRUE if succesful; FALSE if unsuccessful
-gboolean purple_pmp_destroy_map(PurplePmpType type, unsigned short privateport);
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/network.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,359 +0,0 @@
- * @file network.h Network API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_NETWORK_H_
-#define _PURPLE_NETWORK_H_
-/**************************************************************************/
-/** @name Network API */
-/**************************************************************************/
-typedef struct _PurpleNetworkListenData PurpleNetworkListenData;
-typedef void (*PurpleNetworkListenCallback) (int listenfd, gpointer data);
- * Converts a dot-decimal IP address to an array of unsigned
- * chars. For example, converts 192.168.0.1 to a 4 byte
- * array containing 192, 168, 0 and 1.
- * @param ip An IP address in dot-decimal notiation.
- * @return An array of 4 bytes containing an IP addresses
- * equivalent to the given parameter, or NULL if
- * the given IP address is invalid. This value
- * is statically allocated and should not be
-const unsigned char *purple_network_ip_atoi(const char *ip);
- * Sets the IP address of the local system in preferences. This
- * is the IP address that should be used for incoming connections
- * (file transfer, direct IM, etc.) and should therefore be
- * @param ip The local IP address.
-void purple_network_set_public_ip(const char *ip);
- * Returns the IP address of the local system set in preferences.
- * This returns the value set via purple_network_set_public_ip().
- * You probably want to use purple_network_get_my_ip() instead.
- * @return The local IP address set in preferences.
-const char *purple_network_get_public_ip(void);
- * Returns the IP address of the local system.
- * You probably want to use purple_network_get_my_ip() instead.
- * @note The returned string is a pointer to a static buffer. If this
- * function is called twice, it may be important to make a copy
- * of the returned string.
- * @param fd The fd to use to help figure out the IP, or else -1.
- * @return The local IP address.
-const char *purple_network_get_local_system_ip(int fd);
- * Returns all IP addresses of the local system.
- * @note The caller must free this list. If libpurple was built with
- * support for it, this function also enumerates IPv6 addresses.
- * @return A list of local IP addresses.
-GList *purple_network_get_all_local_system_ips(void);
- * Returns the IP address that should be used anywhere a
- * public IP addresses is needed (listening for an incoming
- * If the user has manually specified an IP address via
- * preferences, then this IP is returned. Otherwise the
- * IP address returned by purple_network_get_local_system_ip()
- * @note The returned string is a pointer to a static buffer. If this
- * function is called twice, it may be important to make a copy
- * of the returned string.
- * @param fd The fd to use to help figure out the IP, or -1.
- * @return The local IP address to be used.
-const char *purple_network_get_my_ip(int fd);
- * Should calls to purple_network_listen() and purple_network_listen_range()
- * map the port externally using NAT-PMP or UPnP?
- * The default value is TRUE
- * @param map_external Should the open port be mapped externally?
- * @deprecated In 3.0.0 a boolean will be added to the functions mentioned
- * above to perform the same function.
-void purple_network_listen_map_external(gboolean map_external);
- * Attempts to open a listening port ONLY on the specified port number.
- * You probably want to use purple_network_listen_range() instead of this.
- * This function is useful, for example, if you wanted to write a telnet
- * server as a Purple plugin, and you HAD to listen on port 23. Why anyone
- * would want to do that is beyond me.
- * This opens a listening port. The caller will want to set up a watcher
- * of type PURPLE_INPUT_READ on the fd returned in cb. It will probably call
- * accept in the watcher callback, and then possibly remove the watcher and
- * close the listening socket, and add a new watcher on the new socket accept
- * @param port The port number to bind to. Must be greater than 0.
- * @param socket_type The type of socket to open for listening.
- * This will be either SOCK_STREAM for TCP or SOCK_DGRAM for UDP.
- * @param cb The callback to be invoked when the port to listen on is available.
- * The file descriptor of the listening socket will be specified in
- * this callback, or -1 if no socket could be established.
- * @param cb_data extra data to be returned when cb is called
- * @return A pointer to a data structure that can be used to cancel
- * the pending listener, or NULL if unable to obtain a local
-PurpleNetworkListenData *purple_network_listen(unsigned short port,
- int socket_type, PurpleNetworkListenCallback cb, gpointer cb_data);
- * \copydoc purple_network_listen
- * Libpurple does not currently do any port mapping (stateful firewall hole
- * poking) for IPv6-only listeners (if an IPv6 socket supports v4-mapped
- * addresses, a mapping is done).
- * @param socket_family The protocol family of the socket. This should be
- * AF_INET for IPv4 or AF_INET6 for IPv6. IPv6 sockets
- * may or may not be able to accept IPv4 connections
- * based on the system configuration (use
- * purple_socket_speaks_ipv4 to check). If an IPv6
- * socket doesn't accept V4-mapped addresses, you will
- * need a second listener to support both v4 and v6.
- * @deprecated This function will be renamed to purple_network_listen in 3.0.0.
-PurpleNetworkListenData *purple_network_listen_family(unsigned short port,
- int socket_family, int socket_type, PurpleNetworkListenCallback cb,
- * Opens a listening port selected from a range of ports. The range of
- * ports used is chosen in the following manner:
- * If a range is specified in preferences, these values are used.
- * If a non-0 values are passed to the function as parameters, these
- * Otherwise a port is chosen at random by the operating system.
- * This opens a listening port. The caller will want to set up a watcher
- * of type PURPLE_INPUT_READ on the fd returned in cb. It will probably call
- * accept in the watcher callback, and then possibly remove the watcher and close
- * the listening socket, and add a new watcher on the new socket accept
- * @param start The port number to bind to, or 0 to pick a random port.
- * Users are allowed to override this arg in prefs.
- * @param end The highest possible port in the range of ports to listen on,
- * or 0 to pick a random port. Users are allowed to override this
- * @param socket_type The type of socket to open for listening.
- * This will be either SOCK_STREAM for TCP or SOCK_DGRAM for UDP.
- * @param cb The callback to be invoked when the port to listen on is available.
- * The file descriptor of the listening socket will be specified in
- * this callback, or -1 if no socket could be established.
- * @param cb_data extra data to be returned when cb is called
- * @return A pointer to a data structure that can be used to cancel
- * the pending listener, or NULL if unable to obtain a local
-PurpleNetworkListenData *purple_network_listen_range(unsigned short start,
- unsigned short end, int socket_type,
- PurpleNetworkListenCallback cb, gpointer cb_data);
- * \copydoc purple_network_listen_range
- * Libpurple does not currently do any port mapping (stateful firewall hole
- * poking) for IPv6-only listeners (if an IPv6 socket supports v4-mapped
- * addresses, a mapping is done).
- * @param socket_family The protocol family of the socket. This should be
- * AF_INET for IPv4 or AF_INET6 for IPv6. IPv6 sockets
- * may or may not be able to accept IPv4 connections
- * based on the system configuration (use
- * purple_socket_speaks_ipv4 to check). If an IPv6
- * socket doesn't accept V4-mapped addresses, you will
- * need a second listener to support both v4 and v6.
- * @deprecated This function will be renamed to purple_network_listen_range
-PurpleNetworkListenData *purple_network_listen_range_family(
- unsigned short start, unsigned short end, int socket_family,
- int socket_type, PurpleNetworkListenCallback cb, gpointer cb_data);
- * This can be used to cancel any in-progress listener connection
- * by passing in the return value from either purple_network_listen()
- * or purple_network_listen_range().
- * @param listen_data This listener attempt will be cancelled and
- * the struct will be freed.
-void purple_network_listen_cancel(PurpleNetworkListenData *listen_data);
- * Gets a port number from a file descriptor.
- * @param fd The file descriptor. This should be a tcp socket. The current
- * implementation probably dies on anything but IPv4. Perhaps this
- * possible bug will inspire new and valuable contributors to Purple.
- * @return The port number, in host byte order.
-unsigned short purple_network_get_port_from_fd(int fd);
- * Detects if there is an available network connection.
- * @return TRUE if the network is available
-gboolean purple_network_is_available(void);
- * Makes purple_network_is_available() always return @c TRUE.
- * This is what backs the --force-online command line argument in Pidgin,
- * for example. This is useful for offline testing, especially when
- * combined with nullprpl.
-void purple_network_force_online(void);
- * Get the handle for the network system
- * @return the handle to the network system
-void *purple_network_get_handle(void);
- * Update the STUN server IP given the host name
- * Will result in a DNS query being executed asynchronous
- * @param stun_server The host name of the STUN server to set
-void purple_network_set_stun_server(const gchar *stun_server);
- * Get the IP address of the STUN server as a string representation
- * @return the IP address
-const gchar *purple_network_get_stun_ip(void);
- * Update the TURN server IP given the host name
- * Will result in a DNS query being executed asynchronous
- * @param turn_server The host name of the TURN server to set
-void purple_network_set_turn_server(const gchar *turn_server);
- * Get the IP address of the TURN server as a string representation
- * @return the IP address
-const gchar *purple_network_get_turn_ip(void);
- * Remove a port mapping (UPnP or NAT-PMP) associated with listening socket
- * @param fd Socket to remove the port mapping for
-void purple_network_remove_port_mapping(gint fd);
- * Convert a UTF-8 domain name to ASCII in accordance with the IDNA
- * specification. If libpurple is compiled without IDN support, this function
- * copies the input into the output buffer.
- * Because this function is used by DNS resolver child/threads, it uses no
- * other libpurple API and is threadsafe.
- * In general, a buffer of about 512 bytes is the appropriate size to use.
- * @param in The hostname to be converted.
- * @param out The output buffer where an allocated string will be returned.
- * The caller is responsible for freeing this.
- * @returns 0 on success, -1 if the out is NULL, or an error code
- * that currently corresponds to the Idna_rc enum in libidn.
-int purple_network_convert_idn_to_ascii(const gchar *in, gchar **out);
- * Initializes the network subsystem.
-void purple_network_init(void);
- * Shuts down the network subsystem.
-void purple_network_uninit(void);
-#endif /* _PURPLE_NETWORK_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/nexus.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,220 +0,0 @@
- * @file nexus.h MSN Nexus functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-typedef struct _MsnNexus MsnNexus;
-typedef struct _MsnTicketToken MsnTicketToken;
-/* Index into ticket_tokens in nexus.c Keep updated! */
- MSN_AUTH_MESSENGER = 0,
- MSN_AUTH_MESSENGER_WEB = 1,
- MSN_AUTH_LIVE_SECURE = 3,
- MSN_AUTH_LIVE_CONTACTS = 5,
-#define MSN_SSO_SERVER "login.live.com"
-#define SSO_POST_URL "/RST.srf"
-#define MSN_SSO_RST_TEMPLATE \
-"<wst:RequestSecurityToken xmlns=\"http://schemas.xmlsoap.org/ws/2004/04/trust\" Id=\"RST%d\">"\
- "<wst:RequestType>http://schemas.xmlsoap.org/ws/2004/04/security/trust/Issue</wst:RequestType>"\
- "<wsp:AppliesTo xmlns=\"http://schemas.xmlsoap.org/ws/2002/12/policy\">"\
- "<wsa:EndpointReference xmlns=\"http://schemas.xmlsoap.org/ws/2004/03/addressing\">"\
- "<wsa:Address>%s</wsa:Address>"\
- "</wsa:EndpointReference>"\
- "<wsse:PolicyReference xmlns=\"http://schemas.xmlsoap.org/ws/2003/06/secext\" URI=\"%s\"></wsse:PolicyReference>"\
-"</wst:RequestSecurityToken>"
-#define MSN_SSO_TEMPLATE "<?xml version='1.0' encoding='utf-8'?>"\
-"<Envelope xmlns=\"http://schemas.xmlsoap.org/soap/envelope/\""\
- " xmlns:wsse=\"http://schemas.xmlsoap.org/ws/2003/06/secext\""\
- " xmlns:saml=\"urn:oasis:names:tc:SAML:1.0:assertion\""\
- " xmlns:wsp=\"http://schemas.xmlsoap.org/ws/2002/12/policy\""\
- " xmlns:wsu=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd\""\
- " xmlns:wsa=\"http://schemas.xmlsoap.org/ws/2004/03/addressing\""\
- " xmlns:wssc=\"http://schemas.xmlsoap.org/ws/2004/04/sc\""\
- " xmlns:wst=\"http://schemas.xmlsoap.org/ws/2004/04/trust\">"\
- " xmlns:ps=\"http://schemas.microsoft.com/Passport/SoapServices/PPCRL\""\
- "<ps:HostingApp>{7108E71A-9926-4FCB-BCC9-9A9D3F32E423}</ps:HostingApp>"\
- "<ps:BinaryVersion>4</ps:BinaryVersion>"\
- "<ps:UIVersion>1</ps:UIVersion>"\
- "<ps:Cookies></ps:Cookies>"\
- "<ps:RequestParams>AQAAAAIAAABsYwQAAAAxMDMz</ps:RequestParams>"\
- "<wsse:UsernameToken Id=\"user\">"\
- "<wsse:Username>%s</wsse:Username>"\
- "<wsse:Password>%s</wsse:Password>"\
- "</wsse:UsernameToken>"\
- "<ps:RequestMultipleSecurityTokens"\
- " xmlns:ps=\"http://schemas.microsoft.com/Passport/SoapServices/PPCRL\""\
- "<wst:RequestSecurityToken Id=\"RST0\">"\
- "<wst:RequestType>http://schemas.xmlsoap.org/ws/2004/04/security/trust/Issue</wst:RequestType>"\
- "<wsa:EndpointReference>"\
- "<wsa:Address>http://Passport.NET/tb</wsa:Address>"\
- "</wsa:EndpointReference>"\
- "</wst:RequestSecurityToken>"\
- "%s" /* Other RSTn tokens */\
- "</ps:RequestMultipleSecurityTokens>"\
-#define MSN_SSO_AUTHINFO_TEMPLATE \
-"<ps:AuthInfo xmlns:ps=\"http://schemas.microsoft.com/Passport/SoapServices/PPCRL\" Id=\"PPAuthInfo\">"\
- "<ps:HostingApp>{7108E71A-9926-4FCB-BCC9-9A9D3F32E423}</ps:HostingApp>"\
- "<ps:BinaryVersion>4</ps:BinaryVersion>"\
- "<ps:UIVersion>1</ps:UIVersion>"\
- "<ps:Cookies></ps:Cookies>"\
- "<ps:RequestParams>AQAAAAIAAABsYwQAAAA0MTA1</ps:RequestParams>"\
-/* Not sure what's editable here, so I'll just hard-code the SHA1 hash */
-#define MSN_SSO_AUTHINFO_SHA1_BASE64 "d2IeTF4DAkPEa/tVETHznsivEpc="
-#define MSN_SSO_TIMESTAMP_TEMPLATE \
-"<wsu:Timestamp xmlns=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd\" Id=\"Timestamp\">"\
- "<wsu:Created>%s</wsu:Created>"\
- "<wsu:Expires>%s</wsu:Expires>"\
-#define MSN_SSO_SIGNEDINFO_TEMPLATE \
-"<SignedInfo xmlns=\"http://www.w3.org/2000/09/xmldsig#\">"\
- "<CanonicalizationMethod Algorithm=\"http://www.w3.org/2001/10/xml-exc-c14n#\"></CanonicalizationMethod>"\
- "<SignatureMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#hmac-sha1\"></SignatureMethod>"\
- "<Reference URI=\"#RST%d\">"\
- "<Transform Algorithm=\"http://www.w3.org/2001/10/xml-exc-c14n#\"></Transform>"\
- "<DigestMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\"></DigestMethod>"\
- "<DigestValue>%s</DigestValue>"\
- "<Reference URI=\"#Timestamp\">"\
- "<Transform Algorithm=\"http://www.w3.org/2001/10/xml-exc-c14n#\"></Transform>"\
- "<DigestMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\"></DigestMethod>"\
- "<DigestValue>%s</DigestValue>"\
- "<Reference URI=\"#PPAuthInfo\">"\
- "<Transform Algorithm=\"http://www.w3.org/2001/10/xml-exc-c14n#\"></Transform>"\
- "<DigestMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\"></DigestMethod>"\
- "<DigestValue>" MSN_SSO_AUTHINFO_SHA1_BASE64 "</DigestValue>"\
-#define MSN_SSO_TOKEN_UPDATE_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
- " xmlns=\"http://schemas.xmlsoap.org/soap/envelope/\""\
- " xmlns:wsse=\"http://schemas.xmlsoap.org/ws/2003/06/secext\""\
- " xmlns:saml=\"urn:oasis:names:tc:SAML:1.0:assertion\""\
- " xmlns:wsp=\"http://schemas.xmlsoap.org/ws/2002/12/policy\""\
- " xmlns:wsu=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd\""\
- " xmlns:wsa=\"http://schemas.xmlsoap.org/ws/2004/03/addressing\""\
- " xmlns:wssc=\"http://schemas.xmlsoap.org/ws/2004/04/sc\""\
- " xmlns:wst=\"http://schemas.xmlsoap.org/ws/2004/04/trust\">"\
- MSN_SSO_AUTHINFO_TEMPLATE /* ps:AuthInfo */ \
- "<EncryptedData xmlns=\"http://www.w3.org/2001/04/xmlenc#\" Id=\"BinaryDAToken0\" Type=\"http://www.w3.org/2001/04/xmlenc#Element\">"\
- "<EncryptionMethod Algorithm=\"http://www.w3.org/2001/04/xmlenc#tripledes-cbc\"></EncryptionMethod>"\
- "<ds:KeyInfo xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\">"\
- "<ds:KeyName>http://Passport.NET/STS</ds:KeyName>"\
- "<CipherValue>%s</CipherValue>"\
- "<wssc:DerivedKeyToken Id=\"SignKey\">"\
- "<wsse:RequestedTokenReference>"\
- "<wsse:KeyIdentifier ValueType=\"http://docs.oasis-open.org/wss/2004/XX/oasis-2004XX-wss-saml-token-profile-1.0#SAMLAssertionID\" />"\
- "<wsse:Reference URI=\"#BinaryDAToken0\" />"\
- "</wsse:RequestedTokenReference>"\
- "<wssc:Nonce>%s</wssc:Nonce>"\
- "</wssc:DerivedKeyToken>"\
- "%s" /* wsu:Timestamp */\
- "<Signature xmlns=\"http://www.w3.org/2000/09/xmldsig#\">"\
- "<SignatureValue>%s</SignatureValue>"\
- "<wsse:SecurityTokenReference>"\
- "<wsse:Reference URI=\"#SignKey\" />"\
- "</wsse:SecurityTokenReference>"\
- "%s" /* wst:RequestSecurityToken */ \
-struct _MsnTicketToken {
- /* From server via USR command */
- /* From server via SOAP stuff */
- MsnTicketToken *tokens;
-void msn_nexus_connect(MsnNexus *nexus);
-MsnNexus *msn_nexus_new(MsnSession *session);
-void msn_nexus_destroy(MsnNexus *nexus);
-GHashTable *msn_nexus_get_token(MsnNexus *nexus, MsnAuthDomains id);
-const char *msn_nexus_get_token_str(MsnNexus *nexus, MsnAuthDomains id);
-void msn_nexus_update_token(MsnNexus *nexus, int id, GSourceFunc cb, gpointer data);
-#endif /* MSN_NEXUS_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/notification.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
- * @file notification.h Notification server functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef MSN_NOTIFICATION_H
-#define MSN_NOTIFICATION_H
-typedef struct _MsnNotification MsnNotification;
-/* MSN protocol challenge info */
-/* MSNP18 challenge: WLM Version 2009 (Build 14.0.8089.726) */
-#define MSNP18_WLM_PRODUCT_KEY "C1BX{V4W}Q3*10SM"
-#define MSNP18_WLM_PRODUCT_ID "PROD0120PW!CCV9@"
-/* MSNP15 challenge: WLM 8.5.1288.816 */
-#define MSNP15_WLM_PRODUCT_KEY "ILTXC!4IXB5FB*PX"
-#define MSNP15_WLM_PRODUCT_ID "PROD0119GSJUC$18"
-#define MSNP13_WLM_PRODUCT_KEY "O4BG@C7BWLYQX?5G"
-#define MSNP13_WLM_PRODUCT_ID "PROD01065C%ZFN6F"
-#define MSNP10_PRODUCT_KEY "VT6PX?UQTM4WM%YR"
-#define MSNP10_PRODUCT_ID "PROD0038W!61ZTF9"
- * This is a convenience pointer that always points to
-typedef void (*MsnFqyCb)(MsnSession *session, const char *passport, MsnNetwork network, gpointer data);
-/* Type used for msn_notification_send_uun */
- MSN_UNIFIED_NOTIFICATION_SHARED_FOLDERS = 1,
- MSN_UNIFIED_NOTIFICATION_UNKNOWN1 = 2,
- MSN_UNIFIED_NOTIFICATION_P2P = 3,
- MSN_UNIFIED_NOTIFICATION_MPOP = 4
-} MsnUnifiedNotificationType;
-void uum_send_msg(MsnSession *session, MsnMessage *msg);
-void msn_notification_end(void);
-void msn_notification_init(void);
-void msn_notification_add_buddy_to_list(MsnNotification *notification,
- MsnListId list_id, MsnUser *user);
-void msn_notification_rem_buddy_from_list(MsnNotification *notification,
- MsnListId list_id, MsnUser *user);
-void msn_notification_send_fqy(MsnSession *session,
- const char *payload, int payload_len,
- MsnFqyCb cb, gpointer cb_data);
-MsnNotification *msn_notification_new(MsnSession *session);
-void msn_notification_destroy(MsnNotification *notification);
-gboolean msn_notification_connect(MsnNotification *notification,
- const char *host, int port);
-void msn_notification_disconnect(MsnNotification *notification);
-void msn_notification_dump_contact(MsnSession *session);
-void msn_notification_send_uux(MsnSession *session, const char *payload);
-void msn_notification_send_uux_endpointdata(MsnSession *session);
-void msn_notification_send_uux_private_endpointdata(MsnSession *session);
-void msn_notification_send_uun(MsnSession *session,
- MsnUnifiedNotificationType type,
- * Closes a notification.
- * It's first closed, and then disconnected.
- * @param notification The notification object to close.
-void msn_notification_close(MsnNotification *notification);
-void msn_got_login_params(MsnSession *session, const char *ticket, const char *response);
-#endif /* MSN_NOTIFICATION_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/notify.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,814 +0,0 @@
- * @file notify.h Notification API
- * @see @ref notify-signals
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_NOTIFY_H_
-#define _PURPLE_NOTIFY_H_
-#include <glib-object.h>
-typedef struct _PurpleNotifyUserInfoEntry PurpleNotifyUserInfoEntry;
-typedef struct _PurpleNotifyUserInfo PurpleNotifyUserInfo;
- * Notification close callbacks.
-typedef void (*PurpleNotifyCloseCallback) (gpointer user_data);
- PURPLE_NOTIFY_MESSAGE = 0, /**< Message notification. */
- PURPLE_NOTIFY_EMAIL, /**< Single email notification. */
- PURPLE_NOTIFY_EMAILS, /**< Multiple email notification. */
- PURPLE_NOTIFY_FORMATTED, /**< Formatted text. */
- PURPLE_NOTIFY_SEARCHRESULTS, /**< Buddy search results. */
- PURPLE_NOTIFY_USERINFO, /**< Formatted userinfo text. */
- PURPLE_NOTIFY_URI /**< URI notification or display. */
- * Notification message types.
- PURPLE_NOTIFY_MSG_ERROR = 0, /**< Error notification. */
- PURPLE_NOTIFY_MSG_WARNING, /**< Warning notification. */
- PURPLE_NOTIFY_MSG_INFO /**< Information notification. */
- PURPLE_NOTIFY_BUTTON_LABELED = 0, /**< special use, see _button_add_labeled */
- PURPLE_NOTIFY_BUTTON_CONTINUE = 1,
- PURPLE_NOTIFY_BUTTON_ADD,
- PURPLE_NOTIFY_BUTTON_INFO,
- PURPLE_NOTIFY_BUTTON_IM,
- PURPLE_NOTIFY_BUTTON_JOIN,
- PURPLE_NOTIFY_BUTTON_INVITE
-} PurpleNotifySearchButtonType;
- * Search results object.
- GList *columns; /**< List of the search column objects. */
- GList *rows; /**< List of rows in the result. */
- GList *buttons; /**< List of buttons to display. */
-} PurpleNotifySearchResults;
- * Types of PurpleNotifyUserInfoEntry objects
- PURPLE_NOTIFY_USER_INFO_ENTRY_PAIR = 0,
- PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_BREAK,
- PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_HEADER
-} PurpleNotifyUserInfoEntryType;
- * Single column of a search result.
- char *title; /**< Title of the column. */
-} PurpleNotifySearchColumn;
- * Callback for a button in a search result.
- * @param c the PurpleConnection passed to purple_notify_searchresults
- * @param row the contents of the selected row
- * @param user_data User defined data.
-typedef void (*PurpleNotifySearchResultsCallback)(PurpleConnection *c, GList *row,
- * Definition of a button.
- PurpleNotifySearchButtonType type;
- PurpleNotifySearchResultsCallback callback; /**< Function to be called when clicked. */
- char *label; /**< only for PURPLE_NOTIFY_BUTTON_LABELED */
-} PurpleNotifySearchButton;
- * Notification UI operations.
- void *(*notify_message)(PurpleNotifyMsgType type, const char *title,
- const char *primary, const char *secondary);
- void *(*notify_email)(PurpleConnection *gc,
- const char *subject, const char *from,
- const char *to, const char *url);
- void *(*notify_emails)(PurpleConnection *gc,
- size_t count, gboolean detailed,
- const char **subjects, const char **froms,
- const char **tos, const char **urls);
- void *(*notify_formatted)(const char *title, const char *primary,
- const char *secondary, const char *text);
- void *(*notify_searchresults)(PurpleConnection *gc, const char *title,
- const char *primary, const char *secondary,
- PurpleNotifySearchResults *results, gpointer user_data);
- void (*notify_searchresults_new_rows)(PurpleConnection *gc,
- PurpleNotifySearchResults *results,
- void *(*notify_userinfo)(PurpleConnection *gc, const char *who,
- PurpleNotifyUserInfo *user_info);
- void *(*notify_uri)(const char *uri);
- void (*close_notify)(PurpleNotifyType type, void *ui_handle);
- void (*_purple_reserved1)(void);
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
- void (*_purple_reserved4)(void);
-/**************************************************************************/
-/** Search results notification API */
-/**************************************************************************/
- * Displays results from a buddy search. This can be, for example,
- * a window with a list of all found buddies, where you are given the
- * option of adding buddies to your buddy list.
- * @param gc The PurpleConnection handle associated with the information.
- * @param title The title of the message. If this is NULL, the title
- * will be "Search Results."
- * @param primary The main point of the message.
- * @param secondary The secondary information.
- * @param results The PurpleNotifySearchResults instance.
- * @param cb The callback to call when the user closes
- * @param user_data The data to pass to the close callback and any other
- * callback associated with a button.
- * @return A UI-specific handle.
-void *purple_notify_searchresults(PurpleConnection *gc, const char *title,
- const char *primary, const char *secondary,
- PurpleNotifySearchResults *results, PurpleNotifyCloseCallback cb,
- * Frees a PurpleNotifySearchResults object.
- * @param results The PurpleNotifySearchResults to free.
-void purple_notify_searchresults_free(PurpleNotifySearchResults *results);
- * Replace old rows with the new. Reuse an existing window.
- * @param gc The PurpleConnection structure.
- * @param results The PurpleNotifySearchResults structure.
- * @param data Data returned by the purple_notify_searchresults().
-void purple_notify_searchresults_new_rows(PurpleConnection *gc,
- PurpleNotifySearchResults *results,
- * Adds a stock button that will be displayed in the search results dialog.
- * @param results The search results object.
- * @param type Type of the button. (TODO: Only one button of a given type
- * @param cb Function that will be called on the click event.
-void purple_notify_searchresults_button_add(PurpleNotifySearchResults *results,
- PurpleNotifySearchButtonType type,
- PurpleNotifySearchResultsCallback cb);
- * Adds a plain labelled button that will be displayed in the search results
- * @param results The search results object
- * @param label The label to display
- * @param cb Function that will be called on the click event
-void purple_notify_searchresults_button_add_labeled(PurpleNotifySearchResults *results,
- PurpleNotifySearchResultsCallback cb);
- * Returns a newly created search results object.
- * @return The new search results object.
-PurpleNotifySearchResults *purple_notify_searchresults_new(void);
- * Returns a newly created search result column object.
- * @param title Title of the column. NOTE: Title will get g_strdup()ed.
- * @return The new search column object.
-PurpleNotifySearchColumn *purple_notify_searchresults_column_new(const char *title);
- * Adds a new column to the search result object.
- * @param results The result object to which the column will be added.
- * @param column The column that will be added to the result object.
-void purple_notify_searchresults_column_add(PurpleNotifySearchResults *results,
- PurpleNotifySearchColumn *column);
- * Adds a new row of the results to the search results object.
- * @param results The search results object.
- * @param row The row of the results.
-void purple_notify_searchresults_row_add(PurpleNotifySearchResults *results,
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_NOTIFY_C_)
- * Returns a number of the rows in the search results object.
- * @deprecated This function will be removed in Pidgin 3.0.0 unless
- * there is sufficient demand to keep it. Using this
- * function encourages looping through the results
- * inefficiently. Instead of using this function you
- * should iterate through the results using a loop
- * for (l = results->rows; l != NULL; l = l->next)
- * If you really need to get the number of rows you
- * can use g_list_length(results->rows).
- * @param results The search results object.
- * @return Number of the result rows.
-guint purple_notify_searchresults_get_rows_count(PurpleNotifySearchResults *results);
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_NOTIFY_C_)
- * Returns a number of the columns in the search results object.
- * @deprecated This function will be removed in Pidgin 3.0.0 unless
- * there is sufficient demand to keep it. Using this
- * function encourages looping through the columns
- * inefficiently. Instead of using this function you
- * should iterate through the columns using a loop
- * for (l = results->columns; l != NULL; l = l->next)
- * If you really need to get the number of columns you
- * can use g_list_length(results->columns).
- * @param results The search results object.
- * @return Number of the columns.
-guint purple_notify_searchresults_get_columns_count(PurpleNotifySearchResults *results);
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_NOTIFY_C_)
- * Returns a row of the results from the search results object.
- * @deprecated This function will be removed in Pidgin 3.0.0 unless
- * there is sufficient demand to keep it. Using this
- * function encourages looping through the results
- * inefficiently. Instead of using this function you
- * should iterate through the results using a loop
- * for (l = results->rows; l != NULL; l = l->next)
- * If you really need to get the data for a particular
- * row you can use g_list_nth_data(results->rows, row_id).
- * @param results The search results object.
- * @param row_id Index of the row to be returned.
- * @return Row of the results.
-GList *purple_notify_searchresults_row_get(PurpleNotifySearchResults *results,
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_NOTIFY_C_)
- * Returns a title of the search results object's column.
- * @deprecated This function will be removed in Pidgin 3.0.0 unless
- * there is sufficient demand to keep it. Using this
- * function encourages looping through the columns
- * inefficiently. Instead of using this function you
- * should iterate through the name of a particular
- * g_list_nth_data(results->columns, row_id).
- * @param results The search results object.
- * @param column_id Index of the column.
- * @return Title of the column.
-char *purple_notify_searchresults_column_get_title(PurpleNotifySearchResults *results,
- unsigned int column_id);
-/**************************************************************************/
-/** @name Notification API */
-/**************************************************************************/
- * Displays a notification message to the user.
- * @param handle The plugin or connection handle.
- * @param type The notification type.
- * @param title The title of the message.
- * @param primary The main point of the message.
- * @param secondary The secondary information.
- * @param cb The callback to call when the user closes
- * @param user_data The data to pass to the callback.
- * @return A UI-specific handle.
-void *purple_notify_message(void *handle, PurpleNotifyMsgType type,
- const char *title, const char *primary,
- const char *secondary, PurpleNotifyCloseCallback cb,
- * Displays a single email notification to the user.
- * @param handle The plugin or connection handle.
- * @param subject The subject of the email.
- * @param from The from address.
- * @param to The destination address.
- * @param url The URL where the message can be read.
- * @param cb The callback to call when the user closes
- * @param user_data The data to pass to the callback.
- * @return A UI-specific handle.
-void *purple_notify_email(void *handle, const char *subject,
- const char *from, const char *to,
- const char *url, PurpleNotifyCloseCallback cb,
- * Displays a notification for multiple emails to the user.
- * @param handle The plugin or connection handle.
- * @param count The number of emails. '0' can be used to signify that
- * the user has no unread emails and the UI should remove
- * the mail notification.
- * @param detailed @c TRUE if there is information for each email in the
- * @param subjects The array of subjects.
- * @param froms The array of from addresses.
- * @param tos The array of destination addresses.
- * @param urls The URLs where the messages can be read.
- * @param cb The callback to call when the user closes
- * @param user_data The data to pass to the callback.
- * @return A UI-specific handle.
-void *purple_notify_emails(void *handle, size_t count, gboolean detailed,
- const char **subjects, const char **froms,
- const char **tos, const char **urls,
- PurpleNotifyCloseCallback cb, gpointer user_data);
- * Displays a notification with formatted text.
- * The text is essentially a stripped-down format of HTML, the same that
- * @param handle The plugin or connection handle.
- * @param title The title of the message.
- * @param primary The main point of the message.
- * @param secondary The secondary information.
- * @param text The formatted text.
- * @param cb The callback to call when the user closes
- * @param user_data The data to pass to the callback.
- * @return A UI-specific handle.
-void *purple_notify_formatted(void *handle, const char *title,
- const char *primary, const char *secondary,
- const char *text, PurpleNotifyCloseCallback cb, gpointer user_data);
- * Displays user information with formatted text, passing information giving
- * the connection and username from which the user information came.
- * The text is essentially a stripped-down format of HTML, the same that
- * @param gc The PurpleConnection handle associated with the information.
- * @param who The username associated with the information.
- * @param user_info The PurpleNotifyUserInfo which contains the information
- * @param cb The callback to call when the user closes the notification.
- * @param user_data The data to pass to the callback.
- * @return A UI-specific handle.
-void *purple_notify_userinfo(PurpleConnection *gc, const char *who,
- PurpleNotifyUserInfo *user_info, PurpleNotifyCloseCallback cb,
- * Create a new PurpleNotifyUserInfo which is suitable for passing to
- * purple_notify_userinfo()
- * @return A new PurpleNotifyUserInfo, which the caller must destroy when done
-PurpleNotifyUserInfo *purple_notify_user_info_new(void);
- * Destroy a PurpleNotifyUserInfo
- * @param user_info The PurpleNotifyUserInfo
-void purple_notify_user_info_destroy(PurpleNotifyUserInfo *user_info);
- * Retrieve the array of PurpleNotifyUserInfoEntry objects from a
- * This GList may be manipulated directly with normal GList functions such
- * as g_list_insert(). Only PurpleNotifyUserInfoEntry are allowed in the
- * list. If a PurpleNotifyUserInfoEntry item is added to the list, it
- * should not be g_free()'d by the caller; PurpleNotifyUserInfo will g_free
- * To remove a PurpleNotifyUserInfoEntry, use
- * purple_notify_user_info_remove_entry(). Do not use the GList directly.
- * @param user_info The PurpleNotifyUserInfo
- * @constreturn A GList of PurpleNotifyUserInfoEntry objects
-GList *purple_notify_user_info_get_entries(PurpleNotifyUserInfo *user_info);
- * Create a textual representation of a PurpleNotifyUserInfo, separating
- * @param user_info The PurpleNotifyUserInfo
- * @param newline The separation character
-char *purple_notify_user_info_get_text_with_newline(PurpleNotifyUserInfo *user_info, const char *newline);
- * Add a label/value pair to a PurpleNotifyUserInfo object.
- * PurpleNotifyUserInfo keeps track of the order in which pairs are added.
- * @param user_info The PurpleNotifyUserInfo
- * @param label A label, which for example might be displayed by a
- * UI with a colon after it ("Status:"). Do not include
- * a colon. If NULL, value will be displayed without a
- * @param value The value, which might be displayed by a UI after
- * the label. This should be valid HTML. If you want
- * to insert plaintext then use
- * purple_notify_user_info_add_pair_plaintext(), instead.
- * If this is NULL the label will still be displayed;
- * the UI should treat label as independent and not
- * include a colon if it would otherwise.
- * TODO: In 3.0.0 this function should be renamed to
- * purple_notify_user_info_add_pair_html(). And optionally
- * purple_notify_user_info_add_pair_plaintext() could be renamed to
- * purple_notify_user_info_add_pair().
-void purple_notify_user_info_add_pair(PurpleNotifyUserInfo *user_info, const char *label, const char *value);
- * Like purple_notify_user_info_add_pair, but value should be plaintext
- * and will be escaped using g_markup_escape_text().
-void purple_notify_user_info_add_pair_plaintext(PurpleNotifyUserInfo *user_info, const char *label, const char *value);
- * Prepend a label/value pair to a PurpleNotifyUserInfo object
- * @param user_info The PurpleNotifyUserInfo
- * @param label A label, which for example might be displayed by a
- * UI with a colon after it ("Status:"). Do not include
- * a colon. If NULL, value will be displayed without a
- * @param value The value, which might be displayed by a UI after
- * the label. If NULL, label will still be displayed;
- * the UI should then treat label as independent and not
- * include a colon if it would otherwise.
-void purple_notify_user_info_prepend_pair(PurpleNotifyUserInfo *user_info, const char *label, const char *value);
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_NOTIFY_C_)
- * Remove a PurpleNotifyUserInfoEntry from a PurpleNotifyUserInfo object
- * without freeing the entry.
- * @param user_info The PurpleNotifyUserInfo
- * @param user_info_entry The PurpleNotifyUserInfoEntry
- * @deprecated Nothing is using this function and it should be removed
- * in 3.0.0. Or, if we decide we want to keep it in 3.0.0
- * then we should make purple_notify_user_info_entry_destroy
- * public so that entries can be free'd after they're removed.
-void purple_notify_user_info_remove_entry(PurpleNotifyUserInfo *user_info, PurpleNotifyUserInfoEntry *user_info_entry);
- * Create a new PurpleNotifyUserInfoEntry
- * If added to a PurpleNotifyUserInfo object, this should not be free()'d,
- * as PurpleNotifyUserInfo will do so when destroyed.
- * purple_notify_user_info_add_pair() and
- * purple_notify_user_info_prepend_pair() are convenience methods for
- * creating entries and adding them to a PurpleNotifyUserInfo.
- * @param label A label, which for example might be displayed by a UI
- * with a colon after it ("Status:"). Do not include a
- * colon. If NULL, value will be displayed without a label.
- * @param value The value, which might be displayed by a UI after the
- * label. If NULL, label will still be displayed; the UI
- * should then treat label as independent and not include a
- * colon if it would otherwise.
- * @result A new PurpleNotifyUserInfoEntry
-PurpleNotifyUserInfoEntry *purple_notify_user_info_entry_new(const char *label, const char *value);
- * Add a section break. A UI might display this as a horizontal line.
- * @param user_info The PurpleNotifyUserInfo
-void purple_notify_user_info_add_section_break(PurpleNotifyUserInfo *user_info);
- * Prepend a section break. A UI might display this as a horizontal line.
- * @param user_info The PurpleNotifyUserInfo
-void purple_notify_user_info_prepend_section_break(PurpleNotifyUserInfo *user_info);
- * Add a section header. A UI might display this in a different font
- * @param user_info The PurpleNotifyUserInfo
- * @param label The name of the section
-void purple_notify_user_info_add_section_header(PurpleNotifyUserInfo *user_info, const char *label);
- * Prepend a section header. A UI might display this in a different font
- * @param user_info The PurpleNotifyUserInfo
- * @param label The name of the section
-void purple_notify_user_info_prepend_section_header(PurpleNotifyUserInfo *user_info, const char *label);
- * Remove the last item which was added to a PurpleNotifyUserInfo. This
- * could be used to remove a section header which is not needed.
-void purple_notify_user_info_remove_last_item(PurpleNotifyUserInfo *user_info);
- * Get the label for a PurpleNotifyUserInfoEntry
- * @param user_info_entry The PurpleNotifyUserInfoEntry
-const gchar *purple_notify_user_info_entry_get_label(PurpleNotifyUserInfoEntry *user_info_entry);
- * Set the label for a PurpleNotifyUserInfoEntry
- * @param user_info_entry The PurpleNotifyUserInfoEntry
- * @param label The label
-void purple_notify_user_info_entry_set_label(PurpleNotifyUserInfoEntry *user_info_entry, const char *label);
- * Get the value for a PurpleNotifyUserInfoEntry
- * @param user_info_entry The PurpleNotifyUserInfoEntry
-const gchar *purple_notify_user_info_entry_get_value(PurpleNotifyUserInfoEntry *user_info_entry);
- * Set the value for a PurpleNotifyUserInfoEntry
- * @param user_info_entry The PurpleNotifyUserInfoEntry
- * @param value The value
-void purple_notify_user_info_entry_set_value(PurpleNotifyUserInfoEntry *user_info_entry, const char *value);
- * Get the type of a PurpleNotifyUserInfoEntry
- * @param user_info_entry The PurpleNotifyUserInfoEntry
- * @return The PurpleNotifyUserInfoEntryType
-PurpleNotifyUserInfoEntryType purple_notify_user_info_entry_get_type(PurpleNotifyUserInfoEntry *user_info_entry);
- * Set the type of a PurpleNotifyUserInfoEntry
- * @param user_info_entry The PurpleNotifyUserInfoEntry
- * @param type The PurpleNotifyUserInfoEntryType
-void purple_notify_user_info_entry_set_type(PurpleNotifyUserInfoEntry *user_info_entry,
- PurpleNotifyUserInfoEntryType type);
- * Opens a URI or somehow presents it to the user.
- * @param handle The plugin or connection handle.
- * @param uri The URI to display or go to.
- * @return A UI-specific handle, if any. This may only be presented if
- * the UI code displays a dialog instead of a webpage, or something
-void *purple_notify_uri(void *handle, const char *uri);
- * Closes a notification.
- * This should be used only by the UI operation functions and part of the
- * @param type The notification type.
- * @param ui_handle The notification UI handle.
-void purple_notify_close(PurpleNotifyType type, void *ui_handle);
- * Closes all notifications registered with the specified handle.
- * @param handle The handle.
-void purple_notify_close_with_handle(void *handle);
- * A wrapper for purple_notify_message that displays an information message.
-#define purple_notify_info(handle, title, primary, secondary) \
- purple_notify_message((handle), PURPLE_NOTIFY_MSG_INFO, (title), \
- (primary), (secondary), NULL, NULL)
- * A wrapper for purple_notify_message that displays a warning message.
-#define purple_notify_warning(handle, title, primary, secondary) \
- purple_notify_message((handle), PURPLE_NOTIFY_MSG_WARNING, (title), \
- (primary), (secondary), NULL, NULL)
- * A wrapper for purple_notify_message that displays an error message.
-#define purple_notify_error(handle, title, primary, secondary) \
- purple_notify_message((handle), PURPLE_NOTIFY_MSG_ERROR, (title), \
- (primary), (secondary), NULL, NULL)
-/**************************************************************************/
-/** @name UI Registration Functions */
-/**************************************************************************/
- * Sets the UI operations structure to be used when displaying a
- * @param ops The UI operations structure.
-void purple_notify_set_ui_ops(PurpleNotifyUiOps *ops);
- * Returns the UI operations structure to be used when displaying a
- * @return The UI operations structure.
-PurpleNotifyUiOps *purple_notify_get_ui_ops(void);
-/**************************************************************************/
-/** @name Notify Subsystem */
-/**************************************************************************/
- * Returns the notify subsystem handle.
- * @return The notify subsystem handle.
-void *purple_notify_get_handle(void);
- * Initializes the notify subsystem.
-void purple_notify_init(void);
- * Uninitializes the notify subsystem.
-void purple_notify_uninit(void);
-#endif /* _PURPLE_NOTIFY_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/ntlm.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
- * Copyright (C) 2005, Thomas Butter <butter@uni-mannheim.de>
- * ntlm structs are taken from NTLM description on
- * http://www.innovation.ch/java/ntlm.html
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
- * Generates the base64 encoded type 1 message needed for NTLM authentication
- * @param hostname Your hostname
- * @param domain The domain to authenticate to
- * @return base64 encoded string to send to the server. This should
- * be g_free'd by the caller.
-gchar *purple_ntlm_gen_type1(const gchar *hostname, const gchar *domain);
- * Parses the ntlm type 2 message
- * @param type2 String containing the base64 encoded type2 message
- * @param flags If not @c NULL, this will store the flags for the message
- * @return The nonce for use in message type3. This is a statically
- * allocated 8 byte binary string.
-guint8 *purple_ntlm_parse_type2(const gchar *type2, guint32 *flags);
- * Generates a type3 message
- * @param username The username
- * @param passw The password
- * @param hostname The hostname
- * @param domain The domain to authenticate against
- * @param nonce The nonce returned by purple_ntlm_parse_type2
- * @param flags Pointer to the flags returned by purple_ntlm_parse_type2
- * @return A base64 encoded type3 message. This should be g_free'd by
-gchar *purple_ntlm_gen_type3(const gchar *username, const gchar *passw, const gchar *hostname, const gchar *domain, const guint8 *nonce, guint32 *flags);
-#endif /* _PURPLE_NTLM_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/object.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,276 +0,0 @@
- * @file object.h MSNObject API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
- MSN_OBJECT_UNKNOWN = -1, /**< Unknown object */
- MSN_OBJECT_RESERVED1 = 1, /**< Reserved */
- MSN_OBJECT_EMOTICON = 2, /**< Custom Emoticon */
- MSN_OBJECT_USERTILE = 3, /**< UserTile (buddy icon) */
- MSN_OBJECT_RESERVED2 = 4, /**< Reserved */
- MSN_OBJECT_BACKGROUND = 5 /**< Background */
- PurpleStoredImage *img;
- * Creates a MsnObject structure.
- * @return A new MsnObject structure.
-MsnObject *msn_object_new(void);
- * Creates a MsnObject structure from a string.
- * @param str The string.
- * @return The new MsnObject structure.
-MsnObject *msn_object_new_from_string(const char *str);
- * Creates a MsnObject structure from a stored image
- * @param img The image associated to object
- * @param location The object location as stored in MsnObject
- * @param creator The creator of the object
- * @param type The type of the object
- * @return A new MsnObject structure
-MsnObject *msn_object_new_from_image(PurpleStoredImage *img,
- const char *location, const char *creator, MsnObjectType type);
- * Destroys an MsnObject structure.
- * @param obj The object structure.
-void msn_object_destroy(MsnObject *obj);
- * Outputs a string representation of an MsnObject.
- * @param obj The object.
- * @return The string representation. This must be freed.
-char *msn_object_to_string(const MsnObject *obj);
- * Sets the creator field in a MsnObject.
- * @param creator The creator value.
-void msn_object_set_creator(MsnObject *obj, const char *creator);
- * Sets the size field in a MsnObject.
- * @param size The size value.
-void msn_object_set_size(MsnObject *obj, int size);
- * Sets the type field in a MsnObject.
- * @param type The type value.
-void msn_object_set_type(MsnObject *obj, MsnObjectType type);
- * Sets the location field in a MsnObject.
- * @param location The location value.
-void msn_object_set_location(MsnObject *obj, const char *location);
- * Sets the friendly name field in a MsnObject.
- * @param friendly The friendly name value.
-void msn_object_set_friendly(MsnObject *obj, const char *friendly);
- * Sets the SHA1D field in a MsnObject.
- * @param sha1d The sha1d value.
-void msn_object_set_sha1d(MsnObject *obj, const char *sha1d);
- * Sets the SHA1C field in a MsnObject.
- * @param sha1c The sha1c value.
-void msn_object_set_sha1c(MsnObject *obj, const char *sha1c);
- * Associates an image with a MsnObject.
- * @param obj The object.
- * @param img The image to associate.
-void msn_object_set_image(MsnObject *obj, PurpleStoredImage *img);
- * Sets the url field in a MsnObject.
- * @param url The url value.
-void msn_object_set_url(MsnObject *obj, const char *url);
- * Sets the url1 field in a MsnObject.
- * @param url1 The url1 value.
-void msn_object_set_url1(MsnObject *obj, const char *url);
- * Returns a MsnObject's creator value.
- * @param obj The object.
- * @return The creator value.
-const char *msn_object_get_creator(const MsnObject *obj);
- * Returns a MsnObject's size value.
- * @param obj The object.
- * @return The size value.
-int msn_object_get_size(const MsnObject *obj);
- * Returns a MsnObject's type.
- * @param obj The object.
- * @return The object type.
-MsnObjectType msn_object_get_type(const MsnObject *obj);
- * Returns a MsnObject's location value.
- * @param obj The object.
- * @return The location value.
-const char *msn_object_get_location(const MsnObject *obj);
- * Returns a MsnObject's friendly name value.
- * @param obj The object.
- * @return The friendly name value.
-const char *msn_object_get_friendly(const MsnObject *obj);
- * Returns a MsnObject's SHA1D value.
- * @param obj The object.
- * @return The SHA1D value.
-const char *msn_object_get_sha1d(const MsnObject *obj);
- * Returns a MsnObject's SHA1C value.
- * @param obj The object.
- * @return The SHA1C value.
-const char *msn_object_get_sha1c(const MsnObject *obj);
- * Returns a MsnObject's SHA1C value if it exists, otherwise SHA1D.
- * @param obj The object.
- * @return The SHA1C value.
-const char *msn_object_get_sha1(const MsnObject *obj);
- * Returns the image associated with the MsnObject.
- * @param obj The object.
- * @return The associated image.
-PurpleStoredImage *msn_object_get_image(const MsnObject *obj);
- * Returns a MsnObject's url value.
- * @param obj The object.
- * @return The url value.
-const char *msn_object_get_url(const MsnObject *obj);
- * Returns a MsnObject's url1 value.
- * @param obj The object.
- * @return The url1 value.
-const char *msn_object_get_url1(const MsnObject *obj);
-MsnObject * msn_object_find_local(const char *sha1);
-void msn_object_set_local(MsnObject *obj);
-#endif /* MSN_OBJECT_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/oim.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,163 +0,0 @@
- * @file oim.h Header file for oim.c
- * MaYuan<mayuan2006@gmail.com>
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
-typedef struct _MsnOim MsnOim;
-/* OIM Retrieval Info */
-#define MSN_OIM_RETRIEVE_HOST "rsi.hotmail.com"
-#define MSN_OIM_RETRIEVE_URL "/rsi/rsi.asmx"
-/* OIM GetMetadata SOAP Template */
-#define MSN_OIM_GET_METADATA_ACTION "http://www.hotmail.msn.com/ws/2004/09/oim/rsi/GetMetadata"
-#define MSN_OIM_GET_METADATA_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
- " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
- " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
- " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"\
- "<PassportCookie xmlns=\"http://www.hotmail.msn.com/ws/2004/09/oim/rsi\">"\
- "<GetMetadata xmlns=\"http://www.hotmail.msn.com/ws/2004/09/oim/rsi\" />"\
-/*OIM GetMessage SOAP Template*/
-#define MSN_OIM_GET_SOAP_ACTION "http://www.hotmail.msn.com/ws/2004/09/oim/rsi/GetMessage"
-#define MSN_OIM_GET_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
- " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
- " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
- " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"\
- "<PassportCookie xmlns=\"http://www.hotmail.msn.com/ws/2004/09/oim/rsi\">"\
- "<GetMessage xmlns=\"http://www.hotmail.msn.com/ws/2004/09/oim/rsi\">"\
- "<messageId>%s</messageId>"\
- "<alsoMarkAsRead>false</alsoMarkAsRead>"\
-/*OIM DeleteMessages SOAP Template*/
-#define MSN_OIM_DEL_SOAP_ACTION "http://www.hotmail.msn.com/ws/2004/09/oim/rsi/DeleteMessages"
-#define MSN_OIM_DEL_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
- " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
- " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
- " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"\
- "<PassportCookie xmlns=\"http://www.hotmail.msn.com/ws/2004/09/oim/rsi\">"\
- "<DeleteMessages xmlns=\"http://www.hotmail.msn.com/ws/2004/09/oim/rsi\">"\
- "<messageId>%s</messageId>"\
-/*OIM Send SOAP Template*/
-#define MSN_OIM_MSG_TEMPLATE "MIME-Version: 1.0\n"\
- "Content-Type: text/plain; charset=UTF-8\n"\
- "Content-Transfer-Encoding: base64\n"\
- "X-OIM-Message-Type: OfflineMessage\n"\
- "X-OIM-Run-Id: {%s}\n"\
- "X-OIM-Sequence-Num: %d\n\n"
-#define MSN_OIM_SEND_HOST "ows.messenger.msn.com"
-#define MSN_OIM_SEND_URL "/OimWS/oim.asmx"
-#define MSN_OIM_SEND_SOAP_ACTION "http://messenger.live.com/ws/2006/09/oim/Store2"
-#define MSN_OIM_SEND_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
- " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
- " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
- " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"\
- " friendlyName=\"%s\""\
- " xmlns=\"http://messenger.msn.com/ws/2004/09/oim/\""\
- " buildVer=\"8.5.1288\"/>"\
- "<To memberName=\"%s\" xmlns=\"http://messenger.msn.com/ws/2004/09/oim/\"/>"\
- "<Ticket passport=\"EMPTY\" appid=\"%s\" lockkey=\"%s\" xmlns=\"http://messenger.msn.com/ws/2004/09/oim/\"/>"\
- "<Sequence xmlns=\"http://schemas.xmlsoap.org/ws/2003/03/rm\">"\
- "<Identifier xmlns=\"http://schemas.xmlsoap.org/ws/2002/07/utility\">http://messenger.msn.com</Identifier>"\
- "<MessageNumber>%d</MessageNumber>"\
- "<MessageType xmlns=\"http://messenger.msn.com/ws/2004/09/oim/\">text</MessageType>"\
- "<Content xmlns=\"http://messenger.msn.com/ws/2004/09/oim/\">%s</Content>"\
-/****************************************************
- * **************************************************/
-MsnOim * msn_oim_new(MsnSession *session);
-void msn_oim_destroy(MsnOim *oim);
-void msn_parse_oim_msg(MsnOim *oim,const char *xmlmsg);
-void msn_oim_prep_send_msg_info(MsnOim *oim, const char *membername,
- const char *friendname, const char *tomember,
-void msn_oim_send_msg(MsnOim *oim);
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/oscar.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1350 +0,0 @@
- * Purple's oscar protocol plugin
- * This file is the legal property of its developers.
- * Please see the AUTHORS file distributed alongside this file.
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- * This library 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
- * Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
- * Main libfaim header. Must be included in client for prototypes/macros.
- * "come on, i turned a chick lesbian; i think this is the hackish equivalent"
-#include "libc_interface.h"
-typedef struct _ByteStream ByteStream;
-typedef struct _ClientInfo ClientInfo;
-typedef struct _FlapConnection FlapConnection;
-typedef struct _FlapFrame FlapFrame;
-typedef struct _IcbmArgsCh2 IcbmArgsCh2;
-typedef struct _IcbmCookie IcbmCookie;
-typedef struct _OscarData OscarData;
-typedef struct _QueuedSnac QueuedSnac;
-typedef guint32 aim_snacid_t;
-#define FAIM_SNAC_HASH_SIZE 16
- * Current Maximum Length for usernames (not including NULL)
- * Currently only names up to 16 characters can be registered
- * however it is apparently legal for them to be larger.
- * Current Maximum Length for Instant Messages
- * This was found basically by experiment, but not wholly
- * accurate experiment. It should not be regarded
- * as completely correct. But its a decent approximation.
- * Note that although we can send this much, its impossible
- * for WinAIM clients (up through the latest (4.0.1957)) to
- * send any more than 1kb. Amaze all your windows friends
- * with utterly oversized instant messages!
- * Maximum size of a Buddy Icon.
-#define AIM_ICONIDENT "AVT1picture.id"
- * Found by trial and error.
-#define MAXAVAILMSGLEN 251
- * Maximum length for the password of an ICQ account
-#define AIM_MD5_STRING "AOL Instant Messenger (SM)"
- * Client info. Filled in by the client and passed in to
- * aim_send_login(). The information ends up getting passed to OSCAR
- * through the initial login command.
- const char *clientstring;
- const char *country; /* two-letter abbrev */
- const char *lang; /* two-letter abbrev */
- * We need to use the major-minor-micro versions from the official
- * AIM and ICQ programs here or AOL won't let us use certain features.
- * 0x00000611 is the distid given to us by AOL for use as the default
-#define CLIENTINFO_PURPLE_AIM { \
-#define CLIENTINFO_PURPLE_ICQ { \
- OSCAR_DISCONNECT_DONE, /* not considered an error */
- OSCAR_DISCONNECT_LOCAL_CLOSED, /* peer connections only, not considered an error */
- OSCAR_DISCONNECT_REMOTE_CLOSED,
- OSCAR_DISCONNECT_REMOTE_REFUSED, /* peer connections only */
- OSCAR_DISCONNECT_LOST_CONNECTION,
- OSCAR_DISCONNECT_INVALID_DATA,
- OSCAR_DISCONNECT_COULD_NOT_CONNECT,
- OSCAR_DISCONNECT_RETRYING /* peer connections only */
-} OscarDisconnectReason;
-#define OSCAR_CAPABILITY_BUDDYICON 0x0000000000000001LL
-#define OSCAR_CAPABILITY_TALK 0x0000000000000002LL
-#define OSCAR_CAPABILITY_DIRECTIM 0x0000000000000004LL
-#define OSCAR_CAPABILITY_CHAT 0x0000000000000008LL
-#define OSCAR_CAPABILITY_GETFILE 0x0000000000000010LL
-#define OSCAR_CAPABILITY_SENDFILE 0x0000000000000020LL
-#define OSCAR_CAPABILITY_GAMES 0x0000000000000040LL
-#define OSCAR_CAPABILITY_ADDINS 0x0000000000000080LL
-#define OSCAR_CAPABILITY_SENDBUDDYLIST 0x0000000000000100LL
-#define OSCAR_CAPABILITY_GAMES2 0x0000000000000200LL
-#define OSCAR_CAPABILITY_ICQ_DIRECT 0x0000000000000400LL
-#define OSCAR_CAPABILITY_APINFO 0x0000000000000800LL
-#define OSCAR_CAPABILITY_ICQRTF 0x0000000000001000LL
-#define OSCAR_CAPABILITY_EMPTY 0x0000000000002000LL
-#define OSCAR_CAPABILITY_ICQSERVERRELAY 0x0000000000004000LL
-#define OSCAR_CAPABILITY_UNICODEOLD 0x0000000000008000LL
-#define OSCAR_CAPABILITY_TRILLIANCRYPT 0x0000000000010000LL
-#define OSCAR_CAPABILITY_UNICODE 0x0000000000020000LL
-#define OSCAR_CAPABILITY_INTEROPERATE 0x0000000000040000LL
-#define OSCAR_CAPABILITY_SHORTCAPS 0x0000000000080000LL
-#define OSCAR_CAPABILITY_HIPTOP 0x0000000000100000LL
-#define OSCAR_CAPABILITY_SECUREIM 0x0000000000200000LL
-#define OSCAR_CAPABILITY_SMS 0x0000000000400000LL
-#define OSCAR_CAPABILITY_VIDEO 0x0000000000800000LL
-#define OSCAR_CAPABILITY_ICHATAV 0x0000000001000000LL
-#define OSCAR_CAPABILITY_LIVEVIDEO 0x0000000002000000LL
-#define OSCAR_CAPABILITY_CAMERA 0x0000000004000000LL
-#define OSCAR_CAPABILITY_ICHAT_SCREENSHARE 0x0000000008000000LL
-#define OSCAR_CAPABILITY_TYPING 0x0000000010000000LL
-#define OSCAR_CAPABILITY_NEWCAPS 0x0000000020000000LL
-#define OSCAR_CAPABILITY_XTRAZ 0x0000000040000000LL
-#define OSCAR_CAPABILITY_GENERICUNKNOWN 0x0000000080000000LL
-#define OSCAR_CAPABILITY_HTML_MSGS 0x0000000100000000LL
-#define OSCAR_CAPABILITY_LAST 0x0000000200000000LL
-#define OSCAR_STATUS_ID_INVISIBLE "invisible"
-#define OSCAR_STATUS_ID_OFFLINE "offline"
-#define OSCAR_STATUS_ID_AVAILABLE "available"
-#define OSCAR_STATUS_ID_AWAY "away"
-#define OSCAR_STATUS_ID_DND "dnd"
-#define OSCAR_STATUS_ID_NA "na"
-#define OSCAR_STATUS_ID_OCCUPIED "occupied"
-#define OSCAR_STATUS_ID_FREE4CHAT "free4chat"
-#define OSCAR_STATUS_ID_CUSTOM "custom"
-#define OSCAR_STATUS_ID_MOBILE "mobile"
-#define OSCAR_STATUS_ID_EVIL "evil"
-#define OSCAR_STATUS_ID_DEPRESSION "depression"
-#define OSCAR_STATUS_ID_ATHOME "athome"
-#define OSCAR_STATUS_ID_ATWORK "atwork"
-#define OSCAR_STATUS_ID_LUNCH "lunch"
- * Byte Stream type. Sort of.
- * Use of this type serves a couple purposes:
- * - Buffer/buflen pairs are passed all around everywhere. This turns
- * that into one value, as well as abstracting it slightly.
- * - Through the abstraction, it is possible to enable bounds checking
- * for robustness at the cost of performance. But a clean failure on
- * weird packets is much better than a segfault.
- * - I like having variables named "bs".
- * Don't touch the insides of this struct. Or I'll have to kill you.
- ByteStream data; /* payload stream */
- OscarData *od; /**< Pointer to parent session. */
- time_t lastactivity; /**< Time of last transmit. */
- OscarDisconnectReason disconnect_reason;
- guint16 disconnect_code;
- /* A few variables that are only used when connecting */
- PurpleProxyConnectData *connect_data;
- gpointer new_conn_data;
- PurpleSslConnection *gsc;
- gssize header_received;
- FlapFrame buffer_incoming;
- PurpleCircBuffer *buffer_outgoing;
- guint watcher_incoming;
- guint watcher_outgoing;
- guint16 seqnum_out; /**< The sequence number of most recently sent packet. */
- guint16 seqnum_in; /**< The sequence number of most recently received packet. */
- GSList *rateclasses; /* Contains nodes of struct rateclass. */
- struct rateclass *default_rateclass;
- GHashTable *rateclass_members; /* Key is family and subtype, value is pointer to the rateclass struct to use. */
- GQueue *queued_snacs; /**< Contains QueuedSnacs. */
- GQueue *queued_lowpriority_snacs; /**< Contains QueuedSnacs to send only once queued_snacs is empty */
- void *internal; /* internal conn-specific libfaim data */
- struct _IcbmCookie *next;
- * AIM Session: The main client-data interface.
- /** Only used when connecting with clientLogin */
- PurpleUtilFetchUrlData *url_data;
- gboolean iconconnecting;
- guint maxwatchers; /* max users who can watch you */
- guint maxbuddies; /* max users you can watch */
- guint maxgroups; /* max groups in server list */
- guint maxpermits; /* max users on permit list */
- guint maxdenies; /* max users on deny list */
- guint maxsiglen; /* max size (bytes) of profile */
- guint maxawaymsglen; /* max size (bytes) of posted away message */
- * Outstanding snac handling
- * TODO: Should these be per-connection? -mid
- void *snac_hash[FAIM_SNAC_HASH_SIZE];
- aim_snacid_t snacid_next;
- * TODO: Data specific to a certain family should go into a
- * hashtable and the core parts of libfaim shouldn't
- * need to know about them.
- IcbmCookie *msgcookies;
- /** Only used when connecting with the old-style BUCP login. */
- struct aim_authresp_info *authinfo;
- struct aim_emailinfo *emailinfo;
- struct aim_userinfo_s *userinfo;
- /* Server-stored information (ssi) */
- gboolean received_data;
- struct aim_ssi_item *official;
- struct aim_ssi_item *local;
- struct aim_ssi_tmp *pending;
- gboolean waiting_for_ack;
- gboolean in_transaction;
- /** Contains pointers to handler functions for each family/subtype. */
- GHashTable *handlerlist;
- /** A linked list containing FlapConnections. */
- GSList *oscar_connections;
- /** A linked list containing PeerConnections. */
- GSList *peer_connections;
-/* Valid for calling aim_icq_setstatus() and for aim_userinfo_t->icqinfo.status */
-#define AIM_ICQ_STATE_NORMAL 0x00000000
-#define AIM_ICQ_STATE_AWAY 0x00000001
-#define AIM_ICQ_STATE_DND 0x00000002
-#define AIM_ICQ_STATE_OUT 0x00000004
-#define AIM_ICQ_STATE_BUSY 0x00000010
-#define AIM_ICQ_STATE_CHAT 0x00000020
-#define AIM_ICQ_STATE_INVISIBLE 0x00000100
-#define AIM_ICQ_STATE_EVIL 0x00003000
-#define AIM_ICQ_STATE_DEPRESSION 0x00004000
-#define AIM_ICQ_STATE_ATHOME 0x00005000
-#define AIM_ICQ_STATE_ATWORK 0x00006000
-#define AIM_ICQ_STATE_LUNCH 0x00002001
-#define AIM_ICQ_STATE_EVIL 0x00003000
-#define AIM_ICQ_STATE_WEBAWARE 0x00010000
-#define AIM_ICQ_STATE_HIDEIP 0x00020000
-#define AIM_ICQ_STATE_BIRTHDAY 0x00080000
-#define AIM_ICQ_STATE_ICQHOMEPAGE 0x00200000
-#define AIM_ICQ_STATE_DIRECTREQUIREAUTH 0x10000000
- * Only used when connecting with the old-style BUCP login.
-struct aim_clientrelease
- * Only used when connecting with the old-style BUCP login.
-struct aim_authresp_info
- struct aim_clientrelease latestrelease;
- struct aim_clientrelease latestbeta;
-/* Callback data for redirect. */
-struct aim_redirect_data
- const char *ssl_cert_cn;
- struct { /* group == SNAC_FAMILY_CHAT */
-int oscar_connect_to_bos(PurpleConnection *gc, OscarData *od, const char *host, guint16 port, guint8 *cookie, guint16 cookielen, const char *tls_certname);
- * Only used when connecting with the old-style BUCP login.
-int aim_request_login(OscarData *od, FlapConnection *conn, const char *bn);
- * Only used when connecting with the old-style BUCP login.
-int aim_send_login(OscarData *od, FlapConnection *conn, const char *bn, const char *password, gboolean truncate_pass, ClientInfo *ci, const char *key, gboolean allow_multiple_logins);
- * Only used when connecting with the old-style BUCP login.
-/* 0x000b */ int aim_auth_securid_send(OscarData *od, const char *securid);
- * Only used when connecting with clientLogin.
-void send_client_login(OscarData *od, const char *username);
-FlapConnection *flap_connection_new(OscarData *, int type);
-void flap_connection_close(OscarData *od, FlapConnection *conn);
-void flap_connection_destroy(FlapConnection *conn, OscarDisconnectReason reason, const gchar *error_message);
-void flap_connection_schedule_destroy(FlapConnection *conn, OscarDisconnectReason reason, const gchar *error_message);
-FlapConnection *flap_connection_findbygroup(OscarData *od, guint16 group);
-FlapConnection *flap_connection_getbytype(OscarData *, int type);
-FlapConnection *flap_connection_getbytype_all(OscarData *, int type);
-void flap_connection_recv_cb(gpointer data, gint source, PurpleInputCondition cond);
-void flap_connection_recv_cb_ssl(gpointer data, PurpleSslConnection *gsc, PurpleInputCondition cond);
-void flap_connection_send(FlapConnection *conn, FlapFrame *frame);
-void flap_connection_send_version(OscarData *od, FlapConnection *conn);
-void flap_connection_send_version_with_cookie(OscarData *od, FlapConnection *conn, guint16 length, const guint8 *chipsahoy);
-void flap_connection_send_version_with_cookie_and_clientinfo(OscarData *od, FlapConnection *conn, guint16 length, const guint8 *chipsahoy, ClientInfo *ci, gboolean allow_multiple_login);
-void flap_connection_send_snac(OscarData *od, FlapConnection *conn, guint16 family, const guint16 subtype, aim_snacid_t snacid, ByteStream *data);
-void flap_connection_send_snac_with_priority(OscarData *od, FlapConnection *conn, guint16 family, const guint16 subtype, aim_snacid_t snacid, ByteStream *data, gboolean high_priority);
-void flap_connection_send_keepalive(OscarData *od, FlapConnection *conn);
-FlapFrame *flap_frame_new(OscarData *od, guint16 channel, int datalen);
-typedef int (*aim_rxcallback_t)(OscarData *od, FlapConnection *conn, FlapFrame *frame, ...);
-OscarData *oscar_data_new(void);
-void oscar_data_destroy(OscarData *);
-void oscar_data_addhandler(OscarData *od, guint16 family, guint16 subtype, aim_rxcallback_t newhandler, guint16 flags);
-aim_rxcallback_t aim_callhandler(OscarData *od, guint16 family, guint16 subtype);
-/* 0x0001 - family_oservice.c */
-/* 0x0002 */ void aim_srv_clientready(OscarData *od, FlapConnection *conn);
-/* 0x0004 */ void aim_srv_requestnew(OscarData *od, guint16 serviceid);
-/* 0x0006 */ void aim_srv_reqrates(OscarData *od, FlapConnection *conn);
-/* 0x0008 */ void aim_srv_rates_addparam(OscarData *od, FlapConnection *conn);
-/* 0x000e */ void aim_srv_reqpersonalinfo(OscarData *od, FlapConnection *conn);
-/* 0x0011 */ void aim_srv_setidle(OscarData *od, guint32 idletime);
-/* 0x0017 */ void aim_srv_setversions(OscarData *od, FlapConnection *conn);
-/* 0x001e */ int aim_srv_setextrainfo(OscarData *od, gboolean seticqstatus, guint32 icqstatus, gboolean setstatusmsg, const char *statusmsg, const char *itmsurl);
-void aim_srv_set_dc_info(OscarData *od);
-void aim_bos_reqrights(OscarData *od, FlapConnection *conn);
-#define AIM_RATE_CODE_LIMIT 0x0003
-#define AIM_OFT_SUBTYPE_SEND_DIR 0x0002
-#define AIM_TRANSFER_DENY_DECLINE 0x0001
-#define AIM_IMPARAM_FLAG_CHANNEL_MSGS_ALLOWED 0x00000001
-#define AIM_IMPARAM_FLAG_MISSED_CALLS_ENABLED 0x00000002
-#define AIM_IMPARAM_FLAG_EVENTS_ALLOWED 0x00000008
-#define AIM_IMPARAM_FLAG_SMS_SUPPORTED 0x00000010
-#define AIM_IMPARAM_FLAG_OFFLINE_MSGS_ALLOWED 0x00000100
- * This flag tells the server that we always send HTML in messages
- * sent from an ICQ account to an ICQ account. (If this flag is
- * not sent then plaintext is sent ICQ<-->ICQ (HTML is sent in all
- * If we send an HTML message to an old client that doesn't support
- * HTML messages, then the oscar servers will merrily strip the HTML
- * All incoming IMs are treated as HTML.
-#define AIM_IMPARAM_FLAG_USE_HTML_FOR_ICQ 0x00000400
-struct aim_icbmparameters
- guint32 flags; /* AIM_IMPARAM_FLAG_ */
- guint16 maxmsglen; /* message size that you will accept */
- guint16 maxsenderwarn; /* this and below are *10 (999=99.9%) */
- guint32 minmsginterval; /* in milliseconds? */
- * TODO: Should probably combine this with struct chat_connection.
-struct aim_chat_roominfo
- char *show; /* AOL did something funny to us */
- PurpleConversation *conv;
- * All this chat struct stuff should be in family_chat.c
-void oscar_chat_destroy(struct chat_connection *cc);
-#define AIM_IMFLAGS_AWAY 0x0001 /* mark as an autoreply */
-#define AIM_IMFLAGS_ACK 0x0002 /* request a receipt notice */
-#define AIM_IMFLAGS_BUDDYREQ 0x0010 /* buddy icon requested */
-#define AIM_IMFLAGS_HASICON 0x0020 /* already has icon */
-#define AIM_IMFLAGS_SUBENC_MACINTOSH 0x0040 /* damn that Steve Jobs! */
-#define AIM_IMFLAGS_CUSTOMFEATURES 0x0080 /* features field present */
-#define AIM_IMFLAGS_OFFLINE 0x0800 /* send to offline user */
-#define AIM_IMFLAGS_TYPINGNOT 0x1000 /* typing notification */
-#define AIM_CHARSET_ASCII 0x0000 /* ISO 646 */
-#define AIM_CHARSET_UNICODE 0x0002 /* ISO 10646 (UTF-16/UCS-2BE) */
-#define AIM_CHARSET_LATIN_1 0x0003 /* ISO 8859-1 */
- * Arguments to aim_send_im_ext().
- * This is really complicated. But immensely versatile.
-struct aim_sendimext_args
- /* These are _required_ */
- guint32 flags; /* often 0 */
- /* Only used if AIM_IMFLAGS_HASICON is set */
- * This information is provided in the Incoming ICBM callback for
-struct aim_incomingim_ch1_args
- guint32 icbmflags; /* some flags apply only to ->msg, not all mpmsg */
- time_t timestamp; /* Only set for offline messages */
- /* Only provided if AIM_IMFLAGS_HASICON is set */
-/* Valid values for channel 2 args->status */
-#define AIM_RENDEZVOUS_PROPOSE 0x0000
-#define AIM_RENDEZVOUS_CANCEL 0x0001
-#define AIM_RENDEZVOUS_CONNECTED 0x0002
- guint64 type; /* One of the OSCAR_CAPABILITY_ constants */
- const char *verifiedip;
- const char *msg; /* invite message or file description */
- struct aim_chat_roominfo roominfo;
- void *destructor; /* used internally only */
-struct aim_incomingim_ch4_args
- guint32 uin; /* Of the sender of the ICBM */
- gchar *msg; /* Reason for auth request, deny, or accept */
-/* SNAC sending functions */
-/* 0x0002 */ int aim_im_setparams(OscarData *od, struct aim_icbmparameters *params);
-/* 0x0004 */ int aim_im_reqparams(OscarData *od);
-/* 0x0006 */ int aim_im_sendch1_ext(OscarData *od, struct aim_sendimext_args *args);
-/* 0x0006 */ int aim_im_sendch1(OscarData *, const char *destbn, guint16 flags, const char *msg);
-/* 0x0006 */ int aim_im_sendch2_chatinvite(OscarData *od, const char *bn, const char *msg, guint16 exchange, const char *roomname, guint16 instance);
-/* 0x0006 */ int aim_im_sendch2_icon(OscarData *od, const char *bn, const guint8 *icon, int iconlen, time_t stamp, guint16 iconsum);
-/* 0x0006 */ void aim_im_sendch2_cancel(PeerConnection *peer_conn);
-/* 0x0006 */ void aim_im_sendch2_connected(PeerConnection *peer_conn);
-/* 0x0006 */ void aim_im_sendch2_odc_requestdirect(OscarData *od, guchar *cookie, const char *bn, const guint8 *ip, guint16 port, guint16 requestnumber);
-/* 0x0006 */ void aim_im_sendch2_odc_requestproxy(OscarData *od, guchar *cookie, const char *bn, const guint8 *ip, guint16 pin, guint16 requestnumber);
-/* 0x0006 */ void aim_im_sendch2_sendfile_requestdirect(OscarData *od, guchar *cookie, const char *bn, const guint8 *ip, guint16 port, guint16 requestnumber, const gchar *filename, guint32 size, guint16 numfiles);
-/* 0x0006 */ void aim_im_sendch2_sendfile_requestproxy(OscarData *od, guchar *cookie, const char *bn, const guint8 *ip, guint16 pin, guint16 requestnumber, const gchar *filename, guint32 size, guint16 numfiles);
-/* 0x000b */ int aim_im_denytransfer(OscarData *od, const char *bn, const guchar *cookie, guint16 code);
-/* 0x0010 */ int aim_im_reqofflinemsgs(OscarData *od);
-/* 0x0014 */ int aim_im_sendmtn(OscarData *od, guint16 type1, const char *bn, guint16 type2);
-/* 0x000b */ int icq_relay_xstatus (OscarData *od, const char *sn, const guchar* cookie);
-void aim_icbm_makecookie(guchar* cookie);
-void aim_im_send_icq_confirmation(OscarData *od, const char *bn, const guchar *cookie);
-/* 0x0002 - family_locate.c */
- * AIM User Info, Standard Form.
-#define AIM_FLAG_ADMINISTRATOR 0x0002
-#define AIM_FLAG_AOL 0x0004
-#define AIM_FLAG_AWAY 0x0020
-#define AIM_FLAG_WIRELESS 0x0080
-#define AIM_FLAG_ICQ 0x0040
-#define AIM_FLAG_ACTIVEBUDDY 0x0400
-#define AIM_USERINFO_PRESENT_FLAGS 0x00000001
-#define AIM_USERINFO_PRESENT_MEMBERSINCE 0x00000002
-#define AIM_USERINFO_PRESENT_ONLINESINCE 0x00000004
-#define AIM_USERINFO_PRESENT_IDLE 0x00000008
-#define AIM_USERINFO_PRESENT_ICQEXTSTATUS 0x00000010
-#define AIM_USERINFO_PRESENT_ICQIPADDR 0x00000020
-#define AIM_USERINFO_PRESENT_ICQDATA 0x00000040
-#define AIM_USERINFO_PRESENT_CAPABILITIES 0x00000080
-#define AIM_USERINFO_PRESENT_SESSIONLEN 0x00000100
-#define AIM_USERINFO_PRESENT_CREATETIME 0x00000200
- struct userinfo_node *next;
-typedef struct aim_userinfo_s
- guint16 warnlevel; /* evil percent * 10 (999 = 99.9%) */
- guint16 idletime; /* in seconds */
- guint32 createtime; /* time_t */
- guint32 membersince; /* time_t */
- guint32 onlinesince; /* time_t */
- guint32 sessionlen; /* in seconds */
- guint8 crap[0x25]; /* until we figure it out... */
- char *itmsurl_encoding;
- struct aim_userinfo_s *next;
-#define AIM_SENDMEMBLOCK_FLAG_ISREQUEST 0
-#define AIM_SENDMEMBLOCK_FLAG_ISHASH 1
-int aim_sendmemblock(OscarData *od, FlapConnection *conn, guint32 offset, guint32 len, const guint8 *buf, guint8 flag);
-#define AIM_COOKIETYPE_CHAT 0x01
-#define AIM_COOKIETYPE_INVITE 0x02
-aim_userinfo_t *aim_locate_finduserinfo(OscarData *od, const char *bn);
-void aim_locate_dorequest(OscarData *od);
-/* 0x0002 */ int aim_locate_reqrights(OscarData *od);
-/* 0x0004 */ int aim_locate_setcaps(OscarData *od, guint64 caps);
-/* 0x0004 */ int aim_locate_setprofile(OscarData *od, const char *profile_encoding, const gchar *profile, const int profile_len, const char *awaymsg_encoding, const gchar *awaymsg, const int awaymsg_len);
-/* 0x0015 */ int aim_locate_getinfoshort(OscarData *od, const char *bn, guint32 flags);
-guint64 aim_locate_getcaps(OscarData *od, ByteStream *bs, int len);
-guint64 aim_locate_getcaps_short(OscarData *od, ByteStream *bs, int len);
-void aim_info_free(aim_userinfo_t *);
-int aim_info_extract(OscarData *od, ByteStream *bs, aim_userinfo_t *);
-int aim_putuserinfo(ByteStream *bs, aim_userinfo_t *info);
-PurpleMood* icq_get_purple_moods(PurpleAccount *account);
-const char* icq_get_custom_icon_description(const char *mood);
-guint8* icq_get_custom_icon_data(const char *mood);
-int icq_im_xstatus_request(OscarData *od, const char *sn);
-/* 0x0003 - family_buddy.c */
-/* 0x0002 */ void aim_buddylist_reqrights(OscarData *, FlapConnection *);
-/* 0x000a - family_userlookup.c */
-int aim_search_address(OscarData *, const char *);
-struct aim_chat_exchangeinfo
-#define AIM_CHATFLAGS_NOREFLECT 0x0001
-#define AIM_CHATFLAGS_AWAY 0x0002
-int aim_chat_send_im(OscarData *od, FlapConnection *conn, guint16 flags, const gchar *msg, int msglen, const char *encoding, const char *language);
-int aim_chat_join(OscarData *od, guint16 exchange, const char *roomname, guint16 instance);
-void aim_chatnav_reqrights(OscarData *od, FlapConnection *conn);
-int aim_chatnav_createroom(OscarData *od, FlapConnection *conn, const char *name, guint16 exchange);
-/* 0x0010 - family_bart.c */
-int aim_bart_upload(OscarData *od, const guint8 *icon, guint16 iconlen);
-int aim_bart_request(OscarData *od, const char *bn, guint8 iconcsumtype, const guint8 *iconstr, guint16 iconstrlen);
-/* 0x0013 - family_feedbag.c */
-#define AIM_SSI_TYPE_BUDDY 0x0000
-#define AIM_SSI_TYPE_GROUP 0x0001
-#define AIM_SSI_TYPE_PERMIT 0x0002
-#define AIM_SSI_TYPE_DENY 0x0003
-#define AIM_SSI_TYPE_PDINFO 0x0004
-#define AIM_SSI_TYPE_PRESENCEPREFS 0x0005
-#define AIM_SSI_TYPE_ICQDENY 0x000e
-#define AIM_SSI_TYPE_ICONINFO 0x0014
-/* These flags are set in the 0x00c9 TLV of SSI type 0x0005 */
-#define AIM_SSI_PRESENCE_FLAG_SHOWIDLE 0x00000400
-#define AIM_SSI_PRESENCE_FLAG_NORECENTBUDDIES 0x00020000
- struct aim_ssi_item *next;
- struct aim_ssi_item *item;
- struct aim_ssi_tmp *next;
-/* These build the actual SNACs and queue them to be sent */
-/* 0x0002 */ int aim_ssi_reqrights(OscarData *od);
-/* 0x0004 */ int aim_ssi_reqdata(OscarData *od);
-/* 0x0007 */ int aim_ssi_enable(OscarData *od);
-/* 0x0011 */ int aim_ssi_modbegin(OscarData *od);
-/* 0x0012 */ int aim_ssi_modend(OscarData *od);
-/* 0x0018 */ int aim_ssi_sendauthrequest(OscarData *od, const char *bn, const char *msg);
-/* 0x001a */ int aim_ssi_sendauthreply(OscarData *od, const char *bn, guint8 reply, const char *msg);
-/* Client functions for retrieving SSI data */
-struct aim_ssi_item *aim_ssi_itemlist_find(struct aim_ssi_item *list, guint16 gid, guint16 bid);
-struct aim_ssi_item *aim_ssi_itemlist_finditem(struct aim_ssi_item *list, const char *gn, const char *bn, guint16 type);
-struct aim_ssi_item *aim_ssi_itemlist_exists(struct aim_ssi_item *list, const char *bn);
-char *aim_ssi_itemlist_findparentname(struct aim_ssi_item *list, const char *bn);
-int aim_ssi_getpermdeny(struct aim_ssi_item *list);
-guint32 aim_ssi_getpresence(struct aim_ssi_item *list);
-char *aim_ssi_getalias(struct aim_ssi_item *list, const char *gn, const char *bn);
-char *aim_ssi_getcomment(struct aim_ssi_item *list, const char *gn, const char *bn);
-gboolean aim_ssi_waitingforauth(struct aim_ssi_item *list, const char *gn, const char *bn);
-/* Client functions for changing SSI data */
-int aim_ssi_addbuddy(OscarData *od, const char *name, const char *group, GSList *tlvlist, const char *alias, const char *comment, const char *smsnum, gboolean needauth);
-int aim_ssi_delbuddy(OscarData *od, const char *name, const char *group);
-int aim_ssi_delgroup(OscarData *od, const char *group);
-int aim_ssi_movebuddy(OscarData *od, const char *oldgn, const char *newgn, const char *bn);
-int aim_ssi_aliasbuddy(OscarData *od, const char *gn, const char *bn, const char *alias);
-int aim_ssi_editcomment(OscarData *od, const char *gn, const char *bn, const char *alias);
-int aim_ssi_rename_group(OscarData *od, const char *oldgn, const char *newgn);
-int aim_ssi_cleanlist(OscarData *od);
-int aim_ssi_deletelist(OscarData *od);
-int aim_ssi_setpermdeny(OscarData *od, guint8 permdeny);
-int aim_ssi_setpresence(OscarData *od, guint32 presence);
-int aim_ssi_seticon(OscarData *od, const guint8 *iconsum, guint8 iconsumlen);
-int aim_ssi_delicon(OscarData *od);
-int aim_ssi_add_to_private_list(OscarData *od, const char* name, guint16 list_type);
-int aim_ssi_del_from_private_list(OscarData* od, const char* name, guint16 list_type);
-guint16 aim_ssi_getdenyentrytype(OscarData* od);
- /* general and "home" information (0x00c8) */
- /* personal (0x00dc) */
- /* additional personal information (0x00e6) */
- char *status_note_title;
- gboolean for_auth_request;
- char *auth_request_reason;
-int aim_icq_setsecurity(OscarData *od, gboolean auth_required, gboolean webaware);
-int aim_icq_changepasswd(OscarData *od, const char *passwd);
-int aim_icq_getalias(OscarData *od, const char *uin, gboolean for_auth_request, char *auth_request_reason);
-int aim_icq_getallinfo(OscarData *od, const char *uin);
-int aim_icq_sendsms(OscarData *od, const char *name, const char *msg, const char *alias);
-/* 0x0017 - family_auth.c */
-void aim_sendcookie(OscarData *, FlapConnection *, const guint16 length, const guint8 *);
-void aim_admin_changepasswd(OscarData *, FlapConnection *, const char *newpw, const char *curpw);
-void aim_admin_reqconfirm(OscarData *od, FlapConnection *conn);
-void aim_admin_getinfo(OscarData *od, FlapConnection *conn, guint16 info);
-void aim_admin_setemail(OscarData *od, FlapConnection *conn, const char *newemail);
-void aim_admin_setnick(OscarData *od, FlapConnection *conn, const char *newnick);
-/* 0x0018 - family_alert.c */
- struct aim_emailinfo *next;
-int aim_email_sendcookies(OscarData *od);
-int aim_email_activate(OscarData *od);
-/* tlv.c - TLV handling */
-typedef struct aim_tlv_s
-/* TLV handling functions */
-char *aim_tlv_getvalue_as_string(aim_tlv_t *tlv);
-aim_tlv_t *aim_tlv_gettlv(GSList *list, const guint16 type, const int nth);
-int aim_tlv_getlength(GSList *list, const guint16 type, const int nth);
-char *aim_tlv_getstr(GSList *list, const guint16 type, const int nth);
-guint8 aim_tlv_get8(GSList *list, const guint16 type, const int nth);
-guint16 aim_tlv_get16(GSList *list, const guint16 type, const int nth);
-guint32 aim_tlv_get32(GSList *list, const guint16 type, const int nth);
-/* TLV list handling functions */
-GSList *aim_tlvlist_read(ByteStream *bs);
-GSList *aim_tlvlist_readnum(ByteStream *bs, guint16 num);
-GSList *aim_tlvlist_readlen(ByteStream *bs, guint16 len);
-GSList *aim_tlvlist_copy(GSList *orig);
-int aim_tlvlist_count(GSList *list);
-int aim_tlvlist_size(GSList *list);
-int aim_tlvlist_cmp(GSList *one, GSList *two);
-int aim_tlvlist_write(ByteStream *bs, GSList **list);
-void aim_tlvlist_free(GSList *list);
-int aim_tlvlist_add_raw(GSList **list, const guint16 type, const guint16 length, const guint8 *value);
-int aim_tlvlist_add_noval(GSList **list, const guint16 type);
-int aim_tlvlist_add_8(GSList **list, const guint16 type, const guint8 value);
-int aim_tlvlist_add_16(GSList **list, const guint16 type, const guint16 value);
-int aim_tlvlist_add_32(GSList **list, const guint16 type, const guint32 value);
-int aim_tlvlist_add_str(GSList **list, const guint16 type, const char *value);
-int aim_tlvlist_add_caps(GSList **list, const guint16 type, const guint64 caps, const char *mood);
-int aim_tlvlist_add_userinfo(GSList **list, guint16 type, aim_userinfo_t *userinfo);
-int aim_tlvlist_add_chatroom(GSList **list, guint16 type, guint16 exchange, const char *roomname, guint16 instance);
-int aim_tlvlist_add_frozentlvlist(GSList **list, guint16 type, GSList **tl);
-int aim_tlvlist_replace_raw(GSList **list, const guint16 type, const guint16 lenth, const guint8 *value);
-int aim_tlvlist_replace_str(GSList **list, const guint16 type, const char *str);
-int aim_tlvlist_replace_noval(GSList **list, const guint16 type);
-int aim_tlvlist_replace_8(GSList **list, const guint16 type, const guint8 value);
-int aim_tlvlist_replace_16(GSList **list, const guint16 type, const guint16 value);
-int aim_tlvlist_replace_32(GSList **list, const guint16 type, const guint32 value);
-void aim_tlvlist_remove(GSList **list, const guint16 type);
-/* These are really ugly. You'd think this was LISP. I wish it was. */
-#define aimutil_put8(buf, data) ((*(buf) = (guint8)(data)&0xff),1)
-#define aimutil_get8(buf) ((*(buf))&0xff)
-#define aimutil_put16(buf, data) ( \
- (*(buf) = (guint8)((data)>>8)&0xff), \
- (*((buf)+1) = (guint8)(data)&0xff), \
-#define aimutil_get16(buf) ((((*(buf))<<8)&0xff00) + ((*((buf)+1)) & 0xff))
-#define aimutil_put32(buf, data) ( \
- (*((buf)) = (guint8)((data)>>24)&0xff), \
- (*((buf)+1) = (guint8)((data)>>16)&0xff), \
- (*((buf)+2) = (guint8)((data)>>8)&0xff), \
- (*((buf)+3) = (guint8)(data)&0xff), \
-#define aimutil_get32(buf) ((((*(buf))<<24)&0xff000000) + \
- (((*((buf)+1))<<16)&0x00ff0000) + \
- (((*((buf)+2))<< 8)&0x0000ff00) + \
- (((*((buf)+3) )&0x000000ff)))
-/* Little-endian versions (damn ICQ) */
-#define aimutil_putle8(buf, data) ( \
- (*(buf) = (guint8)(data) & 0xff), \
-#define aimutil_getle8(buf) ( \
-#define aimutil_putle16(buf, data) ( \
- (*((buf)+0) = (guint8)((data) >> 0) & 0xff), \
- (*((buf)+1) = (guint8)((data) >> 8) & 0xff), \
-#define aimutil_getle16(buf) ( \
- (((*((buf)+0)) << 0) & 0x00ff) + \
- (((*((buf)+1)) << 8) & 0xff00) \
-#define aimutil_putle32(buf, data) ( \
- (*((buf)+0) = (guint8)((data) >> 0) & 0xff), \
- (*((buf)+1) = (guint8)((data) >> 8) & 0xff), \
- (*((buf)+2) = (guint8)((data) >> 16) & 0xff), \
- (*((buf)+3) = (guint8)((data) >> 24) & 0xff), \
-#define aimutil_getle32(buf) ( \
- (((*((buf)+0)) << 0) & 0x000000ff) + \
- (((*((buf)+1)) << 8) & 0x0000ff00) + \
- (((*((buf)+2)) << 16) & 0x00ff0000) + \
- (((*((buf)+3)) << 24) & 0xff000000))
-const char *oscar_get_msgerr_reason(size_t reason);
-int oscar_get_ui_info_int(const char *str, int default_value);
-const char *oscar_get_ui_info_string(const char *str, const char *default_value);
-gchar *oscar_get_clientstring(void);
-guint16 aimutil_iconsum(const guint8 *buf, int buflen);
-gboolean oscar_util_valid_name(const char *bn);
-gboolean oscar_util_valid_name_icq(const char *bn);
-gboolean oscar_util_valid_name_sms(const char *bn);
-int oscar_util_name_compare(const char *bn1, const char *bn2);
-gchar *oscar_util_format_string(const char *str, const char *name);
-gchar *oscar_format_buddies(GSList *buddies, const gchar *no_buddies_message);
-#define AIM_MODULENAME_MAXLEN 16
-#define AIM_MODFLAG_MULTIFAMILY 0x0001
-typedef struct aim_module_s
- char name[AIM_MODULENAME_MAXLEN+1];
- int (*snachandler)(OscarData *od, FlapConnection *conn, struct aim_module_s *mod, FlapFrame *rx, aim_modsnac_t *snac, ByteStream *bs);
- void (*shutdown)(OscarData *od, struct aim_module_s *mod);
- struct aim_module_s *next;
-int aim__registermodule(OscarData *od, int (*modfirst)(OscarData *, aim_module_t *));
-void aim__shutdownmodules(OscarData *od);
-aim_module_t *aim__findmodulebygroup(OscarData *od, guint16 group);
-aim_module_t *aim__findmodule(OscarData *od, const char *name);
-int admin_modfirst(OscarData *od, aim_module_t *mod);
-int buddylist_modfirst(OscarData *od, aim_module_t *mod);
-int bos_modfirst(OscarData *od, aim_module_t *mod);
-int search_modfirst(OscarData *od, aim_module_t *mod);
-int stats_modfirst(OscarData *od, aim_module_t *mod);
-int auth_modfirst(OscarData *od, aim_module_t *mod);
-int msg_modfirst(OscarData *od, aim_module_t *mod);
-int misc_modfirst(OscarData *od, aim_module_t *mod);
-int chatnav_modfirst(OscarData *od, aim_module_t *mod);
-int chat_modfirst(OscarData *od, aim_module_t *mod);
-int locate_modfirst(OscarData *od, aim_module_t *mod);
-int service_modfirst(OscarData *od, aim_module_t *mod);
-int popups_modfirst(OscarData *od, aim_module_t *mod);
-int bart_modfirst(OscarData *od, aim_module_t *mod);
-int ssi_modfirst(OscarData *od, aim_module_t *mod);
-int icq_modfirst(OscarData *od, aim_module_t *mod);
-int email_modfirst(OscarData *od, aim_module_t *mod);
-void aim_genericreq_n(OscarData *od, FlapConnection *conn, guint16 family, guint16 subtype);
-void aim_genericreq_n_snacid(OscarData *od, FlapConnection *conn, guint16 family, guint16 subtype);
-void aim_genericreq_l(OscarData *od, FlapConnection *conn, guint16 family, guint16 subtype, guint32 *);
-int byte_stream_new(ByteStream *bs, size_t len);
-int byte_stream_init(ByteStream *bs, guint8 *data, size_t len);
-void byte_stream_destroy(ByteStream *bs);
-int byte_stream_bytes_left(ByteStream *bs);
-int byte_stream_curpos(ByteStream *bs);
-int byte_stream_setpos(ByteStream *bs, size_t off);
-void byte_stream_rewind(ByteStream *bs);
-int byte_stream_advance(ByteStream *bs, int n);
-guint8 byte_stream_get8(ByteStream *bs);
-guint16 byte_stream_get16(ByteStream *bs);
-guint32 byte_stream_get32(ByteStream *bs);
-guint8 byte_stream_getle8(ByteStream *bs);
-guint16 byte_stream_getle16(ByteStream *bs);
-guint32 byte_stream_getle32(ByteStream *bs);
-int byte_stream_getrawbuf(ByteStream *bs, guint8 *buf, size_t len);
-guint8 *byte_stream_getraw(ByteStream *bs, size_t len);
-char *byte_stream_getstr(ByteStream *bs, size_t len);
-int byte_stream_put8(ByteStream *bs, guint8 v);
-int byte_stream_put16(ByteStream *bs, guint16 v);
-int byte_stream_put32(ByteStream *bs, guint32 v);
-int byte_stream_putle8(ByteStream *bs, guint8 v);
-int byte_stream_putle16(ByteStream *bs, guint16 v);
-int byte_stream_putle32(ByteStream *bs, guint32 v);
-int byte_stream_putraw(ByteStream *bs, const guint8 *v, size_t len);
-int byte_stream_putstr(ByteStream *bs, const char *str);
-int byte_stream_putbs(ByteStream *bs, ByteStream *srcbs, size_t len);
-int byte_stream_putuid(ByteStream *bs, OscarData *od);
-int byte_stream_putcaps(ByteStream *bs, guint64 caps);
- * Inserts a BART asset block into the given byte stream. The flags
- * and length are set appropriately based on the value of data.
-void byte_stream_put_bart_asset(ByteStream *bs, guint16 type, ByteStream *data);
- * A helper function that calls byte_stream_put_bart_asset with the
- * appropriate data ByteStream given the datastr.
-void byte_stream_put_bart_asset_str(ByteStream *bs, guint16 type, const char *datastr);
- * Generic SNAC structure. Rarely if ever used.
-typedef struct aim_snac_s {
- struct aim_snac_s *next;
-void aim_initsnachash(OscarData *od);
-aim_snacid_t aim_newsnac(OscarData *, aim_snac_t *newsnac);
-aim_snacid_t aim_cachesnac(OscarData *od, const guint16 family, const guint16 type, const guint16 flags, const void *data, const int datalen);
-aim_snac_t *aim_remsnac(OscarData *, aim_snacid_t id);
-void aim_cleansnacs(OscarData *, int maxage);
-int aim_putsnac(ByteStream *, guint16 family, guint16 type, aim_snacid_t id);
- struct timeval last; /**< The time when we last sent a SNAC of this rate class. */
-int aim_cachecookie(OscarData *od, IcbmCookie *cookie);
-IcbmCookie *aim_uncachecookie(OscarData *od, guint8 *cookie, int type);
-IcbmCookie *aim_mkcookie(guint8 *, int, void *);
-IcbmCookie *aim_checkcookie(OscarData *, const unsigned char *, const int);
-int aim_freecookie(OscarData *od, IcbmCookie *cookie);
-int aim_cookie_free(OscarData *od, IcbmCookie *cookie);
-int aim_chat_readroominfo(ByteStream *bs, struct aim_chat_roominfo *outinfo);
-void flap_connection_destroy_chat(OscarData *od, FlapConnection *conn);
-/* userinfo.c - displaying user information */
-void oscar_user_info_append_status(PurpleConnection *gc, PurpleNotifyUserInfo *user_info, PurpleBuddy *b, aim_userinfo_t *userinfo, gboolean use_html_status);
-void oscar_user_info_append_extra_info(PurpleConnection *gc, PurpleNotifyUserInfo *user_info, PurpleBuddy *b, aim_userinfo_t *userinfo);
-void oscar_user_info_display_error(OscarData *od, guint16 error_reason, char *buddy);
-void oscar_user_info_display_icq(OscarData *od, struct aim_icq_info *info);
-void oscar_user_info_display_aim(OscarData *od, aim_userinfo_t *userinfo);
-/* authorization.c - OSCAR authorization requests */
-void oscar_auth_sendrequest(PurpleConnection *gc, const char *name, const char *msg);
-void oscar_auth_sendrequest_menu(PurpleBlistNode *node, gpointer ignored);
-void oscar_auth_recvrequest(PurpleConnection *gc, gchar *name, gchar *nick, gchar *reason);
-void oscar_set_aim_permdeny(PurpleConnection *gc);
- unsigned long ico_me_len;
- unsigned long ico_me_csum;
- unsigned long ico_csum;
-void oscar_free_name_data(struct name_data *data);
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/p2p.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,264 +0,0 @@
- * @file p2p.h MSN P2P functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
- * For outgoing messages this is the number of bytes from buffer that
- * have already been sent out. For incoming messages this is the
- * number of bytes that have been written to buffer.
-#define P2P_PACKET_HEADER_SIZE (6 * 4 + 3 * 8)
- guint8 data_header_len;
- guint16 package_number;
- guint16 protocol_version;
- guint16 implementation_id;
- TF_FIRST = 0x01, /**< The first package. */
- TF_MSNOBJ = 0x04, /**< Payload contains binary data for MsnObject. */
- TF_FILE = 0x06 /**< Payload contains binary data. */
- P2P_HEADER_TLV_TYPE_PEER_INFO = 0x01, /**< Client peer info */
- P2P_HEADER_TLV_TYPE_ACK = 0x02, /**< ACK */
- P2P_HEADER_TLV_TYPE_NAK = 0x03 /**< NAK */
- P2P_DATA_TLV_REMAINING = 0x01, /**< Indicates the remaining data to transfer.*/
- P2P_PI_CAPS = 0x0000010f
-#define P2P_PACKET_FOOTER_SIZE (1 * 4)
- MSN_P2P_VERSION_ONE = 0,
- MSN_P2P_VERSION_TWO = 1,
- P2P_NO_FLAG = 0x0, /**< No flags specified */
- P2P_OUT_OF_ORDER = 0x1, /**< Chunk out-of-order */
- P2P_ACK = 0x2, /**< Acknowledgement */
- P2P_PENDING_INVITE = 0x4, /**< There is a pending invite */
- P2P_BINARY_ERROR = 0x8, /**< Error on the binary level */
- P2P_FILE = 0x10, /**< File */
- P2P_MSN_OBJ_DATA = 0x20, /**< MsnObject data */
- P2P_CLOSE = 0x40, /**< Close session */
- P2P_TLP_ERROR = 0x80, /**< Error at transport layer protocol */
- P2P_DC_HANDSHAKE = 0x100, /**< Direct Handshake */
- P2P_WLM2009_COMP = 0x1000000, /**< Compatibility with WLM 2009 */
- P2P_FILE_DATA = 0x1000030 /**< File transfer data */
- * http://msnpiki.msnfanatic.com/index.php/MSNC:P2Pv1_Headers#Flags
- * http://trac.kmess.org/changeset/ba04d0c825769d23370511031c47f6be75fe9b86
- P2P_APPID_SESSION = 0x0, /**< Negotiating session */
- P2P_APPID_OBJ = 0x1, /**< MsnObject (Display or Emoticon) */
- P2P_APPID_FILE = 0x2, /**< File transfer */
- P2P_APPID_EMOTE = 0xB, /**< CustomEmoticon */
- P2P_APPID_DISPLAY = 0xC /**< Display Image */
- P2P_OPCODE_NONE = 0x00,
-msn_p2p_info_new(MsnP2PVersion version);
-msn_p2p_info_dup(MsnP2PInfo *info);
-msn_p2p_info_free(MsnP2PInfo *info);
-msn_p2p_header_from_wire(MsnP2PInfo *info, const char *wire, size_t max_len);
-msn_p2p_header_to_wire(MsnP2PInfo *info, size_t *len);
-msn_p2p_footer_from_wire(MsnP2PInfo *info, const char *wire);
-msn_p2p_footer_to_wire(MsnP2PInfo *info, size_t *len);
-msn_p2p_info_to_string(MsnP2PInfo *info, GString *str);
-msn_p2p_msg_is_data(const MsnP2PInfo *info);
-msn_p2p_info_is_valid(MsnP2PInfo *info);
-msn_p2p_info_is_first(MsnP2PInfo *info);
-msn_p2p_info_is_final(MsnP2PInfo *info);
-msn_p2p_info_create_ack(MsnP2PInfo *old_info, MsnP2PInfo *new_info);
-msn_p2p_info_require_ack(MsnP2PInfo *info);
-msn_p2p_info_is_ack(MsnP2PInfo *info);
-msn_p2p_info_init_first(MsnP2PInfo *new_info, MsnP2PInfo *old_info);
-msn_p2p_info_get_session_id(MsnP2PInfo *info);
-msn_p2p_info_get_id(MsnP2PInfo *info);
-msn_p2p_info_get_offset(MsnP2PInfo *info);
-msn_p2p_info_get_total_size(MsnP2PInfo *info);
-msn_p2p_info_get_length(MsnP2PInfo *info);
-msn_p2p_info_get_flags(MsnP2PInfo *info);
-msn_p2p_info_get_ack_id(MsnP2PInfo *info);
-msn_p2p_info_get_ack_sub_id(MsnP2PInfo *info);
-msn_p2p_info_get_ack_size(MsnP2PInfo *info);
-msn_p2p_info_get_app_id(MsnP2PInfo *info);
-msn_p2p_info_set_session_id(MsnP2PInfo *info, guint32 session_id);
-msn_p2p_info_set_id(MsnP2PInfo *info, guint32 id);
-msn_p2p_info_set_offset(MsnP2PInfo *info, guint64 offset);
-msn_p2p_info_set_total_size(MsnP2PInfo *info, guint64 total_size);
-msn_p2p_info_set_length(MsnP2PInfo *info, guint32 length);
-msn_p2p_info_set_flags(MsnP2PInfo *info, guint32 flags);
-msn_p2p_info_set_ack_id(MsnP2PInfo *info, guint32 ack_id);
-msn_p2p_info_set_ack_sub_id(MsnP2PInfo *info, guint32 ack_sub_id);
-msn_p2p_info_set_ack_size(MsnP2PInfo *info, guint64 ack_size);
-msn_p2p_info_set_app_id(MsnP2PInfo *info, guint32 app_id);
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/page.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
- * @file page.h Paging functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-typedef struct _MsnPage MsnPage;
- * Creates a new, empty page.
-MsnPage *msn_page_new(void);
-void msn_page_destroy(MsnPage *page);
- * Generates the payload data of a page.
- * @param page The page.
- * @param ret_size The returned size of the payload.
- * @return The payload data of a page.
-char *msn_page_gen_payload(const MsnPage *page, size_t *ret_size);
- * Sets the body of a page.
- * @param page The page.
- * @param body The body of the page.
-void msn_page_set_body(MsnPage *page, const char *body);
- * Returns the body of the page.
- * @param page The page.
- * @return The body of the page.
-const char *msn_page_get_body(const MsnPage *page);
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/peer.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,282 +0,0 @@
- * Purple's oscar protocol plugin
- * This file is the legal property of its developers.
- * Please see the AUTHORS file distributed alongside this file.
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- * This library 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
- * Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-typedef struct _ChecksumData ChecksumData;
-typedef struct _OdcFrame OdcFrame;
-typedef struct _OftFrame OftFrame;
-typedef struct _ProxyFrame ProxyFrame;
-typedef struct _PeerConnection PeerConnection;
-#define PEER_CONNECTION_FLAG_INITIATED_BY_ME 0x0001
-#define PEER_CONNECTION_FLAG_APPROVED 0x0002
-#define PEER_CONNECTION_FLAG_TRIED_DIRECT 0x0004
-#define PEER_CONNECTION_FLAG_TRIED_INCOMING 0x0008
-#define PEER_CONNECTION_FLAG_TRIED_PROXY 0x0010
-#define PEER_CONNECTION_FLAG_IS_INCOMING 0x0020
-#define PEER_TYPE_PROMPT 0x0101 /* "I am going to send you this file, is that ok?" */
-#define PEER_TYPE_RESUMEACCEPT 0x0106 /* We are accepting the resume */
-#define PEER_TYPE_ACK 0x0202 /* "Yes, it is ok for you to send me that file" */
-#define PEER_TYPE_DONE 0x0204 /* "I received that file with no problems" or "I already have that file, great!" */
-#define PEER_TYPE_RESUME 0x0205 /* Resume transferring, sent by whoever receives */
-#define PEER_TYPE_RESUMEACK 0x0207 /* Our resume accept was ACKed */
-#define PEER_TYPE_GETFILE_REQUESTLISTING 0x1108 /* "I have a listing.txt file, do you want it?" */
-#define PEER_TYPE_GETFILE_RECEIVELISTING 0x1209 /* "Yes, please send me your listing.txt file" */
-#define PEER_TYPE_GETFILE_RECEIVEDLISTING 0x120a /* received corrupt listing.txt file? I'm just guessing about this one... */
-#define PEER_TYPE_GETFILE_ACKLISTING 0x120b /* "I received the listing.txt file successfully" */
-#define PEER_TYPE_GETFILE_REQUESTFILE 0x120c /* "Please send me this file" */
-#define AIM_PEER_PROXY_SERVER "ars.oscar.aol.com"
-#define ICQ_PEER_PROXY_SERVER "ars.icq.com"
-#define PEER_PROXY_PORT 5190 /* The port we should always connect to */
-#define PEER_PROXY_PACKET_VERSION 0x044a
-/* Thanks to Keith Lea and the Joust project for documenting these */
-#define PEER_PROXY_TYPE_ERROR 0x0001
-#define PEER_PROXY_TYPE_CREATE 0x0002
-#define PEER_PROXY_TYPE_CREATED 0x0003
-#define PEER_PROXY_TYPE_JOIN 0x0004
-#define PEER_PROXY_TYPE_READY 0x0005
- /* guchar magic[4]; */ /* 0 */
- /* guint16 length; */ /* 4 */
- guint16 subtype; /* 8 */
- guchar cookie[8]; /* 12 */
- /* guint32 payloadlength; */ /* 28 */
- guint16 encoding; /* 32 */
- guint16 flags; /* 38 */
- guchar bn[32]; /* 44 */
- ByteStream payload; /* 76 */
- /* guchar magic[4]; */ /* 0 */
- /* guint16 length; */ /* 4 */
- guchar cookie[8]; /* 8 */
- guint16 encrypt; /* 16 */
- guint16 compress; /* 18 */
- guint16 totfiles; /* 20 */
- guint16 filesleft; /* 22 */
- guint16 totparts; /* 24 */
- guint16 partsleft; /* 26 */
- guint32 totsize; /* 28 */
- guint32 modtime; /* 36 */
- guint32 checksum; /* 40 */
- guint32 rfrcsum; /* 44 */
- guint32 rfsize; /* 48 */
- guint32 cretime; /* 52 */
- guint32 rfcsum; /* 56 */
- guint32 nrecvd; /* 60 */
- guint32 recvcsum; /* 64 */
- guchar idstring[32]; /* 68 */
- guint8 flags; /* 100 */
- guint8 lnameoffset; /* 101 */
- guint8 lsizeoffset; /* 102 */
- guchar dummy[69]; /* 103 */
- guchar macfileinfo[16]; /* 172 */
- guint16 nencode; /* 188 */
- guint16 nlanguage; /* 190 */
- guchar *name; /* 192 */
- /* Payload? */ /* 256 */
- /* guint16 length; */ /* 0 */
- guint16 version; /* 2 */
- guint32 unknown; /* 6 */
- guint16 flags; /* 10 */
- ByteStream payload; /* 12 */
- guint16 lastrequestnumber;
- int flags; /**< Bitmask of PEER_CONNECTION_FLAG_ */
- time_t lastactivity; /**< Time of last transmit. */
- OscarDisconnectReason disconnect_reason;
- * A pointer to either an OdcFrame or an OftFrame.
- * This is only used when the peer connection is being established.
- PurpleProxyConnectData *client_connect_data;
- PurpleProxyConnectData *verified_connect_data;
- * This is only used when the peer connection is being established.
- PurpleNetworkListenData *listen_data;
- * This is only used when the peer connection is being established.
- guint connect_timeout_timer;
- * This is only used while the remote user is attempting to
- gssize header_received;
- guint8 proxy_header[12];
- gssize proxy_header_received;
- ByteStream buffer_incoming;
- PurpleCircBuffer *buffer_outgoing;
- guint watcher_incoming;
- guint watcher_outgoing;
- * IP address of the proxy server, if applicable.
- * IP address of the remote user from THEIR point of view.
- * IP address of the remote user from the oscar server's
- ChecksumData *checksum_data;
- guint sending_data_timer;
- * For all peer connections
- * Create a new PeerConnection structure and initialize it with some
- * @param type The type of the peer connection. One of
- * OSCAR_CAPABILITY_DIRECTIM or OSCAR_CAPABILITY_SENDFILE.
-PeerConnection *peer_connection_new(OscarData *od, guint64 type, const char *bn);
-void peer_connection_destroy(PeerConnection *conn, OscarDisconnectReason reason, const gchar *error_message);
-void peer_connection_schedule_destroy(PeerConnection *conn, OscarDisconnectReason reason, const gchar *error_message);
-PeerConnection *peer_connection_find_by_type(OscarData *od, const char *bn, guint64 type);
-PeerConnection *peer_connection_find_by_cookie(OscarData *od, const char *bn, const guchar *cookie);
-void peer_connection_listen_cb(gpointer data, gint source, PurpleInputCondition cond);
-void peer_connection_recv_cb(gpointer data, gint source, PurpleInputCondition cond);
-void peer_connection_send(PeerConnection *conn, ByteStream *bs);
-void peer_connection_trynext(PeerConnection *conn);
-void peer_connection_finalize_connection(PeerConnection *conn);
-void peer_connection_propose(OscarData *od, guint64 type, const char *bn);
-void peer_connection_got_proposition(OscarData *od, const gchar *bn, const gchar *message, IcbmArgsCh2 *args);
-void peer_odc_close(PeerConnection *conn);
-void peer_odc_recv_frame(PeerConnection *conn, ByteStream *bs);
-void peer_odc_send_cookie(PeerConnection *conn);
-void peer_odc_send_typing(PeerConnection *conn, PurpleTypingState typing);
-void peer_odc_send_im(PeerConnection *conn, const char *msg, int len, int encoding, gboolean autoreply);
-void peer_oft_close(PeerConnection *conn);
-void peer_oft_recv_frame(PeerConnection *conn, ByteStream *bs);
-void peer_oft_send_prompt(PeerConnection *conn);
-void peer_oft_checksum_destroy(ChecksumData *checksum_data);
-/* Xfer callbacks for receiving a file */
-void peer_oft_recvcb_init(PurpleXfer *xfer);
-void peer_oft_recvcb_end(PurpleXfer *xfer);
-void peer_oft_recvcb_ack_recv(PurpleXfer *xfer, const guchar *buffer, size_t size);
-/* Xfer callbacks for sending a file */
-void peer_oft_sendcb_init(PurpleXfer *xfer);
-void peer_oft_sendcb_ack(PurpleXfer *xfer, const guchar *buffer, size_t size);
-/* Xfer callbacks for both sending and receiving */
-void peer_oft_cb_generic_cancel(PurpleXfer *xfer);
-void peer_proxy_connection_established_cb(gpointer data, gint source, const gchar *error_message);
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/plugin.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,740 +0,0 @@
- * @file plugin.h Plugin API
- * @see @ref plugin-signals
- * @see @ref plugin-i18n
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_PLUGIN_H_
-#define _PURPLE_PLUGIN_H_
-/** @copydoc _PurplePlugin */
-typedef struct _PurplePlugin PurplePlugin;
-/** @copydoc _PurplePluginInfo */
-typedef struct _PurplePluginInfo PurplePluginInfo;
-/** @copydoc _PurplePluginUiInfo */
-typedef struct _PurplePluginUiInfo PurplePluginUiInfo;
-/** @copydoc _PurplePluginLoaderInfo */
-typedef struct _PurplePluginLoaderInfo PurplePluginLoaderInfo;
-/** @copydoc _PurplePluginAction */
-typedef struct _PurplePluginAction PurplePluginAction;
-typedef int PurplePluginPriority; /**< Plugin priority. */
- PURPLE_PLUGIN_UNKNOWN = -1, /**< Unknown type. */
- PURPLE_PLUGIN_STANDARD = 0, /**< Standard plugin. */
- PURPLE_PLUGIN_LOADER, /**< Loader plugin. */
- PURPLE_PLUGIN_PROTOCOL /**< Protocol plugin. */
-#define PURPLE_PRIORITY_DEFAULT 0
-#define PURPLE_PRIORITY_HIGHEST 9999
-#define PURPLE_PRIORITY_LOWEST -9999
-#define PURPLE_PLUGIN_FLAG_INVISIBLE 0x01
-#define PURPLE_PLUGIN_MAGIC 5 /* once we hit 6.0.0 I think we can remove this */
- * Detailed information about a plugin.
- * This is used in the version 2.0 API and up.
-struct _PurplePluginInfo
- unsigned int major_version;
- unsigned int minor_version;
- PurplePluginPriority priority;
- * If a plugin defines a 'load' function, and it returns FALSE,
- * then the plugin will not be loaded.
- gboolean (*load)(PurplePlugin *plugin);
- gboolean (*unload)(PurplePlugin *plugin);
- void (*destroy)(PurplePlugin *plugin);
- void *ui_info; /**< Used only by UI-specific plugins to build a preference screen with a custom UI */
- PurplePluginUiInfo *prefs_info; /**< Used by any plugin to display preferences. If #ui_info has been specified, this will be ignored. */
- * This callback has a different use depending on whether this
- * plugin type is PURPLE_PLUGIN_STANDARD or PURPLE_PLUGIN_PROTOCOL.
- * If PURPLE_PLUGIN_STANDARD then the list of actions will show up
- * in the Tools menu, under a submenu with the name of the plugin.
- * context will be NULL.
- * If PURPLE_PLUGIN_PROTOCOL then the list of actions will show up
- * in the Accounts menu, under a submenu with the name of the
- * account. context will be set to the PurpleConnection for that
- * account. This callback will only be called for online accounts.
- GList *(*actions)(PurplePlugin *plugin, gpointer context);
- void (*_purple_reserved1)(void);
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
- void (*_purple_reserved4)(void);
- * Extra information for loader plugins.
-struct _PurplePluginLoaderInfo
- gboolean (*probe)(PurplePlugin *plugin);
- gboolean (*load)(PurplePlugin *plugin);
- gboolean (*unload)(PurplePlugin *plugin);
- void (*destroy)(PurplePlugin *plugin);
- void (*_purple_reserved1)(void);
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
- void (*_purple_reserved4)(void);
- gboolean native_plugin; /**< Native C plugin. */
- gboolean loaded; /**< The loaded state. */
- void *handle; /**< The module handle. */
- char *path; /**< The path to the plugin. */
- PurplePluginInfo *info; /**< The plugin information. */
- void *ipc_data; /**< IPC data. */
- void *extra; /**< Plugin-specific data. */
- gboolean unloadable; /**< Unloadable */
- GList *dependent_plugins; /**< Plugins depending on this */
- void (*_purple_reserved1)(void);
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
- void (*_purple_reserved4)(void);
-#define PURPLE_PLUGIN_LOADER_INFO(plugin) \
- ((PurplePluginLoaderInfo *)(plugin)->info->extra_info)
-struct _PurplePluginUiInfo {
- PurplePluginPrefFrame *(*get_plugin_pref_frame)(PurplePlugin *plugin);
- int page_num; /**< Reserved */
- PurplePluginPrefFrame *frame; /**< Reserved */
- void (*_purple_reserved1)(void);
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
- void (*_purple_reserved4)(void);
-#define PURPLE_PLUGIN_HAS_PREF_FRAME(plugin) \
- ((plugin)->info != NULL && (plugin)->info->prefs_info != NULL)
-#define PURPLE_PLUGIN_UI_INFO(plugin) \
- ((PurplePluginUiInfo*)(plugin)->info->prefs_info)
- * The structure used in the actions member of PurplePluginInfo
-struct _PurplePluginAction {
- void (*callback)(PurplePluginAction *);
- /** set to the owning plugin */
- /** NULL for plugin actions menu, set to the PurpleConnection for
- account actions menu */
-#define PURPLE_PLUGIN_HAS_ACTIONS(plugin) \
- ((plugin)->info != NULL && (plugin)->info->actions != NULL)
-#define PURPLE_PLUGIN_ACTIONS(plugin, context) \
- (PURPLE_PLUGIN_HAS_ACTIONS(plugin)? \
- (plugin)->info->actions(plugin, context): NULL)
- * Handles the initialization of modules.
-#if !defined(PURPLE_PLUGINS) || defined(PURPLE_STATIC_PRPL)
-# define _FUNC_NAME(x) purple_init_##x##_plugin
-# define PURPLE_INIT_PLUGIN(pluginname, initfunc, plugininfo) \
- gboolean _FUNC_NAME(pluginname)(void);\
- gboolean _FUNC_NAME(pluginname)(void) { \
- PurplePlugin *plugin = purple_plugin_new(TRUE, NULL); \
- plugin->info = &(plugininfo); \
- purple_plugin_load((plugin)); \
- return purple_plugin_register(plugin); \
-#else /* PURPLE_PLUGINS && !PURPLE_STATIC_PRPL */
-# define PURPLE_INIT_PLUGIN(pluginname, initfunc, plugininfo) \
- G_MODULE_EXPORT gboolean purple_init_plugin(PurplePlugin *plugin); \
- G_MODULE_EXPORT gboolean purple_init_plugin(PurplePlugin *plugin) { \
- plugin->info = &(plugininfo); \
- return purple_plugin_register(plugin); \
-/**************************************************************************/
-/**************************************************************************/
- * Creates a new plugin structure.
- * @param native Whether or not the plugin is native.
- * @param path The path to the plugin, or @c NULL if statically compiled.
- * @return A new PurplePlugin structure.
-PurplePlugin *purple_plugin_new(gboolean native, const char *path);
- * Probes a plugin, retrieving the information on it and adding it to the
- * list of available plugins.
- * @param filename The plugin's filename.
- * @return The plugin handle.
- * @see purple_plugin_load()
- * @see purple_plugin_destroy()
-PurplePlugin *purple_plugin_probe(const char *filename);
- * Registers a plugin and prepares it for loading.
- * This shouldn't be called by anything but the internal module code.
- * Plugins should use the PURPLE_INIT_PLUGIN() macro to register themselves
- * @param plugin The plugin to register.
- * @return @c TRUE if the plugin was registered successfully. Otherwise
- * @c FALSE is returned (this happens if the plugin does not contain
- * the necessary information).
-gboolean purple_plugin_register(PurplePlugin *plugin);
- * Attempts to load a previously probed plugin.
- * @param plugin The plugin to load.
- * @return @c TRUE if successful, or @c FALSE otherwise.
- * @see purple_plugin_reload()
- * @see purple_plugin_unload()
-gboolean purple_plugin_load(PurplePlugin *plugin);
- * Unloads the specified plugin.
- * @param plugin The plugin handle.
- * @return @c TRUE if successful, or @c FALSE otherwise.
- * @see purple_plugin_load()
- * @see purple_plugin_reload()
-gboolean purple_plugin_unload(PurplePlugin *plugin);
- * This function adds the plugin to a list of plugins to "disable at the next
- * startup" by excluding said plugins from the list of plugins to save. The
- * UI needs to call purple_plugins_save_loaded() after calling this for it
-void purple_plugin_disable(PurplePlugin *plugin);
- * @param plugin The old plugin handle.
- * @return @c TRUE if successful, or @c FALSE otherwise.
- * @see purple_plugin_load()
- * @see purple_plugin_unload()
-gboolean purple_plugin_reload(PurplePlugin *plugin);
- * Unloads a plugin and destroys the structure from memory.
- * @param plugin The plugin handle.
-void purple_plugin_destroy(PurplePlugin *plugin);
- * Returns whether or not a plugin is currently loaded.
- * @param plugin The plugin.
- * @return @c TRUE if loaded, or @c FALSE otherwise.
-gboolean purple_plugin_is_loaded(const PurplePlugin *plugin);
- * Returns whether or not a plugin is unloadable.
- * If this returns @c TRUE, the plugin is guaranteed to not
- * be loadable. However, a return value of @c FALSE does not
- * guarantee the plugin is loadable.
- * @param plugin The plugin.
- * @return @c TRUE if the plugin is known to be unloadable,\
-gboolean purple_plugin_is_unloadable(const PurplePlugin *plugin);
- * Returns a plugin's id.
- * @param plugin The plugin.
- * @return The plugin's id.
-const gchar *purple_plugin_get_id(const PurplePlugin *plugin);
- * Returns a plugin's name.
- * @param plugin The plugin.
- * @return THe name of the plugin, or @c NULL.
-const gchar *purple_plugin_get_name(const PurplePlugin *plugin);
- * Returns a plugin's version.
- * @param plugin The plugin.
- * @return The plugin's version or @c NULL.
-const gchar *purple_plugin_get_version(const PurplePlugin *plugin);
- * Returns a plugin's summary.
- * @param plugin The plugin.
- * @return The plugin's summary.
-const gchar *purple_plugin_get_summary(const PurplePlugin *plugin);
- * Returns a plugin's description.
- * @param plugin The plugin.
- * @return The plugin's description.
-const gchar *purple_plugin_get_description(const PurplePlugin *plugin);
- * Returns a plugin's author.
- * @param plugin The plugin.
- * @return The plugin's author.
-const gchar *purple_plugin_get_author(const PurplePlugin *plugin);
- * Returns a plugin's homepage.
- * @param plugin The plugin.
- * @return The plugin's homepage.
-const gchar *purple_plugin_get_homepage(const PurplePlugin *plugin);
-/**************************************************************************/
-/** @name Plugin IPC API */
-/**************************************************************************/
- * Registers an IPC command in a plugin.
- * @param plugin The plugin to register the command with.
- * @param command The name of the command.
- * @param func The function to execute.
- * @param marshal The marshalling function.
- * @param ret_value The return value type.
- * @param num_params The number of parameters.
- * @param ... The parameter types.
- * @return TRUE if the function was registered successfully, or
-gboolean purple_plugin_ipc_register(PurplePlugin *plugin, const char *command,
- PurpleSignalMarshalFunc marshal,
- PurpleValue *ret_value, int num_params, ...);
- * Unregisters an IPC command in a plugin.
- * @param plugin The plugin to unregister the command from.
- * @param command The name of the command.
-void purple_plugin_ipc_unregister(PurplePlugin *plugin, const char *command);
- * Unregisters all IPC commands in a plugin.
- * @param plugin The plugin to unregister the commands from.
-void purple_plugin_ipc_unregister_all(PurplePlugin *plugin);
- * Returns a list of value types used for an IPC command.
- * @param plugin The plugin.
- * @param command The name of the command.
- * @param ret_value The returned return value.
- * @param num_params The returned number of parameters.
- * @param params The returned list of parameters.
- * @return TRUE if the command was found, or FALSE otherwise.
-gboolean purple_plugin_ipc_get_params(PurplePlugin *plugin, const char *command,
- PurpleValue **ret_value, int *num_params,
- PurpleValue ***params);
- * Executes an IPC command.
- * @param plugin The plugin to execute the command on.
- * @param command The name of the command.
- * @param ok TRUE if the call was successful, or FALSE otherwise.
- * @param ... The parameters to pass.
- * @return The return value, which will be NULL if the command doesn't
-void *purple_plugin_ipc_call(PurplePlugin *plugin, const char *command,
-/**************************************************************************/
-/** @name Plugins API */
-/**************************************************************************/
- * Add a new directory to search for plugins
- * @param path The new search path.
-void purple_plugins_add_search_path(const char *path);
- * Returns a list of plugin search paths.
- * @constreturn A list of searched paths.
-GList *purple_plugins_get_search_paths(void);
- * Unloads all loaded plugins.
-void purple_plugins_unload_all(void);
- * Unloads all plugins of a specific type.
-void purple_plugins_unload(PurplePluginType type);
- * Destroys all registered plugins.
-void purple_plugins_destroy_all(void);
- * Saves the list of loaded plugins to the specified preference key
- * @param key The preference key to save the list of plugins to.
-void purple_plugins_save_loaded(const char *key);
- * Attempts to load all the plugins in the specified preference key
- * that were loaded when purple last quit.
- * @param key The preference key containing the list of plugins.
-void purple_plugins_load_saved(const char *key);
- * Probes for plugins in the registered module paths.
- * @param ext The extension type to probe for, or @c NULL for all.
- * @see purple_plugin_set_probe_path()
-void purple_plugins_probe(const char *ext);
- * Returns whether or not plugin support is enabled.
- * @return TRUE if plugin support is enabled, or FALSE otherwise.
-gboolean purple_plugins_enabled(void);
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_PLUGIN_C_)
- * Registers a function that will be called when probing is finished.
- * @param func The callback function.
- * @param data Data to pass to the callback.
- * @deprecated If you need this, ask for a plugin-probe signal to be added.
-void purple_plugins_register_probe_notify_cb(void (*func)(void *), void *data);
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_PLUGIN_C_)
- * Unregisters a function that would be called when probing is finished.
- * @param func The callback function.
- * @deprecated If you need this, ask for a plugin-probe signal to be added.
-void purple_plugins_unregister_probe_notify_cb(void (*func)(void *));
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_PLUGIN_C_)
- * Registers a function that will be called when a plugin is loaded.
- * @param func The callback function.
- * @param data Data to pass to the callback.
- * @deprecated Use the plugin-load signal instead.
-void purple_plugins_register_load_notify_cb(void (*func)(PurplePlugin *, void *),
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_PLUGIN_C_)
- * Unregisters a function that would be called when a plugin is loaded.
- * @param func The callback function.
- * @deprecated Use the plugin-load signal instead.
-void purple_plugins_unregister_load_notify_cb(void (*func)(PurplePlugin *, void *));
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_PLUGIN_C_)
- * Registers a function that will be called when a plugin is unloaded.
- * @param func The callback function.
- * @param data Data to pass to the callback.
- * @deprecated Use the plugin-unload signal instead.
-void purple_plugins_register_unload_notify_cb(void (*func)(PurplePlugin *, void *),
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_PLUGIN_C_)
- * Unregisters a function that would be called when a plugin is unloaded.
- * @param func The callback function.
- * @deprecated Use the plugin-unload signal instead.
-void purple_plugins_unregister_unload_notify_cb(void (*func)(PurplePlugin *,
- * Finds a plugin with the specified name.
- * @param name The plugin name.
- * @return The plugin if found, or @c NULL if not found.
-PurplePlugin *purple_plugins_find_with_name(const char *name);
- * Finds a plugin with the specified filename (filename with a path).
- * @param filename The plugin filename.
- * @return The plugin if found, or @c NULL if not found.
-PurplePlugin *purple_plugins_find_with_filename(const char *filename);
- * Finds a plugin with the specified basename (filename without a path).
- * @param basename The plugin basename.
- * @return The plugin if found, or @c NULL if not found.
-PurplePlugin *purple_plugins_find_with_basename(const char *basename);
- * Finds a plugin with the specified plugin ID.
- * @param id The plugin ID.
- * @return The plugin if found, or @c NULL if not found.
-PurplePlugin *purple_plugins_find_with_id(const char *id);
- * Returns a list of all loaded plugins.
- * @constreturn A list of all loaded plugins.
-GList *purple_plugins_get_loaded(void);
- * Returns a list of all valid protocol plugins. A protocol
- * plugin is considered invalid if it does not contain the call
- * to the PURPLE_INIT_PLUGIN() macro, or if it was compiled
- * against an incompatable API version.
- * @constreturn A list of all protocol plugins.
-GList *purple_plugins_get_protocols(void);
- * Returns a list of all plugins, whether loaded or not.
- * @constreturn A list of all plugins.
-GList *purple_plugins_get_all(void);
-/**************************************************************************/
-/** @name Plugins SubSytem API */
-/**************************************************************************/
- * Returns the plugin subsystem handle.
- * @return The plugin sybsystem handle.
-void *purple_plugins_get_handle(void);
- * Initializes the plugin subsystem
-void purple_plugins_init(void);
- * Uninitializes the plugin subsystem
-void purple_plugins_uninit(void);
- * Allocates and returns a new PurplePluginAction.
- * @param label The description of the action to show to the user.
- * @param callback The callback to call when the user selects this action.
-PurplePluginAction *purple_plugin_action_new(const char* label, void (*callback)(PurplePluginAction *));
- * Frees a PurplePluginAction
- * @param action The PurplePluginAction to free.
-void purple_plugin_action_free(PurplePluginAction *action);
-#endif /* _PURPLE_PLUGIN_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/pluginpref.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,269 +0,0 @@
- * @file pluginpref.h Plugin Preferences API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_PLUGINPREF_H_
-#define _PURPLE_PLUGINPREF_H_
-typedef struct _PurplePluginPrefFrame PurplePluginPrefFrame;
-typedef struct _PurplePluginPref PurplePluginPref;
- * String format for preferences.
- PURPLE_STRING_FORMAT_TYPE_NONE = 0, /**< The string is plain text. */
- PURPLE_STRING_FORMAT_TYPE_MULTILINE = 1 << 0, /**< The string can have newlines. */
- PURPLE_STRING_FORMAT_TYPE_HTML = 1 << 1 /**< The string can be in HTML. */
-} PurpleStringFormatType;
- PURPLE_PLUGIN_PREF_NONE,
- PURPLE_PLUGIN_PREF_CHOICE,
- PURPLE_PLUGIN_PREF_INFO, /**< no-value label */
- PURPLE_PLUGIN_PREF_STRING_FORMAT /**< The preference has a string value. */
-/**************************************************************************/
-/** @name Plugin Preference API */
-/**************************************************************************/
- * Create a new plugin preference frame
- * @return a new PurplePluginPrefFrame
-PurplePluginPrefFrame *purple_plugin_pref_frame_new(void);
- * Destroy a plugin preference frame
- * @param frame The plugin frame to destroy
-void purple_plugin_pref_frame_destroy(PurplePluginPrefFrame *frame);
- * Adds a plugin preference to a plugin preference frame
- * @param frame The plugin frame to add the preference to
- * @param pref The preference to add to the frame
-void purple_plugin_pref_frame_add(PurplePluginPrefFrame *frame, PurplePluginPref *pref);
- * Get the plugin preferences from a plugin preference frame
- * @param frame The plugin frame to get the plugin preferences from
- * @constreturn a GList of plugin preferences
-GList *purple_plugin_pref_frame_get_prefs(PurplePluginPrefFrame *frame);
- * Create a new plugin preference
- * @return a new PurplePluginPref
-PurplePluginPref *purple_plugin_pref_new(void);
- * Create a new plugin preference with name
- * @param name The name of the pref
- * @return a new PurplePluginPref
-PurplePluginPref *purple_plugin_pref_new_with_name(const char *name);
- * Create a new plugin preference with label
- * @param label The label to be displayed
- * @return a new PurplePluginPref
-PurplePluginPref *purple_plugin_pref_new_with_label(const char *label);
- * Create a new plugin preference with name and label
- * @param name The name of the pref
- * @param label The label to be displayed
- * @return a new PurplePluginPref
-PurplePluginPref *purple_plugin_pref_new_with_name_and_label(const char *name, const char *label);
- * Destroy a plugin preference
- * @param pref The preference to destroy
-void purple_plugin_pref_destroy(PurplePluginPref *pref);
- * Set a plugin pref name
- * @param pref The plugin pref
- * @param name The name of the pref
-void purple_plugin_pref_set_name(PurplePluginPref *pref, const char *name);
- * Get a plugin pref name
- * @param pref The plugin pref
- * @return The name of the pref
-const char *purple_plugin_pref_get_name(PurplePluginPref *pref);
- * Set a plugin pref label
- * @param pref The plugin pref
- * @param label The label for the plugin pref
-void purple_plugin_pref_set_label(PurplePluginPref *pref, const char *label);
- * Get a plugin pref label
- * @param pref The plugin pref
- * @return The label for the plugin pref
-const char *purple_plugin_pref_get_label(PurplePluginPref *pref);
- * Set the bounds for an integer pref
- * @param pref The plugin pref
- * @param min The min value
- * @param max The max value
-void purple_plugin_pref_set_bounds(PurplePluginPref *pref, int min, int max);
- * Get the bounds for an integer pref
- * @param pref The plugin pref
- * @param min The min value
- * @param max The max value
-void purple_plugin_pref_get_bounds(PurplePluginPref *pref, int *min, int *max);
- * Set the type of a plugin pref
- * @param pref The plugin pref
-void purple_plugin_pref_set_type(PurplePluginPref *pref, PurplePluginPrefType type);
- * Get the type of a plugin pref
- * @param pref The plugin pref
-PurplePluginPrefType purple_plugin_pref_get_type(PurplePluginPref *pref);
- * Set the choices for a choices plugin pref
- * @param pref The plugin pref
- * @param label The label for the choice
- * @param choice A gpointer of the choice
-void purple_plugin_pref_add_choice(PurplePluginPref *pref, const char *label, gpointer choice);
- * Get the choices for a choices plugin pref
- * @param pref The plugin pref
- * @constreturn GList of the choices
-GList *purple_plugin_pref_get_choices(PurplePluginPref *pref);
- * Set the max length for a string plugin pref
- * @param pref The plugin pref
- * @param max_length The max length of the string
-void purple_plugin_pref_set_max_length(PurplePluginPref *pref, unsigned int max_length);
- * Get the max length for a string plugin pref
- * @param pref The plugin pref
- * @return the max length
-unsigned int purple_plugin_pref_get_max_length(PurplePluginPref *pref);
- * Sets the masking of a string plugin pref
- * @param pref The plugin pref
- * @param mask The value to set
-void purple_plugin_pref_set_masked(PurplePluginPref *pref, gboolean mask);
- * Gets the masking of a string plugin pref
- * @param pref The plugin pref
-gboolean purple_plugin_pref_get_masked(PurplePluginPref *pref);
- * Sets the format type for a formattable-string plugin pref. You need to set the
- * pref type to PURPLE_PLUGIN_PREF_STRING_FORMAT first before setting the format.
- * @param pref The plugin pref
- * @param format The format of the string
-void purple_plugin_pref_set_format_type(PurplePluginPref *pref, PurpleStringFormatType format);
- * Gets the format type of the formattable-string plugin pref.
- * @param pref The plugin pref
- * @return The format of the pref
-PurpleStringFormatType purple_plugin_pref_get_format_type(PurplePluginPref *pref);
-#endif /* _PURPLE_PLUGINPREF_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/pounce.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,389 +0,0 @@
- * @file pounce.h Buddy Pounce API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_POUNCE_H_
-#define _PURPLE_POUNCE_H_
-typedef struct _PurplePounce PurplePounce;
- * Events that trigger buddy pounces.
- PURPLE_POUNCE_NONE = 0x000, /**< No events. */
- PURPLE_POUNCE_SIGNON = 0x001, /**< The buddy signed on. */
- PURPLE_POUNCE_SIGNOFF = 0x002, /**< The buddy signed off. */
- PURPLE_POUNCE_AWAY = 0x004, /**< The buddy went away. */
- PURPLE_POUNCE_AWAY_RETURN = 0x008, /**< The buddy returned from away. */
- PURPLE_POUNCE_IDLE = 0x010, /**< The buddy became idle. */
- PURPLE_POUNCE_IDLE_RETURN = 0x020, /**< The buddy is no longer idle. */
- PURPLE_POUNCE_TYPING = 0x040, /**< The buddy started typing. */
- PURPLE_POUNCE_TYPED = 0x080, /**< The buddy has entered text. */
- PURPLE_POUNCE_TYPING_STOPPED = 0x100, /**< The buddy stopped typing. */
- PURPLE_POUNCE_MESSAGE_RECEIVED = 0x200 /**< The buddy sent a message */
- PURPLE_POUNCE_OPTION_NONE = 0x00, /**< No Option */
- PURPLE_POUNCE_OPTION_AWAY = 0x01 /**< Pounce only when away */
-/** A pounce callback. */
-typedef void (*PurplePounceCb)(PurplePounce *, PurplePounceEvent, void *);
- * A buddy pounce structure.
- * Buddy pounces are actions triggered by a buddy-related event. For
- * example, a sound can be played or an IM window opened when a buddy
- * signs on or returns from away. Such responses are handled in the
- * UI. The events themselves are done in the core.
- char *ui_type; /**< The type of UI. */
- PurplePounceEvent events; /**< The event(s) to pounce on. */
- PurplePounceOption options; /**< The pounce options */
- PurpleAccount *pouncer; /**< The user who is pouncing. */
- char *pouncee; /**< The buddy to pounce on. */
- GHashTable *actions; /**< The registered actions. */
- gboolean save; /**< Whether or not the pounce should
- be saved after activation. */
- void *data; /**< Pounce-specific data. */
-/**************************************************************************/
-/** @name Buddy Pounce API */
-/**************************************************************************/
- * Creates a new buddy pounce.
- * @param ui_type The type of UI the pounce is for.
- * @param pouncer The account that will pounce.
- * @param pouncee The buddy to pounce on.
- * @param event The event(s) to pounce on.
- * @param option Pounce options.
- * @return The new buddy pounce structure.
-PurplePounce *purple_pounce_new(const char *ui_type, PurpleAccount *pouncer,
- const char *pouncee, PurplePounceEvent event,
- PurplePounceOption option);
- * Destroys a buddy pounce.
- * @param pounce The buddy pounce.
-void purple_pounce_destroy(PurplePounce *pounce);
- * Destroys all buddy pounces for the account
- * @param account The account to remove all pounces from.
-void purple_pounce_destroy_all_by_account(PurpleAccount *account);
- * Destroys all buddy pounces for a buddy
- * @param buddy The buddy whose pounces are to be removed
-void purple_pounce_destroy_all_by_buddy(PurpleBuddy *buddy);
- * Sets the events a pounce should watch for.
- * @param pounce The buddy pounce.
- * @param events The events to watch for.
-void purple_pounce_set_events(PurplePounce *pounce, PurplePounceEvent events);
- * Sets the options for a pounce.
- * @param pounce The buddy pounce.
- * @param options The options for the pounce.
-void purple_pounce_set_options(PurplePounce *pounce, PurplePounceOption options);
- * Sets the account that will do the pouncing.
- * @param pounce The buddy pounce.
- * @param pouncer The account that will pounce.
-void purple_pounce_set_pouncer(PurplePounce *pounce, PurpleAccount *pouncer);
- * Sets the buddy a pounce should pounce on.
- * @param pounce The buddy pounce.
- * @param pouncee The buddy to pounce on.
-void purple_pounce_set_pouncee(PurplePounce *pounce, const char *pouncee);
- * Sets whether or not the pounce should be saved after execution.
- * @param pounce The buddy pounce.
- * @param save @c TRUE if the pounce should be saved, or @c FALSE otherwise.
-void purple_pounce_set_save(PurplePounce *pounce, gboolean save);
- * Registers an action type for the pounce.
- * @param pounce The buddy pounce.
- * @param name The action name.
-void purple_pounce_action_register(PurplePounce *pounce, const char *name);
- * Enables or disables an action for a pounce.
- * @param pounce The buddy pounce.
- * @param action The name of the action.
- * @param enabled The enabled state.
-void purple_pounce_action_set_enabled(PurplePounce *pounce, const char *action,
- * Sets a value for an attribute in an action.
- * If @a value is @c NULL, the value will be unset.
- * @param pounce The buddy pounce.
- * @param action The action name.
- * @param attr The attribute name.
- * @param value The value.
-void purple_pounce_action_set_attribute(PurplePounce *pounce, const char *action,
- const char *attr, const char *value);
- * Sets the pounce-specific data.
- * @param pounce The buddy pounce.
- * @param data Data specific to the pounce.
-void purple_pounce_set_data(PurplePounce *pounce, void *data);
- * Returns the events a pounce should watch for.
- * @param pounce The buddy pounce.
- * @return The events the pounce is watching for.
-PurplePounceEvent purple_pounce_get_events(const PurplePounce *pounce);
- * Returns the options for a pounce.
- * @param pounce The buddy pounce.
- * @return The options for the pounce.
-PurplePounceOption purple_pounce_get_options(const PurplePounce *pounce);
- * Returns the account that will do the pouncing.
- * @param pounce The buddy pounce.
- * @return The account that will pounce.
-PurpleAccount *purple_pounce_get_pouncer(const PurplePounce *pounce);
- * Returns the buddy a pounce should pounce on.
- * @param pounce The buddy pounce.
- * @return The buddy to pounce on.
-const char *purple_pounce_get_pouncee(const PurplePounce *pounce);
- * Returns whether or not the pounce should save after execution.
- * @param pounce The buddy pounce.
- * @return @c TRUE if the pounce should be saved after execution, or
-gboolean purple_pounce_get_save(const PurplePounce *pounce);
- * Returns whether or not an action is enabled.
- * @param pounce The buddy pounce.
- * @param action The action name.
- * @return @c TRUE if the action is enabled, or @c FALSE otherwise.
-gboolean purple_pounce_action_is_enabled(const PurplePounce *pounce,
- * Returns the value for an attribute in an action.
- * @param pounce The buddy pounce.
- * @param action The action name.
- * @param attr The attribute name.
- * @return The attribute value, if it exists, or @c NULL.
-const char *purple_pounce_action_get_attribute(const PurplePounce *pounce,
- * Returns the pounce-specific data.
- * @param pounce The buddy pounce.
- * @return The data specific to a buddy pounce.
-void *purple_pounce_get_data(const PurplePounce *pounce);
- * Executes a pounce with the specified pouncer, pouncee, and event type.
- * @param pouncer The account that will do the pouncing.
- * @param pouncee The buddy that is being pounced.
- * @param events The events that triggered the pounce.
-void purple_pounce_execute(const PurpleAccount *pouncer, const char *pouncee,
- PurplePounceEvent events);
-/**************************************************************************/
-/** @name Buddy Pounce Subsystem API */
-/**************************************************************************/
- * Finds a pounce with the specified event(s) and buddy.
- * @param pouncer The account to match against.
- * @param pouncee The buddy to match against.
- * @param events The event(s) to match against.
- * @return The pounce if found, or @c NULL otherwise.
-PurplePounce *purple_find_pounce(const PurpleAccount *pouncer,
- const char *pouncee, PurplePounceEvent events);
- * @return @c TRUE if the pounces could be loaded.
-gboolean purple_pounces_load(void);
- * Registers a pounce handler for a UI.
- * @param ui The UI name.
- * @param cb The callback function.
- * @param new_pounce The function called when a pounce is created.
- * @param free_pounce The function called when a pounce is freed.
-void purple_pounces_register_handler(const char *ui, PurplePounceCb cb,
- void (*new_pounce)(PurplePounce *pounce),
- void (*free_pounce)(PurplePounce *pounce));
- * Unregisters a pounce handle for a UI.
- * @param ui The UI name.
-void purple_pounces_unregister_handler(const char *ui);
- * Returns a list of all registered buddy pounces.
- * @constreturn The list of buddy pounces.
-GList *purple_pounces_get_all(void);
- * Returns a list of registered buddy pounces for the ui-type.
- * @param ui The ID of the UI using the core.
- * @return The list of buddy pounces. The list should be freed by
- * the caller when it's no longer used.
-GList *purple_pounces_get_all_for_ui(const char *ui);
- * Returns the buddy pounce subsystem handle.
- * @return The subsystem handle.
-void *purple_pounces_get_handle(void);
- * Initializes the pounces subsystem.
-void purple_pounces_init(void);
- * Uninitializes the pounces subsystem.
-void purple_pounces_uninit(void);
-#endif /* _PURPLE_POUNCE_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/prefs.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,371 +0,0 @@
- * @file prefs.h Prefs API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_PREFS_H_
-#define _PURPLE_PREFS_H_
- * Preference data types.
-typedef enum _PurplePrefType
- PURPLE_PREF_NONE, /**< No type. */
- PURPLE_PREF_BOOLEAN, /**< Boolean. */
- PURPLE_PREF_INT, /**< Integer. */
- PURPLE_PREF_STRING, /**< String. */
- PURPLE_PREF_STRING_LIST, /**< List of strings. */
- PURPLE_PREF_PATH, /**< Path. */
- PURPLE_PREF_PATH_LIST /**< List of paths. */
- * The type of callbacks for preference changes.
- * @param name the name of the preference which has changed.
- * @param type the type of the preferenced named @a name
- * @param val the new value of the preferencs; should be cast to the correct
- * type. For instance, to recover the value of a #PURPLE_PREF_INT
- * preference, use <tt>GPOINTER_TO_INT(val)</tt>. Alternatively,
- * just call purple_prefs_get_int(), purple_prefs_get_string_list()
- * @param data Arbitrary data specified when the callback was connected with
- * purple_prefs_connect_callback().
- * @see purple_prefs_connect_callback()
-typedef void (*PurplePrefCallback) (const char *name, PurplePrefType type,
- gconstpointer val, gpointer data);
-/**************************************************************************/
- Preferences are named according to a directory-like structure.
- Example: "/plugins/core/potato/is_from_idaho" (probably a boolean) */
-/**************************************************************************/
- * Returns the prefs subsystem handle.
- * @return The prefs subsystem handle.
-void *purple_prefs_get_handle(void);
- * Initialize core prefs
-void purple_prefs_init(void);
- * Uninitializes the prefs subsystem.
-void purple_prefs_uninit(void);
- * Add a new typeless pref.
- * @param name The name of the pref
-void purple_prefs_add_none(const char *name);
- * Add a new boolean pref.
- * @param name The name of the pref
- * @param value The initial value to set
-void purple_prefs_add_bool(const char *name, gboolean value);
- * Add a new integer pref.
- * @param name The name of the pref
- * @param value The initial value to set
-void purple_prefs_add_int(const char *name, int value);
- * Add a new string pref.
- * @param name The name of the pref
- * @param value The initial value to set
-void purple_prefs_add_string(const char *name, const char *value);
- * Add a new string list pref.
- * @param name The name of the pref
- * @param value The initial value to set
- * @note This function takes a copy of the strings in the value list. The list
- * itself and original copies of the strings are up to the caller to
-void purple_prefs_add_string_list(const char *name, GList *value);
- * @param name The name of the pref
- * @param value The initial value to set
-void purple_prefs_add_path(const char *name, const char *value);
- * Add a new path list pref.
- * @param name The name of the pref
- * @param value The initial value to set
- * @note This function takes a copy of the strings in the value list. The list
- * itself and original copies of the strings are up to the caller to
-void purple_prefs_add_path_list(const char *name, GList *value);
- * @param name The name of the pref
-void purple_prefs_remove(const char *name);
- * @param oldname The old name of the pref
- * @param newname The new name for the pref
-void purple_prefs_rename(const char *oldname, const char *newname);
- * Rename a boolean pref, toggling it's value
- * @param oldname The old name of the pref
- * @param newname The new name for the pref
-void purple_prefs_rename_boolean_toggle(const char *oldname, const char *newname);
-void purple_prefs_destroy(void);
- * @param name The name of the pref
- * @param value The value to set
- * @deprecated We're not really sure what purpose this function serves, so it
- * will be removed in 3.0.0. Preferences values set using this
- * function aren't serialized to prefs.xml, which could be
- * misleading. There is also no purple_prefs_get_generic, which
- * means that if you can't really get the value (other in a
- * connected callback). If you think you have a use for this then
-/* TODO: When this is removed, also remove struct purple_pref->value.generic */
-void purple_prefs_set_generic(const char *name, gpointer value);
- * Set boolean pref value
- * @param name The name of the pref
- * @param value The value to set
-void purple_prefs_set_bool(const char *name, gboolean value);
- * Set integer pref value
- * @param name The name of the pref
- * @param value The value to set
-void purple_prefs_set_int(const char *name, int value);
- * Set string pref value
- * @param name The name of the pref
- * @param value The value to set
-void purple_prefs_set_string(const char *name, const char *value);
- * Set string list pref value
- * @param name The name of the pref
- * @param value The value to set
-void purple_prefs_set_string_list(const char *name, GList *value);
- * @param name The name of the pref
- * @param value The value to set
-void purple_prefs_set_path(const char *name, const char *value);
- * Set path list pref value
- * @param name The name of the pref
- * @param value The value to set
-void purple_prefs_set_path_list(const char *name, GList *value);
- * Check if a pref exists
- * @param name The name of the pref
- * @return TRUE if the pref exists. Otherwise FALSE.
-gboolean purple_prefs_exists(const char *name);
- * @param name The name of the pref
- * @return The type of the pref
-PurplePrefType purple_prefs_get_type(const char *name);
- * Get boolean pref value
- * @param name The name of the pref
- * @return The value of the pref
-gboolean purple_prefs_get_bool(const char *name);
- * Get integer pref value
- * @param name The name of the pref
- * @return The value of the pref
-int purple_prefs_get_int(const char *name);
- * Get string pref value
- * @param name The name of the pref
- * @return The value of the pref
-const char *purple_prefs_get_string(const char *name);
- * Get string list pref value
- * @param name The name of the pref
- * @return The value of the pref
-GList *purple_prefs_get_string_list(const char *name);
- * @param name The name of the pref
- * @return The value of the pref
-const char *purple_prefs_get_path(const char *name);
- * Get path list pref value
- * @param name The name of the pref
- * @return The value of the pref
-GList *purple_prefs_get_path_list(const char *name);
- * Returns a list of children for a pref
- * @param name The parent pref
- * @return A list of newly allocated strings denoting the names of the children.
- * Returns @c NULL if there are no children or if pref doesn't exist.
- * The caller must free all the strings and the list.
-GList *purple_prefs_get_children_names(const char *name);
- * Add a callback to a pref (and its children)
- * @param handle The handle of the receiver.
- * @param name The name of the preference
- * @param cb The callback function
- * @param data The data to pass to the callback function.
- * @return An id to disconnect the callback
- * @see purple_prefs_disconnect_callback
-guint purple_prefs_connect_callback(void *handle, const char *name, PurplePrefCallback cb,
- * Remove a callback to a pref
-void purple_prefs_disconnect_callback(guint callback_id);
- * Remove all pref callbacks by handle
-void purple_prefs_disconnect_by_handle(void *handle);
- * Trigger callbacks as if the pref changed
-void purple_prefs_trigger_callback(const char *name);
-gboolean purple_prefs_load(void);
- * Rename legacy prefs and delete some that no longer exist.
-void purple_prefs_update_old(void);
-#endif /* _PURPLE_PREFS_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/presence.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
- * @file presence.h Presence
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef PURPLE_JABBER_PRESENCE_H_
-#define PURPLE_JABBER_PRESENCE_H_
- JABBER_PRESENCE_ERROR = -2,
- JABBER_PRESENCE_PROBE = -1,
- JABBER_PRESENCE_AVAILABLE,
- JABBER_PRESENCE_UNAVAILABLE,
- JABBER_PRESENCE_SUBSCRIBE,
- JABBER_PRESENCE_SUBSCRIBED,
- JABBER_PRESENCE_UNSUBSCRIBE,
- JABBER_PRESENCE_UNSUBSCRIBED
-typedef struct _JabberPresenceChatInfo JabberPresenceChatInfo;
-typedef struct _JabberPresence JabberPresence;
-struct _JabberPresenceChatInfo {
-struct _JabberPresence {
- JabberPresenceType type;
- JabberPresenceChatInfo chat_info;
- xmlnode *caps; /* TODO: Temporary, see presence.c:parse_caps */
- JabberBuddyState state;
- char *vcard_avatar_hash;
-typedef void (JabberPresenceHandler)(JabberStream *js, JabberPresence *presence,
-void jabber_presence_register_handler(const char *node, const char *xmlns,
- JabberPresenceHandler *handler);
-void jabber_presence_init(void);
-void jabber_presence_uninit(void);
-void jabber_set_status(PurpleAccount *account, PurpleStatus *status);
- * Send a full presence stanza.
- * @param js A JabberStream object.
- * @param force Force sending the presence stanza, irrespective of whether
- * the contents seem to have changed.
-void jabber_presence_send(JabberStream *js, gboolean force);
-xmlnode *jabber_presence_create(JabberBuddyState state, const char *msg, int priority); /* DEPRECATED */
-xmlnode *jabber_presence_create_js(JabberStream *js, JabberBuddyState state, const char *msg, int priority);
-void jabber_presence_parse(JabberStream *js, xmlnode *packet);
-void jabber_presence_subscription_set(JabberStream *js, const char *who,
-void jabber_presence_fake_to_self(JabberStream *js, PurpleStatus *status);
-void purple_status_to_jabber(const PurpleStatus *status, JabberBuddyState *state, char **msg, int *priority);
-#endif /* PURPLE_JABBER_PRESENCE_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/privacy.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,194 +0,0 @@
- * @file privacy.h Privacy API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_PRIVACY_H_
-#define _PURPLE_PRIVACY_H_
-typedef enum _PurplePrivacyType
- PURPLE_PRIVACY_ALLOW_ALL = 1,
- PURPLE_PRIVACY_DENY_ALL,
- PURPLE_PRIVACY_ALLOW_USERS,
- PURPLE_PRIVACY_DENY_USERS,
- PURPLE_PRIVACY_ALLOW_BUDDYLIST
- * Privacy core/UI operations.
- void (*permit_added)(PurpleAccount *account, const char *name);
- void (*permit_removed)(PurpleAccount *account, const char *name);
- void (*deny_added)(PurpleAccount *account, const char *name);
- void (*deny_removed)(PurpleAccount *account, const char *name);
- void (*_purple_reserved1)(void);
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
- void (*_purple_reserved4)(void);
- * Adds a user to the account's permit list.
- * @param account The account.
- * @param name The name of the user to add to the list.
- * @param local_only If TRUE, only the local list is updated, and not
- * @return TRUE if the user was added successfully, or @c FALSE otherwise.
-gboolean purple_privacy_permit_add(PurpleAccount *account, const char *name,
- * Removes a user from the account's permit list.
- * @param account The account.
- * @param name The name of the user to add to the list.
- * @param local_only If TRUE, only the local list is updated, and not
- * @return TRUE if the user was removed successfully, or @c FALSE otherwise.
-gboolean purple_privacy_permit_remove(PurpleAccount *account, const char *name,
- * Adds a user to the account's deny list.
- * @param account The account.
- * @param name The name of the user to add to the list.
- * @param local_only If TRUE, only the local list is updated, and not
- * @return TRUE if the user was added successfully, or @c FALSE otherwise.
-gboolean purple_privacy_deny_add(PurpleAccount *account, const char *name,
- * Removes a user from the account's deny list.
- * @param account The account.
- * @param name The name of the user to add to the list.
- * @param local_only If TRUE, only the local list is updated, and not
- * @return TRUE if the user was removed successfully, or @c FALSE otherwise.
-gboolean purple_privacy_deny_remove(PurpleAccount *account, const char *name,
- * Allow a user to send messages. If current privacy setting for the account is:
- * PURPLE_PRIVACY_ALLOW_USERS: The user is added to the allow-list.
- * PURPLE_PRIVACY_DENY_USERS : The user is removed from the deny-list.
- * PURPLE_PRIVACY_ALLOW_ALL : No changes made.
- * PURPLE_PRIVACY_DENY_ALL : The privacy setting is changed to
- * PURPLE_PRIVACY_ALLOW_USERS and the user
- * is added to the allow-list.
- * PURPLE_PRIVACY_ALLOW_BUDDYLIST: No changes made if the user is already in
- * the buddy-list. Otherwise the setting is
- * changed to PURPLE_PRIVACY_ALLOW_USERS, all the
- * buddies are added to the allow-list, and the
- * user is also added to the allow-list.
- * @param account The account.
- * @param who The name of the user.
- * @param local Whether the change is local-only.
- * @param restore Should the previous allow/deny list be restored if the
- * privacy setting is changed.
-void purple_privacy_allow(PurpleAccount *account, const char *who, gboolean local,
- * Block messages from a user. If current privacy setting for the account is:
- * PURPLE_PRIVACY_ALLOW_USERS: The user is removed from the allow-list.
- * PURPLE_PRIVACY_DENY_USERS : The user is added to the deny-list.
- * PURPLE_PRIVACY_DENY_ALL : No changes made.
- * PURPLE_PRIVACY_ALLOW_ALL : The privacy setting is changed to
- * PURPLE_PRIVACY_DENY_USERS and the user is
- * added to the deny-list.
- * PURPLE_PRIVACY_ALLOW_BUDDYLIST: If the user is not in the buddy-list,
- * then no changes made. Otherwise, the setting
- * is changed to PURPLE_PRIVACY_ALLOW_USERS, all
- * the buddies are added to the allow-list, and
- * this user is removed from the list.
- * @param account The account.
- * @param who The name of the user.
- * @param local Whether the change is local-only.
- * @param restore Should the previous allow/deny list be restored if the
- * privacy setting is changed.
-void purple_privacy_deny(PurpleAccount *account, const char *who, gboolean local,
- * Check the privacy-setting for a user.
- * @param account The account.
- * @param who The name of the user.
- * @return @c FALSE if the specified account's privacy settings block the user or @c TRUE otherwise. The meaning of "block" is protocol-dependent and generally relates to status and/or sending of messages.
-gboolean purple_privacy_check(PurpleAccount *account, const char *who);
- * Sets the UI operations structure for the privacy subsystem.
- * @param ops The UI operations structure.
-void purple_privacy_set_ui_ops(PurplePrivacyUiOps *ops);
- * Returns the UI operations structure for the privacy subsystem.
- * @return The UI operations structure.
-PurplePrivacyUiOps *purple_privacy_get_ui_ops(void);
- * Initializes the privacy subsystem.
-void purple_privacy_init(void);
-#endif /* _PURPLE_PRIVACY_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/proxy.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,372 +0,0 @@
- * @file proxy.h Proxy API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_PROXY_H_
-#define _PURPLE_PROXY_H_
- * A type of proxy connection.
- PURPLE_PROXY_USE_GLOBAL = -1, /**< Use the global proxy information. */
- PURPLE_PROXY_NONE = 0, /**< No proxy. */
- PURPLE_PROXY_HTTP, /**< HTTP proxy. */
- PURPLE_PROXY_SOCKS4, /**< SOCKS 4 proxy. */
- PURPLE_PROXY_SOCKS5, /**< SOCKS 5 proxy. */
- PURPLE_PROXY_USE_ENVVAR, /**< Use environmental settings. */
- PURPLE_PROXY_TOR /**< Use a Tor proxy (SOCKS 5 really) */
- * Information on proxy settings.
- PurpleProxyType type; /**< The proxy type. */
- char *host; /**< The host. */
- int port; /**< The port number. */
- char *username; /**< The username. */
- char *password; /**< The password. */
-typedef struct _PurpleProxyConnectData PurpleProxyConnectData;
-typedef void (*PurpleProxyConnectFunction)(gpointer data, gint source, const gchar *error_message);
-/**************************************************************************/
-/** @name Proxy structure API */
-/**************************************************************************/
- * Creates a proxy information structure.
- * @return The proxy information structure.
-PurpleProxyInfo *purple_proxy_info_new(void);
- * Destroys a proxy information structure.
- * @param info The proxy information structure to destroy.
-void purple_proxy_info_destroy(PurpleProxyInfo *info);
- * Sets the type of proxy.
- * @param info The proxy information.
- * @param type The proxy type.
-void purple_proxy_info_set_type(PurpleProxyInfo *info, PurpleProxyType type);
- * @param info The proxy information.
- * @param host The host.
-void purple_proxy_info_set_host(PurpleProxyInfo *info, const char *host);
- * @param info The proxy information.
- * @param port The port.
-void purple_proxy_info_set_port(PurpleProxyInfo *info, int port);
- * Sets the proxy username.
- * @param info The proxy information.
- * @param username The username.
-void purple_proxy_info_set_username(PurpleProxyInfo *info, const char *username);
- * Sets the proxy password.
- * @param info The proxy information.
- * @param password The password.
-void purple_proxy_info_set_password(PurpleProxyInfo *info, const char *password);
- * Returns the proxy's type.
- * @param info The proxy information.
-PurpleProxyType purple_proxy_info_get_type(const PurpleProxyInfo *info);
- * Returns the proxy's host.
- * @param info The proxy information.
-const char *purple_proxy_info_get_host(const PurpleProxyInfo *info);
- * Returns the proxy's port.
- * @param info The proxy information.
-int purple_proxy_info_get_port(const PurpleProxyInfo *info);
- * Returns the proxy's username.
- * @param info The proxy information.
- * @return The username.
-const char *purple_proxy_info_get_username(const PurpleProxyInfo *info);
- * Returns the proxy's password.
- * @param info The proxy information.
- * @return The password.
-const char *purple_proxy_info_get_password(const PurpleProxyInfo *info);
-/**************************************************************************/
-/** @name Global Proxy API */
-/**************************************************************************/
- * Returns purple's global proxy information.
- * @return The global proxy information.
-PurpleProxyInfo *purple_global_proxy_get_info(void);
- * Set purple's global proxy information.
- * @param info The proxy information.
-void purple_global_proxy_set_info(PurpleProxyInfo *info);
-/**************************************************************************/
-/**************************************************************************/
- * Returns the proxy subsystem handle.
- * @return The proxy subsystem handle.
-void *purple_proxy_get_handle(void);
- * Initializes the proxy subsystem.
-void purple_proxy_init(void);
- * Uninitializes the proxy subsystem.
-void purple_proxy_uninit(void);
- * Returns configuration of a proxy.
- * @param account The account for which the configuration is needed.
- * @return The configuration of a proxy.
-PurpleProxyInfo *purple_proxy_get_setup(PurpleAccount *account);
- * Makes a connection to the specified host and port. Note that this
- * function name can be misleading--although it is called "proxy
- * connect," it is used for establishing any outgoing TCP connection,
- * whether through a proxy or not.
- * @param handle A handle that should be associated with this
- * connection attempt. The handle can be used
- * to cancel the connection attempt using the
- * purple_proxy_connect_cancel_with_handle()
- * @param account The account making the connection.
- * @param host The destination host.
- * @param port The destination port.
- * @param connect_cb The function to call when the connection is
- * established. If the connection failed then
- * fd will be -1 and error message will be set
- * to something descriptive (hopefully).
- * @param data User-defined data.
- * @return NULL if there was an error, or a reference to an
- * opaque data structure that can be used to cancel
- * the pending connection, if needed.
-PurpleProxyConnectData *purple_proxy_connect(void *handle,
- PurpleAccount *account,
- const char *host, int port,
- PurpleProxyConnectFunction connect_cb, gpointer data);
- * Makes a connection to the specified host and port. Note that this
- * function name can be misleading--although it is called "proxy
- * connect," it is used for establishing any outgoing UDP connection,
- * whether through a proxy or not.
- * @param handle A handle that should be associated with this
- * connection attempt. The handle can be used
- * to cancel the connection attempt using the
- * purple_proxy_connect_cancel_with_handle()
- * @param account The account making the connection.
- * @param host The destination host.
- * @param port The destination port.
- * @param connect_cb The function to call when the connection is
- * established. If the connection failed then
- * fd will be -1 and error message will be set
- * to something descriptive (hopefully).
- * @param data User-defined data.
- * @return NULL if there was an error, or a reference to an
- * opaque data structure that can be used to cancel
- * the pending connection, if needed.
-PurpleProxyConnectData *purple_proxy_connect_udp(void *handle,
- PurpleAccount *account,
- const char *host, int port,
- PurpleProxyConnectFunction connect_cb, gpointer data);
- * Makes a connection through a SOCKS5 proxy.
- * Note that if the account that is making the connection uses a proxy, this
- * connection to a SOCKS5 proxy will be made through the account proxy.
- * @param handle A handle that should be associated with this
- * connection attempt. The handle can be used
- * to cancel the connection attempt using the
- * purple_proxy_connect_cancel_with_handle()
- * @param account The account making the connection.
- * @param gpi The PurpleProxyInfo specifying the proxy settings
- * @param host The destination host.
- * @param port The destination port.
- * @param connect_cb The function to call when the connection is
- * established. If the connection failed then
- * fd will be -1 and error message will be set
- * to something descriptive (hopefully).
- * @param data User-defined data.
- * @return NULL if there was an error, or a reference to an
- * opaque data structure that can be used to cancel
- * the pending connection, if needed.
-PurpleProxyConnectData *purple_proxy_connect_socks5_account(void *handle,
- PurpleAccount *account, PurpleProxyInfo *gpi,
- const char *host, int port,
- PurpleProxyConnectFunction connect_cb, gpointer data);
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_PROXY_C_)
- * Makes a connection through a SOCKS5 proxy.
- * @param handle A handle that should be associated with this
- * connection attempt. The handle can be used
- * to cancel the connection attempt using the
- * purple_proxy_connect_cancel_with_handle()
- * @param gpi The PurpleProxyInfo specifying the proxy settings
- * @param host The destination host.
- * @param port The destination port.
- * @param connect_cb The function to call when the connection is
- * established. If the connection failed then
- * fd will be -1 and error message will be set
- * to something descriptive (hopefully).
- * @param data User-defined data.
- * @return NULL if there was an error, or a reference to an
- * opaque data structure that can be used to cancel
- * the pending connection, if needed.
- * @deprecated Use purple_proxy_connect_socks5_account instead
-PurpleProxyConnectData *purple_proxy_connect_socks5(void *handle,
- const char *host, int port,
- PurpleProxyConnectFunction connect_cb, gpointer data);
- * Cancel an in-progress connection attempt. This should be called
- * by the PRPL if the user disables an account while it is still
- * performing the initial sign on. Or when establishing a file
- * transfer, if we attempt to connect to a remote user but they
- * are behind a firewall then the PRPL can cancel the connection
- * attempt early rather than just letting the OS's TCP/IP stack
- * time-out the connection.
-void purple_proxy_connect_cancel(PurpleProxyConnectData *connect_data);
- * Closes all proxy connections registered with the specified handle.
- * @param handle The handle.
-void purple_proxy_connect_cancel_with_handle(void *handle);
-#endif /* _PURPLE_PROXY_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/prpl.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1015 +0,0 @@
- * @file prpl.h Protocol Plugin functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-/* this file should be all that prpls need to include. therefore, by including
- * this file, they should get glib, proxy, purple_connection, prpl, etc. */
-typedef struct _PurplePluginProtocolInfo PurplePluginProtocolInfo;
-/** @copydoc _PurpleAttentionType */
-typedef struct _PurpleAttentionType PurpleAttentionType;
-/**************************************************************************/
-/** @name Basic Protocol Information */
-/**************************************************************************/
- PURPLE_ICON_SCALE_DISPLAY = 0x01, /**< We scale the icon when we display it */
- PURPLE_ICON_SCALE_SEND = 0x02 /**< We scale the icon before we send it to the server */
- * A description of a Buddy Icon specification. This tells Purple what kind of image file
- * it should give this prpl, and what kind of image file it should expect back.
- * Dimensions less than 1 should be ignored and the image not scaled.
-typedef struct _PurpleBuddyIconSpec PurpleBuddyIconSpec;
- * A description of a file transfer thumbnail specification.
- * This tells the UI if and what image formats the prpl support for file
-typedef struct _PurpleThumbnailSpec PurpleThumbnailSpec;
- * This \#define exists just to make it easier to fill out the buddy icon
- * field in the prpl info struct for protocols that couldn't care less.
-#define NO_BUDDY_ICONS {NULL, 0, 0, 0, 0, 0, 0}
-#include "conversation.h"
-/** @copydoc PurpleBuddyIconSpec */
-struct _PurpleBuddyIconSpec {
- /** This is a comma-delimited list of image formats or @c NULL if icons
- * are not supported. Neither the core nor the prpl will actually
- * check to see if the data it's given matches this; it's entirely up
- * to the UI to do what it wants
- int min_width; /**< Minimum width of this icon */
- int min_height; /**< Minimum height of this icon */
- int max_width; /**< Maximum width of this icon */
- int max_height; /**< Maximum height of this icon */
- size_t max_filesize; /**< Maximum size in bytes */
- PurpleIconScaleRules scale_rules; /**< How to stretch this icon */
-/** Represents an entry containing information that must be supplied by the
- * user when joining a chat.
-struct proto_chat_entry {
- const char *label; /**< User-friendly name of the entry */
- const char *identifier; /**< Used by the PRPL to identify the option */
- gboolean required; /**< True if it's required */
- gboolean is_int; /**< True if the entry expects an integer */
- int min; /**< Minimum value in case of integer */
- int max; /**< Maximum value in case of integer */
- gboolean secret; /**< True if the entry is secret (password) */
-/** Represents "nudges" and "buzzes" that you may send to a buddy to attract
- * their attention (or vice-versa).
-struct _PurpleAttentionType
- const char *name; /**< Shown in GUI elements */
- const char *incoming_description; /**< Shown when sent */
- const char *outgoing_description; /**< Shown when receied */
- const char *icon_name; /**< Icon to display (optional) */
- const char *unlocalized_name; /**< Unlocalized name for UIs needing it */
- /* Reserved fields for future purposes */
- * These should all be stuff that some plugins can do and others can't.
- * User names are unique to a chat and are not shared between rooms.
- * XMPP lets you choose what name you want in chats, so it shouldn't
- * be pulling the aliases from the buddy list for the chat list;
- OPT_PROTO_UNIQUE_CHATNAME = 0x00000004,
- * Chat rooms have topics.
- * IRC and XMPP support this.
- OPT_PROTO_CHAT_TOPIC = 0x00000008,
- * Don't require passwords for sign-in.
- * Zephyr doesn't require passwords, so there's no
- * need for a password prompt.
- OPT_PROTO_NO_PASSWORD = 0x00000010,
- * MSN and Yahoo notify you when you have new mail.
- OPT_PROTO_MAIL_CHECK = 0x00000020,
- * Oscar lets you send images in direct IMs.
- OPT_PROTO_IM_IMAGE = 0x00000040,
- * Allow passwords to be optional.
- * Passwords in IRC are optional, and are needed for certain
- OPT_PROTO_PASSWORD_OPTIONAL = 0x00000080,
- * Allows font size to be specified in sane point size
- * Probably just XMPP and Y!M
- OPT_PROTO_USE_POINTSIZE = 0x00000100,
- * Set the Register button active even when the username has not
- * Gadu-Gadu doesn't need a username to register new account (because
- * usernames are assigned by the server).
- OPT_PROTO_REGISTER_NOSCREENNAME = 0x00000200,
- * Indicates that slash commands are native to this protocol.
- * Used as a hint that unknown commands should not be sent as messages.
- OPT_PROTO_SLASH_COMMANDS_NATIVE = 0x00000400,
- * Indicates that this protocol supports sending a user-supplied message
- * along with an invitation.
- OPT_PROTO_INVITE_MESSAGE = 0x00000800
-} PurpleProtocolOptions;
- * A protocol plugin information structure.
- * Every protocol plugin initializes this structure. It is the gateway
- * between purple and the protocol plugin. Many of these callbacks can be
- * NULL. If a callback must be implemented, it has a comment indicating so.
-struct _PurplePluginProtocolInfo
- PurpleProtocolOptions options; /**< Protocol options. */
- GList *user_splits; /**< A GList of PurpleAccountUserSplit */
- GList *protocol_options; /**< A GList of PurpleAccountOption */
- PurpleBuddyIconSpec icon_spec; /**< The icon spec. */
- * Returns the base icon name for the given buddy and account.
- * If buddy is NULL and the account is non-NULL, it will return the
- * name to use for the account's icon. If both are NULL, it will
- * return the name to use for the protocol's icon.
- * This must be implemented.
- const char *(*list_icon)(PurpleAccount *account, PurpleBuddy *buddy);
- * Fills the four char**'s with string identifiers for "emblems"
- * that the UI will interpret and display as relevant
- const char *(*list_emblem)(PurpleBuddy *buddy);
- * Gets a short string representing this buddy's status. This will
- * be shown on the buddy list.
- char *(*status_text)(PurpleBuddy *buddy);
- * Allows the prpl to add text to a buddy's tooltip.
- void (*tooltip_text)(PurpleBuddy *buddy, PurpleNotifyUserInfo *user_info, gboolean full);
- * Returns a list of #PurpleStatusType which exist for this account;
- * this must be implemented, and must add at least the offline and
- GList *(*status_types)(PurpleAccount *account);
- * Returns a list of #PurpleMenuAction structs, which represent extra
- * actions to be shown in (for example) the right-click menu for @a
- GList *(*blist_node_menu)(PurpleBlistNode *node);
- * Returns a list of #proto_chat_entry structs, which represent
- * information required by the PRPL to join a chat. libpurple will
- * call join_chat along with the information filled by the user.
- * @return A list of #proto_chat_entry structs
- GList *(*chat_info)(PurpleConnection *);
- * Returns a hashtable which maps #proto_chat_entry 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_chat_name if you instead need
- * to extract a chat name from a hashtable.
- * @param chat_name The chat name to be turned into components
- * @return Hashtable containing the information extracted from chat_name
- GHashTable *(*chat_info_defaults)(PurpleConnection *, const char *chat_name);
- /* All the server-related functions */
- /** This must be implemented. */
- void (*login)(PurpleAccount *);
- /** This must be implemented. */
- void (*close)(PurpleConnection *);
- * This PRPL function should return a positive value on success.
- * If the message is too big to be sent, return -E2BIG. If
- * the account is not connected, return -ENOTCONN. If the
- * PRPL 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.
- int (*send_im)(PurpleConnection *, const char *who,
- PurpleMessageFlags flags);
- void (*set_info)(PurpleConnection *, const char *info);
- * @return If this protocol requires the PURPLE_TYPING message to
- * be sent repeatedly to signify that the user is still
- * typing, then the PRPL should return the number of
- * seconds to wait before sending a subsequent notification.
- * Otherwise the PRPL should return 0.
- unsigned int (*send_typing)(PurpleConnection *, const char *name, PurpleTypingState state);
- * Should arrange for purple_notify_userinfo() to be called with
- void (*get_info)(PurpleConnection *, const char *who);
- void (*set_status)(PurpleAccount *account, PurpleStatus *status);
- void (*set_idle)(PurpleConnection *, int idletime);
- void (*change_passwd)(PurpleConnection *, const char *old_pass,
- * Add a buddy to a group on the server.
- * This PRPL function may be called in situations in which the buddy is
- * already in the specified group. If the protocol supports
- * authorization and the user is not already authorized to see the
- * status of \a buddy, \a add_buddy should request authorization.
- * @deprecated Since 2.8.0, add_buddy_with_invite is preferred.
- * @see add_buddy_with_invite
- void (*add_buddy)(PurpleConnection *, PurpleBuddy *buddy, PurpleGroup *group);
- void (*add_buddies)(PurpleConnection *, GList *buddies, GList *groups);
- void (*remove_buddy)(PurpleConnection *, PurpleBuddy *buddy, PurpleGroup *group);
- void (*remove_buddies)(PurpleConnection *, GList *buddies, GList *groups);
- void (*add_permit)(PurpleConnection *, const char *name);
- void (*add_deny)(PurpleConnection *, const char *name);
- void (*rem_permit)(PurpleConnection *, const char *name);
- void (*rem_deny)(PurpleConnection *, const char *name);
- void (*set_permit_deny)(PurpleConnection *);
- * Called when the user requests joining a chat. Should arrange for
- * #serv_got_joined_chat to be called.
- * @param components A hashtable containing information required to
- * join the chat as described by the entries returned
- * by #chat_info. It may also be called when accepting
- * an invitation, in which case this matches the
- * data parameter passed to #serv_got_chat_invite.
- void (*join_chat)(PurpleConnection *, GHashTable *components);
- * Called when the user refuses a chat invitation.
- * @param components A hashtable containing information required to
- * join the chat as passed to #serv_got_chat_invite.
- void (*reject_chat)(PurpleConnection *, GHashTable *components);
- * Returns a chat name based on the information in components. Use
- * #chat_info_defaults if you instead need to generate a hashtable
- * @param components A hashtable containing information about the chat.
- char *(*get_chat_name)(GHashTable *components);
- * Invite a user to join a chat.
- * @param id The id of the chat to invite the user to.
- * @param message A message displayed to the user when the invitation
- * @param who The name of the user to send the invation to.
- void (*chat_invite)(PurpleConnection *, int id,
- const char *message, const char *who);
- * Called when the user requests leaving a chat.
- * @param id The id of the chat to leave
- void (*chat_leave)(PurpleConnection *, int id);
- * Send a whisper to a user in a chat.
- * @param id The id of the chat.
- * @param who The name of the user to send the whisper to.
- * @param message The message of the whisper.
- void (*chat_whisper)(PurpleConnection *, int id,
- const char *who, const char *message);
- * Send a message to a chat.
- * This PRPL function should return a positive value on success.
- * If the message is too big to be sent, return -E2BIG. If
- * the account is not connected, return -ENOTCONN. If the
- * PRPL 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.
- * @param id The id of the chat to send the message to.
- * @param message The message to send to the chat.
- * @param flags A bitwise OR of #PurpleMessageFlags representing
- * @return A positive number or 0 in case of succes,
- * a negative error number in case of failure.
- int (*chat_send)(PurpleConnection *, int id, const char *message, PurpleMessageFlags flags);
- /** If implemented, this will be called regularly for this prpl'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 by
- * <code>KEEPALIVE_INTERVAL</code> in <tt>libpurple/connection.c</tt>.)
- void (*keepalive)(PurpleConnection *);
- /** new user registration */
- void (*register_user)(PurpleAccount *);
- * @deprecated Use #PurplePluginProtocolInfo.get_info instead.
- void (*get_cb_info)(PurpleConnection *, int, const char *who);
- * @deprecated Use #PurplePluginProtocolInfo.get_cb_real_name and
- * #PurplePluginProtocolInfo.status_text instead.
- void (*get_cb_away)(PurpleConnection *, int, const char *who);
- /** save/store buddy's alias on server list/roster */
- void (*alias_buddy)(PurpleConnection *, const char *who,
- /** change a buddy's group on a server list/roster */
- void (*group_buddy)(PurpleConnection *, const char *who,
- const char *old_group, const char *new_group);
- /** rename a group on a server list/roster */
- void (*rename_group)(PurpleConnection *, const char *old_name,
- PurpleGroup *group, GList *moved_buddies);
- void (*buddy_free)(PurpleBuddy *);
- void (*convo_closed)(PurpleConnection *, const char *who);
- * Convert the username @a who to its canonical form. (For example,
- * AIM treats "fOo BaR" and "foobar" as the same user; this function
- * should return the same normalized string for both of those.)
- const char *(*normalize)(const PurpleAccount *, const char *who);
- * Set the buddy icon for the given connection to @a img. The prpl
- * does NOT own a reference to @a img; if it needs one, it must
- * #purple_imgstore_ref(@a img) itself.
- void (*set_buddy_icon)(PurpleConnection *, PurpleStoredImage *img);
- void (*remove_group)(PurpleConnection *gc, PurpleGroup *group);
- /** Gets the real name of a participant in a chat. For example, on
- * XMPP this turns a chat room nick <tt>foo</tt> into
- * <tt>room\@server/foo</tt>
- * @param gc the connection on which the room is.
- * @param id the ID of the chat room.
- * @param who the nickname of the chat participant.
- * @return the real name of the participant. This string must be
- char *(*get_cb_real_name)(PurpleConnection *gc, int id, const char *who);
- void (*set_chat_topic)(PurpleConnection *gc, int id, const char *topic);
- PurpleChat *(*find_blist_chat)(PurpleAccount *account, const char *name);
- /* room listing prpl callbacks */
- PurpleRoomlist *(*roomlist_get_list)(PurpleConnection *gc);
- void (*roomlist_cancel)(PurpleRoomlist *list);
- void (*roomlist_expand_category)(PurpleRoomlist *list, PurpleRoomlistRoom *category);
- /* file transfer callbacks */
- gboolean (*can_receive_file)(PurpleConnection *, const char *who);
- void (*send_file)(PurpleConnection *, const char *who, const char *filename);
- PurpleXfer *(*new_xfer)(PurpleConnection *, const char *who);
- /** Checks whether offline messages to @a buddy are supported.
- * @return @c TRUE if @a buddy can be sent messages while they are
- * offline, or @c FALSE if not.
- gboolean (*offline_message)(const PurpleBuddy *buddy);
- PurpleWhiteboardPrplOps *whiteboard_prpl_ops;
- /** For use in plugins that may understand the underlying protocol */
- int (*send_raw)(PurpleConnection *gc, const char *buf, int len);
- /* room list serialize */
- char *(*roomlist_room_serialize)(PurpleRoomlistRoom *room);
- /** Remove the user from the server. The account can either be
- * connected or disconnected. After the removal is finished, the
- * connection will stay open and has to be closed!
- /* This is here rather than next to register_user for API compatibility
- void (*unregister_user)(PurpleAccount *, PurpleAccountUnregistrationCb cb, void *user_data);
- /* Attention API for sending & receiving zaps/nudges/buzzes etc. */
- gboolean (*send_attention)(PurpleConnection *gc, const char *username, guint type);
- GList *(*get_attention_types)(PurpleAccount *acct);
- * The size of the PurplePluginProtocolInfo. This should always be sizeof(PurplePluginProtocolInfo).
- * This allows adding more functions to this struct without requiring a major version bump.
- unsigned long struct_size;
- * If more functions are added, they should accessed using the following syntax:
- * if (PURPLE_PROTOCOL_PLUGIN_HAS_FUNC(prpl, new_function))
- * prpl->new_function(...);
- * if (prpl->new_function != NULL)
- * prpl->new_function(...);
- * The PURPLE_PROTOCOL_PLUGIN_HAS_FUNC macro can be used for the older member
- * functions (e.g. login, send_im etc.) too.
- /** 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 MUST be unrefed by the caller.
- * @param account The account to specify. This can be NULL.
- * @return The protocol's string hash table. The hash table should be
- * destroyed by the caller when it's no longer needed.
- GHashTable *(*get_account_text_table)(PurpleAccount *account);
- * Initiate a media session with the given contact.
- * @param account The account to initiate the media session on.
- * @param who The remote user to initiate the session with.
- * @param type The type of media session to initiate.
- * @return TRUE if the call succeeded else FALSE. (Doesn't imply the media session or stream will be successfully created)
- gboolean (*initiate_media)(PurpleAccount *account, const char *who,
- PurpleMediaSessionType type);
- * Checks to see if the given contact supports the given type of media session.
- * @param account The account the contact is on.
- * @param who The remote user to check for media capability with.
- * @return The media caps the contact supports.
- PurpleMediaCaps (*get_media_caps)(PurpleAccount *account,
- * Returns an array of "PurpleMood"s, with the last one having
- * "mood" set to @c NULL.
- PurpleMood *(*get_moods)(PurpleAccount *account);
- * Set the user's "friendly name" (or alias or nickname or
- * whatever term you want to call it) on the server. The
- * protocol plugin should call success_cb or failure_cb
- * *asynchronously* (if it knows immediately that the set will fail,
- * call one of the callbacks from an idle/0-second timeout) depending
- * on if the nickname is set successfully.
- * @param gc The connection for which to set an alias
- * @param alias The new server-side alias/nickname for this account,
- * or NULL to unset the alias/nickname (or return it to
- * a protocol-specific "default").
- * @param success_cb Callback to be called if the public alias is set
- * @param failure_cb Callback to be called if setting the public alias
- * @see purple_account_set_public_alias
- void (*set_public_alias)(PurpleConnection *gc, const char *alias,
- PurpleSetPublicAliasSuccessCallback success_cb,
- PurpleSetPublicAliasFailureCallback failure_cb);
- * Retrieve the user's "friendly name" as set on the server.
- * The protocol plugin should call success_cb or failure_cb
- * *asynchronously* (even if it knows immediately that the get will fail,
- * call one of the callbacks from an idle/0-second timeout) depending
- * on if the nickname is retrieved.
- * @param gc The connection for which to retireve the alias
- * @param success_cb Callback to be called with the retrieved alias
- * @param failure_cb Callback to be called if the prpl is unable to
- * @see purple_account_get_public_alias
- void (*get_public_alias)(PurpleConnection *gc,
- PurpleGetPublicAliasSuccessCallback success_cb,
- PurpleGetPublicAliasFailureCallback failure_cb);
- * Add a buddy to a group on the server.
- * This PRPL function may be called in situations in which the buddy is
- * already in the specified group. If the protocol supports
- * authorization and the user is not already authorized to see the
- * status of \a buddy, \a add_buddy should request authorization.
- * If authorization is required, then use the supplied invite message.
- void (*add_buddy_with_invite)(PurpleConnection *pc, PurpleBuddy *buddy, PurpleGroup *group, const char *message);
- void (*add_buddies_with_invite)(PurpleConnection *pc, GList *buddies, GList *groups, const char *message);
-#define PURPLE_PROTOCOL_PLUGIN_HAS_FUNC(prpl, member) \
- (((G_STRUCT_OFFSET(PurplePluginProtocolInfo, member) < G_STRUCT_OFFSET(PurplePluginProtocolInfo, struct_size)) \
- || (G_STRUCT_OFFSET(PurplePluginProtocolInfo, member) < prpl->struct_size)) && \
-#define PURPLE_IS_PROTOCOL_PLUGIN(plugin) \
- ((plugin)->info->type == PURPLE_PLUGIN_PROTOCOL)
-#define PURPLE_PLUGIN_PROTOCOL_INFO(plugin) \
- ((PurplePluginProtocolInfo *)(plugin)->info->extra_info)
-/**************************************************************************/
-/** @name Attention Type API */
-/**************************************************************************/
- * Creates a new #PurpleAttentionType object and sets its mandatory parameters.
- * @param ulname A non-localized string that can be used by UIs in need of such
- * non-localized strings. This should be the same as @a name,
- * without localization.
- * @param name A localized string that the UI may display for the event. This
- * should be the same string as @a ulname, with localization.
- * @param inc_desc A localized description shown when the event is received.
- * @param out_desc A localized description shown when the event is sent.
- * @return A pointer to the new object.
-PurpleAttentionType *purple_attention_type_new(const char *ulname, const char *name,
- const char *inc_desc, const char *out_desc);
- * Sets the displayed name of the attention-demanding event.
- * @param type The attention type.
- * @param name The localized name that will be displayed by UIs. This should be
- * the same string given as the unlocalized name, but with
-void purple_attention_type_set_name(PurpleAttentionType *type, const char *name);
- * Sets the description of the attention-demanding event shown in conversations
- * when the event is received.
- * @param type The attention type.
- * @param desc The localized description for incoming events.
-void purple_attention_type_set_incoming_desc(PurpleAttentionType *type, const char *desc);
- * Sets the description of the attention-demanding event shown in conversations
- * when the event is sent.
- * @param type The attention type.
- * @param desc The localized description for outgoing events.
-void purple_attention_type_set_outgoing_desc(PurpleAttentionType *type, const char *desc);
- * Sets the name of the icon to display for the attention event; this is optional.
- * @param type The attention type.
- * @param name The icon's name.
- * @note Icons are optional for attention events.
-void purple_attention_type_set_icon_name(PurpleAttentionType *type, const char *name);
- * Sets the unlocalized name of the attention event; some UIs may need this,
- * @param type The attention type.
- * @param ulname The unlocalized name. This should be the same string given as
- * the localized name, but without localization.
-void purple_attention_type_set_unlocalized_name(PurpleAttentionType *type, const char *ulname);
- * Get the attention type's name as displayed by the UI.
- * @param type The attention type.
-const char *purple_attention_type_get_name(const PurpleAttentionType *type);
- * Get the attention type's description shown when the event is received.
- * @param type The attention type.
- * @return The description.
-const char *purple_attention_type_get_incoming_desc(const PurpleAttentionType *type);
- * Get the attention type's description shown when the event is sent.
- * @param type The attention type.
- * @return The description.
-const char *purple_attention_type_get_outgoing_desc(const PurpleAttentionType *type);
- * Get the attention type's icon name.
- * @param type The attention type.
- * @return The icon name or @c NULL if unset/empty.
- * @note Icons are optional for attention events.
-const char *purple_attention_type_get_icon_name(const PurpleAttentionType *type);
- * Get the attention type's unlocalized name; this is useful for some UIs.
- * @param type The attention type
- * @return The unlocalized name.
-const char *purple_attention_type_get_unlocalized_name(const PurpleAttentionType *type);
-/**************************************************************************/
-/** @name Protocol Plugin API */
-/**************************************************************************/
- * Notifies Purple that our account's idle state and time have changed.
- * This is meant to be called from protocol plugins.
- * @param account The account.
- * @param idle The user's idle state.
- * @param idle_time The user's idle time.
-void purple_prpl_got_account_idle(PurpleAccount *account, gboolean idle,
- * Notifies Purple of our account's log-in time.
- * This is meant to be called from protocol plugins.
- * @param account The account the user is on.
- * @param login_time The user's log-in time.
-void purple_prpl_got_account_login_time(PurpleAccount *account, time_t login_time);
- * Notifies Purple that our account's status has changed.
- * This is meant to be called from protocol plugins.
- * @param account The account the user is on.
- * @param status_id The status ID.
- * @param ... A NULL-terminated list of attribute IDs and values,
- * beginning with the value for @a attr_id.
-void purple_prpl_got_account_status(PurpleAccount *account,
- const char *status_id, ...) G_GNUC_NULL_TERMINATED;
- * Notifies Purple that our account's actions have changed. This is only
- * called after the initial connection. Emits the account-actions-changed
- * This is meant to be called from protocol plugins.
- * @param account The account.
- * @see account-actions-changed
-void purple_prpl_got_account_actions(PurpleAccount *account);
- * Notifies Purple that a buddy's idle state and time have changed.
- * This is meant to be called from protocol plugins.
- * @param account The account the user is on.
- * @param name The name of the buddy.
- * @param idle The user's idle state.
- * @param idle_time The user's idle time. This is the time at
- * which the user became idle, in seconds since
- * the epoch. If the PRPL does not know this value
- * then it should pass 0.
-void purple_prpl_got_user_idle(PurpleAccount *account, const char *name,
- gboolean idle, time_t idle_time);
- * Notifies Purple of a buddy's log-in time.
- * This is meant to be called from protocol plugins.
- * @param account The account the user is on.
- * @param name The name of the buddy.
- * @param login_time The user's log-in time.
-void purple_prpl_got_user_login_time(PurpleAccount *account, const char *name,
- * Notifies Purple that a buddy's status has been activated.
- * This is meant to be called from protocol plugins.
- * @param account The account the user is on.
- * @param name The name of the buddy.
- * @param status_id The status ID.
- * @param ... A NULL-terminated list of attribute IDs and values,
- * beginning with the value for @a attr_id.
-void purple_prpl_got_user_status(PurpleAccount *account, const char *name,
- const char *status_id, ...) G_GNUC_NULL_TERMINATED;
- * Notifies libpurple that a buddy's status has been deactivated
- * This is meant to be called from protocol plugins.
- * @param account The account the user is on.
- * @param name The name of the buddy.
- * @param status_id The status ID.
-void purple_prpl_got_user_status_deactive(PurpleAccount *account, const char *name,
- const char *status_id);
- * Informs the server that our account's status changed.
- * @param account The account the user is on.
- * @param old_status The previous status.
- * @param new_status The status that was activated, or deactivated
- * (in the case of independent statuses).
-void purple_prpl_change_account_status(PurpleAccount *account,
- PurpleStatus *old_status,
- PurpleStatus *new_status);
- * Retrieves the list of stock status types from a prpl.
- * @param account The account the user is on.
- * @param presence The presence for which we're going to get statuses
- * @return List of statuses
-GList *purple_prpl_get_statuses(PurpleAccount *account, PurplePresence *presence);
- * Send an attention request message.
- * @param gc The connection to send the message on.
- * @param who Whose attention to request.
- * @param type_code An index into the prpl's attention_types list determining the type
- * of the attention request command to send. 0 if prpl only defines one
- * (for example, Yahoo and MSN), but some protocols define more (MySpaceIM).
- * Note that you can't send arbitrary PurpleAttentionType's, because there is
- * only a fixed set of attention commands.
-void purple_prpl_send_attention(PurpleConnection *gc, const char *who, guint type_code);
- * Process an incoming attention message.
- * @param gc The connection that received the attention message.
- * @param who Who requested your attention.
- * @param type_code An index into the prpl's attention_types list determining the type
- * of the attention request command to send.
-void purple_prpl_got_attention(PurpleConnection *gc, const char *who, guint type_code);
- * Process an incoming attention message in a chat.
- * @param gc The connection that received the attention message.
- * @param id The chat id.
- * @param who Who requested your attention.
- * @param type_code An index into the prpl's attention_types list determining the type
- * of the attention request command to send.
-void purple_prpl_got_attention_in_chat(PurpleConnection *gc, int id, const char *who, guint type_code);
- * Determines if the contact supports the given media session type.
- * @param account The account the user is on.
- * @param who The name of the contact to check capabilities for.
- * @return The media caps the contact supports.
-PurpleMediaCaps purple_prpl_get_media_caps(PurpleAccount *account,
- * Initiates a media session with the given contact.
- * @param account The account the user is on.
- * @param who The name of the contact to start a session with.
- * @param type The type of media session to start.
- * @return TRUE if the call succeeded else FALSE. (Doesn't imply the media session or stream will be successfully created)
-gboolean purple_prpl_initiate_media(PurpleAccount *account,
- PurpleMediaSessionType type);
- * Signals that the prpl received capabilities for the given contact.
- * This function is intended to be used only by prpls.
- * @param account The account the user is on.
- * @param who The name of the contact for which capabilities have been received.
-void purple_prpl_got_media_caps(PurpleAccount *account, const char *who);
-/**************************************************************************/
-/** @name Protocol Plugin Subsystem API */
-/**************************************************************************/
- * Finds a protocol plugin structure of the specified type.
- * @param id The protocol plugin;
-PurplePlugin *purple_find_prpl(const char *id);
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/purple.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,215 +0,0 @@
-#if defined (__x86_64__)
- * @file purple.h Header files and defines
- * This file contains all the necessary preprocessor directives to include
- * libpurple's headers and other preprocessor directives required for plugins
- * or UIs to build. Including this file eliminates the need to directly
- * include any other libpurple files.
- * @ingroup core libpurple
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_PURPLE_H_
-#define _PURPLE_PURPLE_H_
-#ifndef G_GNUC_NULL_TERMINATED
-# define G_GNUC_NULL_TERMINATED __attribute__((__sentinel__))
-# define G_GNUC_NULL_TERMINATED
-#include <certificate.h>
-#include <conversation.h>
-#include <desktopitem.h>
-#include <mediamanager.h>
-#include <savedstatuses.h>
-#include <sound-theme.h>
-#include <sound-theme-loader.h>
-#include <theme-loader.h>
-#include <theme-manager.h>
-#elif defined (__i386__)
- * @file purple.h Header files and defines
- * This file contains all the necessary preprocessor directives to include
- * libpurple's headers and other preprocessor directives required for plugins
- * or UIs to build. Including this file eliminates the need to directly
- * include any other libpurple files.
- * @ingroup core libpurple
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_PURPLE_H_
-#define _PURPLE_PURPLE_H_
-#ifndef G_GNUC_NULL_TERMINATED
-# define G_GNUC_NULL_TERMINATED __attribute__((__sentinel__))
-# define G_GNUC_NULL_TERMINATED
-#include <certificate.h>
-#include <conversation.h>
-#include <desktopitem.h>
-#include <mediamanager.h>
-#include <savedstatuses.h>
-#include <sound-theme.h>
-#include <sound-theme-loader.h>
-#include <theme-loader.h>
-#include <theme-manager.h>
-#error This isn't a recognized platform.
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/request.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1608 +0,0 @@
- * @file request.h Request API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_REQUEST_H_
-#define _PURPLE_REQUEST_H_
-#include <glib-object.h>
-/** @copydoc _PurpleRequestField */
-typedef struct _PurpleRequestField PurpleRequestField;
-#define PURPLE_DEFAULT_ACTION_NONE -1
- PURPLE_REQUEST_INPUT = 0, /**< Text input request. */
- PURPLE_REQUEST_CHOICE, /**< Multiple-choice request. */
- PURPLE_REQUEST_ACTION, /**< Action request. */
- PURPLE_REQUEST_FIELDS, /**< Multiple fields request. */
- PURPLE_REQUEST_FILE, /**< File open or save request. */
- PURPLE_REQUEST_FOLDER /**< Folder selection request. */
- PURPLE_REQUEST_FIELD_NONE,
- PURPLE_REQUEST_FIELD_STRING,
- PURPLE_REQUEST_FIELD_INTEGER,
- PURPLE_REQUEST_FIELD_BOOLEAN,
- PURPLE_REQUEST_FIELD_CHOICE,
- PURPLE_REQUEST_FIELD_LIST,
- PURPLE_REQUEST_FIELD_LABEL,
- PURPLE_REQUEST_FIELD_IMAGE,
- PURPLE_REQUEST_FIELD_ACCOUNT
-} PurpleRequestFieldType;
- * Multiple fields request data.
- GList *required_fields;
- * A group of fields with a title.
- PurpleRequestFields *fields_list;
-} PurpleRequestFieldGroup;
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_REQUEST_C_)
-struct _PurpleRequestField
- PurpleRequestFieldType type;
- PurpleRequestFieldGroup *group;
- gboolean default_value;
- GHashTable *selected_table;
- gboolean multiple_selection;
- PurpleAccount *default_account;
- PurpleAccount *account;
- PurpleFilterAccountFunc filter_func;
- * Request UI operations.
- /** @see purple_request_input(). */
- void *(*request_input)(const char *title, const char *primary,
- const char *secondary, const char *default_value,
- gboolean multiline, gboolean masked, gchar *hint,
- const char *ok_text, GCallback ok_cb,
- const char *cancel_text, GCallback cancel_cb,
- PurpleAccount *account, const char *who,
- PurpleConversation *conv, void *user_data);
- /** @see purple_request_choice_varg(). */
- void *(*request_choice)(const char *title, const char *primary,
- const char *secondary, int default_value,
- const char *ok_text, GCallback ok_cb,
- const char *cancel_text, GCallback cancel_cb,
- PurpleAccount *account, const char *who,
- PurpleConversation *conv, void *user_data,
- /** @see purple_request_action_varg(). */
- void *(*request_action)(const char *title, const char *primary,
- const char *secondary, int default_action,
- PurpleAccount *account, const char *who,
- PurpleConversation *conv, void *user_data,
- size_t action_count, va_list actions);
- /** @see purple_request_fields(). */
- void *(*request_fields)(const char *title, const char *primary,
- const char *secondary, PurpleRequestFields *fields,
- const char *ok_text, GCallback ok_cb,
- const char *cancel_text, GCallback cancel_cb,
- PurpleAccount *account, const char *who,
- PurpleConversation *conv, void *user_data);
- /** @see purple_request_file(). */
- void *(*request_file)(const char *title, const char *filename,
- gboolean savedialog, GCallback ok_cb,
- GCallback cancel_cb, PurpleAccount *account,
- const char *who, PurpleConversation *conv,
- void (*close_request)(PurpleRequestType type, void *ui_handle);
- /** @see purple_request_folder(). */
- void *(*request_folder)(const char *title, const char *dirname,
- GCallback ok_cb, GCallback cancel_cb,
- PurpleAccount *account, const char *who,
- PurpleConversation *conv, void *user_data);
- /** @see purple_request_action_with_icon_varg(). */
- void *(*request_action_with_icon)(const char *title, const char *primary,
- const char *secondary, int default_action,
- PurpleAccount *account, const char *who,
- PurpleConversation *conv,
- gconstpointer icon_data, gsize icon_size,
- size_t action_count, va_list actions);
- void (*_purple_reserved1)(void);
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
-typedef void (*PurpleRequestInputCb)(void *, const char *);
-/** The type of callbacks passed to purple_request_action(). The first
- * argument is the @a user_data parameter; the second is the index in the list
- * of actions of the one chosen.
-typedef void (*PurpleRequestActionCb)(void *, int);
-typedef void (*PurpleRequestChoiceCb)(void *, int);
-typedef void (*PurpleRequestFieldsCb)(void *, PurpleRequestFields *fields);
-typedef void (*PurpleRequestFileCb)(void *, const char *filename);
-/**************************************************************************/
-/** @name Field List API */
-/**************************************************************************/
- * Creates a list of fields to pass to purple_request_fields().
- * @return A PurpleRequestFields structure.
-PurpleRequestFields *purple_request_fields_new(void);
- * Destroys a list of fields.
- * @param fields The list of fields to destroy.
-void purple_request_fields_destroy(PurpleRequestFields *fields);
- * Adds a group of fields to the list.
- * @param fields The fields list.
- * @param group The group to add.
-void purple_request_fields_add_group(PurpleRequestFields *fields,
- PurpleRequestFieldGroup *group);
- * Returns a list of all groups in a field list.
- * @param fields The fields list.
- * @constreturn A list of groups.
-GList *purple_request_fields_get_groups(const PurpleRequestFields *fields);
- * Returns whether or not the field with the specified ID exists.
- * @param fields The fields list.
- * @param id The ID of the field.
- * @return TRUE if the field exists, or FALSE.
-gboolean purple_request_fields_exists(const PurpleRequestFields *fields,
- * Returns a list of all required fields.
- * @param fields The fields list.
- * @constreturn The list of required fields.
-GList *purple_request_fields_get_required(const PurpleRequestFields *fields);
- * Returns whether or not a field with the specified ID is required.
- * @param fields The fields list.
- * @param id The field ID.
- * @return TRUE if the specified field is required, or FALSE.
-gboolean purple_request_fields_is_field_required(const PurpleRequestFields *fields,
- * Returns whether or not all required fields have values.
- * @param fields The fields list.
- * @return TRUE if all required fields have values, or FALSE.
-gboolean purple_request_fields_all_required_filled(
- const PurpleRequestFields *fields);
- * Return the field with the specified ID.
- * @param fields The fields list.
- * @param id The ID of the field.
- * @return The field, if found.
-PurpleRequestField *purple_request_fields_get_field(
- const PurpleRequestFields *fields, const char *id);
- * Returns the string value of a field with the specified ID.
- * @param fields The fields list.
- * @param id The ID of the field.
- * @return The string value, if found, or @c NULL otherwise.
-const char *purple_request_fields_get_string(const PurpleRequestFields *fields,
- * Returns the integer value of a field with the specified ID.
- * @param fields The fields list.
- * @param id The ID of the field.
- * @return The integer value, if found, or 0 otherwise.
-int purple_request_fields_get_integer(const PurpleRequestFields *fields,
- * Returns the boolean value of a field with the specified ID.
- * @param fields The fields list.
- * @param id The ID of the field.
- * @return The boolean value, if found, or @c FALSE otherwise.
-gboolean purple_request_fields_get_bool(const PurpleRequestFields *fields,
- * Returns the choice index of a field with the specified ID.
- * @param fields The fields list.
- * @param id The ID of the field.
- * @return The choice index, if found, or -1 otherwise.
-int purple_request_fields_get_choice(const PurpleRequestFields *fields,
- * Returns the account of a field with the specified ID.
- * @param fields The fields list.
- * @param id The ID of the field.
- * @return The account value, if found, or NULL otherwise.
-PurpleAccount *purple_request_fields_get_account(const PurpleRequestFields *fields,
-/**************************************************************************/
-/** @name Fields Group API */
-/**************************************************************************/
- * Creates a fields group with an optional title.
- * @param title The optional title to give the group.
- * @return A new fields group
-PurpleRequestFieldGroup *purple_request_field_group_new(const char *title);
- * Destroys a fields group.
- * @param group The group to destroy.
-void purple_request_field_group_destroy(PurpleRequestFieldGroup *group);
- * Adds a field to the group.
- * @param group The group to add the field to.
- * @param field The field to add to the group.
-void purple_request_field_group_add_field(PurpleRequestFieldGroup *group,
- PurpleRequestField *field);
- * Returns the title of a fields group.
- * @param group The group.
- * @return The title, if set.
-const char *purple_request_field_group_get_title(
- const PurpleRequestFieldGroup *group);
- * Returns a list of all fields in a group.
- * @param group The group.
- * @constreturn The list of fields in the group.
-GList *purple_request_field_group_get_fields(
- const PurpleRequestFieldGroup *group);
-/**************************************************************************/
-/**************************************************************************/
- * Creates a field of the specified type.
- * @param id The field ID.
- * @param text The text label of the field.
- * @param type The type of field.
- * @return The new field.
-PurpleRequestField *purple_request_field_new(const char *id, const char *text,
- PurpleRequestFieldType type);
- * @param field The field to destroy.
-void purple_request_field_destroy(PurpleRequestField *field);
- * Sets the label text of a field.
- * @param field The field.
- * @param label The text label.
-void purple_request_field_set_label(PurpleRequestField *field, const char *label);
- * Sets whether or not a field is visible.
- * @param field The field.
- * @param visible TRUE if visible, or FALSE if not.
-void purple_request_field_set_visible(PurpleRequestField *field, gboolean visible);
- * Sets the type hint for the field.
- * This is optionally used by the UIs to provide such features as
- * auto-completion for type hints like "account" and "screenname".
- * @param field The field.
- * @param type_hint The type hint.
-void purple_request_field_set_type_hint(PurpleRequestField *field,
- const char *type_hint);
- * Sets whether or not a field is required.
- * @param field The field.
- * @param required TRUE if required, or FALSE.
-void purple_request_field_set_required(PurpleRequestField *field,
- * Returns the type of a field.
- * @param field The field.
- * @return The field's type.
-PurpleRequestFieldType purple_request_field_get_type(const PurpleRequestField *field);
- * Returns the group for the field.
- * @param field The field.
-PurpleRequestFieldGroup *purple_request_field_get_group(const PurpleRequestField *field);
- * Returns the ID of a field.
- * @param field The field.
-const char *purple_request_field_get_id(const PurpleRequestField *field);
- * Returns the label text of a field.
- * @param field The field.
- * @return The label text.
-const char *purple_request_field_get_label(const PurpleRequestField *field);
- * Returns whether or not a field is visible.
- * @param field The field.
- * @return TRUE if the field is visible. FALSE otherwise.
-gboolean purple_request_field_is_visible(const PurpleRequestField *field);
- * Returns the field's type hint.
- * @param field The field.
- * @return The field's type hint.
-const char *purple_request_field_get_type_hint(const PurpleRequestField *field);
- * Returns whether or not a field is required.
- * @param field The field.
- * @return TRUE if the field is required, or FALSE.
-gboolean purple_request_field_is_required(const PurpleRequestField *field);
- * Returns the ui_data for a field.
- * @param field The field.
-gpointer purple_request_field_get_ui_data(const PurpleRequestField *field);
- * Sets the ui_data for a field.
- * @param field The field.
- * @param ui_data The UI data.
-void purple_request_field_set_ui_data(PurpleRequestField *field,
-/**************************************************************************/
-/** @name String Field API */
-/**************************************************************************/
- * Creates a string request field.
- * @param id The field ID.
- * @param text The text label of the field.
- * @param default_value The optional default value.
- * @param multiline Whether or not this should be a multiline string.
- * @return The new field.
-PurpleRequestField *purple_request_field_string_new(const char *id,
- const char *default_value,
- * Sets the default value in a string field.
- * @param field The field.
- * @param default_value The default value.
-void purple_request_field_string_set_default_value(PurpleRequestField *field,
- const char *default_value);
- * Sets the value in a string field.
- * @param field The field.
- * @param value The value.
-void purple_request_field_string_set_value(PurpleRequestField *field,
- * Sets whether or not a string field is masked
- * (commonly used for password fields).
- * @param field The field.
- * @param masked The masked value.
-void purple_request_field_string_set_masked(PurpleRequestField *field,
- * Sets whether or not a string field is editable.
- * @param field The field.
- * @param editable The editable value.
-void purple_request_field_string_set_editable(PurpleRequestField *field,
- * Returns the default value in a string field.
- * @param field The field.
- * @return The default value.
-const char *purple_request_field_string_get_default_value(
- const PurpleRequestField *field);
- * Returns the user-entered value in a string field.
- * @param field The field.
-const char *purple_request_field_string_get_value(const PurpleRequestField *field);
- * Returns whether or not a string field is multi-line.
- * @param field The field.
- * @return @c TRUE if the field is mulit-line, or @c FALSE otherwise.
-gboolean purple_request_field_string_is_multiline(const PurpleRequestField *field);
- * Returns whether or not a string field is masked.
- * @param field The field.
- * @return @c TRUE if the field is masked, or @c FALSE otherwise.
-gboolean purple_request_field_string_is_masked(const PurpleRequestField *field);
- * Returns whether or not a string field is editable.
- * @param field The field.
- * @return @c TRUE if the field is editable, or @c FALSE otherwise.
-gboolean purple_request_field_string_is_editable(const PurpleRequestField *field);
-/**************************************************************************/
-/** @name Integer Field API */
-/**************************************************************************/
- * Creates an integer field.
- * @param id The field ID.
- * @param text The text label of the field.
- * @param default_value The default value.
- * @return The new field.
-PurpleRequestField *purple_request_field_int_new(const char *id,
- * Sets the default value in an integer field.
- * @param field The field.
- * @param default_value The default value.
-void purple_request_field_int_set_default_value(PurpleRequestField *field,
- * Sets the value in an integer field.
- * @param field The field.
- * @param value The value.
-void purple_request_field_int_set_value(PurpleRequestField *field, int value);
- * Returns the default value in an integer field.
- * @param field The field.
- * @return The default value.
-int purple_request_field_int_get_default_value(const PurpleRequestField *field);
- * Returns the user-entered value in an integer field.
- * @param field The field.
-int purple_request_field_int_get_value(const PurpleRequestField *field);
-/**************************************************************************/
-/** @name Boolean Field API */
-/**************************************************************************/
- * Creates a boolean field.
- * This is often represented as a checkbox.
- * @param id The field ID.
- * @param text The text label of the field.
- * @param default_value The default value.
- * @return The new field.
-PurpleRequestField *purple_request_field_bool_new(const char *id,
- gboolean default_value);
- * Sets the default value in an boolean field.
- * @param field The field.
- * @param default_value The default value.
-void purple_request_field_bool_set_default_value(PurpleRequestField *field,
- gboolean default_value);
- * Sets the value in an boolean field.
- * @param field The field.
- * @param value The value.
-void purple_request_field_bool_set_value(PurpleRequestField *field,
- * Returns the default value in an boolean field.
- * @param field The field.
- * @return The default value.
-gboolean purple_request_field_bool_get_default_value(
- const PurpleRequestField *field);
- * Returns the user-entered value in an boolean field.
- * @param field The field.
-gboolean purple_request_field_bool_get_value(const PurpleRequestField *field);
-/**************************************************************************/
-/** @name Choice Field API */
-/**************************************************************************/
- * Creates a multiple choice field.
- * This is often represented as a group of radio buttons.
- * @param id The field ID.
- * @param text The optional label of the field.
- * @param default_value The default choice.
- * @return The new field.
-PurpleRequestField *purple_request_field_choice_new(const char *id,
- * Adds a choice to a multiple choice field.
- * @param field The choice field.
- * @param label The choice label.
-void purple_request_field_choice_add(PurpleRequestField *field,
- * Sets the default value in an choice field.
- * @param field The field.
- * @param default_value The default value.
-void purple_request_field_choice_set_default_value(PurpleRequestField *field,
- * Sets the value in an choice field.
- * @param field The field.
- * @param value The value.
-void purple_request_field_choice_set_value(PurpleRequestField *field, int value);
- * Returns the default value in an choice field.
- * @param field The field.
- * @return The default value.
-int purple_request_field_choice_get_default_value(const PurpleRequestField *field);
- * Returns the user-entered value in an choice field.
- * @param field The field.
-int purple_request_field_choice_get_value(const PurpleRequestField *field);
- * Returns a list of labels in a choice field.
- * @param field The field.
- * @constreturn The list of labels.
-GList *purple_request_field_choice_get_labels(const PurpleRequestField *field);
-/**************************************************************************/
-/** @name List Field API */
-/**************************************************************************/
- * Creates a multiple list item field.
- * @param id The field ID.
- * @param text The optional label of the field.
- * @return The new field.
-PurpleRequestField *purple_request_field_list_new(const char *id, const char *text);
- * Sets whether or not a list field allows multiple selection.
- * @param field The list field.
- * @param multi_select TRUE if multiple selection is enabled,
-void purple_request_field_list_set_multi_select(PurpleRequestField *field,
- gboolean multi_select);
- * Returns whether or not a list field allows multiple selection.
- * @param field The list field.
- * @return TRUE if multiple selection is enabled, or FALSE otherwise.
-gboolean purple_request_field_list_get_multi_select(
- const PurpleRequestField *field);
- * Returns the data for a particular item.
- * @param field The list field.
- * @param text The item text.
- * @return The data associated with the item.
-void *purple_request_field_list_get_data(const PurpleRequestField *field,
- * Adds an item to a list field.
- * @param field The list field.
- * @param item The list item.
- * @param data The associated data.
- * @deprecated Use purple_request_field_list_add_icon() instead.
-void purple_request_field_list_add(PurpleRequestField *field,
- const char *item, void *data);
- * Adds an item to a list field.
- * @param field The list field.
- * @param item The list item.
- * @param icon_path The path to icon file, or @c NULL for no icon.
- * @param data The associated data.
-void purple_request_field_list_add_icon(PurpleRequestField *field,
- const char *item, const char* icon_path, void* data);
- * Adds a selected item to the list field.
- * @param field The field.
- * @param item The item to add.
-void purple_request_field_list_add_selected(PurpleRequestField *field,
- * Clears the list of selected items in a list field.
- * @param field The field.
-void purple_request_field_list_clear_selected(PurpleRequestField *field);
- * Sets a list of selected items in a list field.
- * @param field The field.
- * @param items The list of selected items, which is not modified or freed.
-void purple_request_field_list_set_selected(PurpleRequestField *field,
- * Returns whether or not a particular item is selected in a list field.
- * @param field The field.
- * @param item The item.
- * @return TRUE if the item is selected. FALSE otherwise.
-gboolean purple_request_field_list_is_selected(const PurpleRequestField *field,
- * Returns a list of selected items in a list field.
- * To retrieve the data for each item, use
- * purple_request_field_list_get_data().
- * @param field The field.
- * @constreturn The list of selected items.
-GList *purple_request_field_list_get_selected(
- const PurpleRequestField *field);
- * Returns a list of items in a list field.
- * @param field The field.
- * @constreturn The list of items.
-GList *purple_request_field_list_get_items(const PurpleRequestField *field);
- * Returns a list of icons in a list field.
- * The icons will correspond with the items, in order.
- * @param field The field.
- * @constreturn The list of icons or @c NULL (i.e. the empty GList) if no
-GList *purple_request_field_list_get_icons(const PurpleRequestField *field);
-/**************************************************************************/
-/** @name Label Field API */
-/**************************************************************************/
- * Creates a label field.
- * @param id The field ID.
- * @param text The label of the field.
- * @return The new field.
-PurpleRequestField *purple_request_field_label_new(const char *id,
-/**************************************************************************/
-/** @name Image Field API */
-/**************************************************************************/
- * Creates an image field.
- * @param id The field ID.
- * @param text The label of the field.
- * @param buf The image data.
- * @param size The size of the data in @a buffer.
- * @return The new field.
-PurpleRequestField *purple_request_field_image_new(const char *id, const char *text,
- const char *buf, gsize size);
- * Sets the scale factors of an image field.
- * @param field The image field.
- * @param x The x scale factor.
- * @param y The y scale factor.
-void purple_request_field_image_set_scale(PurpleRequestField *field, unsigned int x, unsigned int y);
- * Returns pointer to the image.
- * @param field The image field.
- * @return Pointer to the image.
-const char *purple_request_field_image_get_buffer(PurpleRequestField *field);
- * Returns size (in bytes) of the image.
- * @param field The image field.
- * @return Size of the image.
-gsize purple_request_field_image_get_size(PurpleRequestField *field);
- * Returns X scale coefficient of the image.
- * @param field The image field.
- * @return X scale coefficient of the image.
-unsigned int purple_request_field_image_get_scale_x(PurpleRequestField *field);
- * Returns Y scale coefficient of the image.
- * @param field The image field.
- * @return Y scale coefficient of the image.
-unsigned int purple_request_field_image_get_scale_y(PurpleRequestField *field);
-/**************************************************************************/
-/** @name Account Field API */
-/**************************************************************************/
- * Creates an account field.
- * By default, this field will not show offline accounts.
- * @param id The field ID.
- * @param text The text label of the field.
- * @param account The optional default account.
- * @return The new field.
-PurpleRequestField *purple_request_field_account_new(const char *id,
- PurpleAccount *account);
- * Sets the default account on an account field.
- * @param field The account field.
- * @param default_value The default account.
-void purple_request_field_account_set_default_value(PurpleRequestField *field,
- PurpleAccount *default_value);
- * Sets the account in an account field.
- * @param field The account field.
- * @param value The account.
-void purple_request_field_account_set_value(PurpleRequestField *field,
- * Sets whether or not to show all accounts in an account field.
- * If TRUE, all accounts, online or offline, will be shown. If FALSE,
- * only online accounts will be shown.
- * @param field The account field.
- * @param show_all Whether or not to show all accounts.
-void purple_request_field_account_set_show_all(PurpleRequestField *field,
- * Sets the account filter function in an account field.
- * This function will determine which accounts get displayed and which
- * @param field The account field.
- * @param filter_func The account filter function.
-void purple_request_field_account_set_filter(PurpleRequestField *field,
- PurpleFilterAccountFunc filter_func);
- * Returns the default account in an account field.
- * @param field The field.
- * @return The default account.
-PurpleAccount *purple_request_field_account_get_default_value(
- const PurpleRequestField *field);
- * Returns the user-entered account in an account field.
- * @param field The field.
- * @return The user-entered account.
-PurpleAccount *purple_request_field_account_get_value(
- const PurpleRequestField *field);
- * Returns whether or not to show all accounts in an account field.
- * If TRUE, all accounts, online or offline, will be shown. If FALSE,
- * only online accounts will be shown.
- * @param field The account field.
- * @return Whether or not to show all accounts.
-gboolean purple_request_field_account_get_show_all(
- const PurpleRequestField *field);
- * Returns the account filter function in an account field.
- * This function will determine which accounts get displayed and which
- * @param field The account field.
- * @return The account filter function.
-PurpleFilterAccountFunc purple_request_field_account_get_filter(
- const PurpleRequestField *field);
-/**************************************************************************/
-/** @name Request API */
-/**************************************************************************/
- * Prompts the user for text input.
- * @param handle The plugin or connection handle. For some
- * things this is <em>extremely</em> important. The
- * handle is used to programmatically close the request
- * dialog when it is no longer needed. For PRPLs this
- * is often a pointer to the #PurpleConnection
- * instance. For plugins this should be a similar,
- * unique memory location. This value is important
- * because it allows a request to be closed with
- * purple_request_close_with_handle() when, for
- * example, you sign offline. If the request is
- * <em>not</em> closed it is <strong>very</strong>
- * likely to cause a crash whenever the callback
- * handler functions are triggered.
- * @param title The title of the message, or @c NULL if it should have
- * @param primary The main point of the message, or @c NULL if you're
- * @param secondary Secondary information, or @c NULL if there is none.
- * @param default_value The default value.
- * @param multiline @c TRUE if the inputted text can span multiple lines.
- * @param masked @c TRUE if the inputted text should be masked in some
- * way (such as by displaying characters as stars). This
- * might be because the input is some kind of password.
- * @param hint Optionally suggest how the input box should appear.
- * Use "html", for example, to allow the user to enter
- * @param ok_text The text for the @c OK button, which may not be @c NULL.
- * @param ok_cb The callback for the @c OK button, which may not be @c
- * @param cancel_text The text for the @c Cancel button, which may not be @c
- * @param cancel_cb The callback for the @c Cancel button, which may be
- * @param account The #PurpleAccount associated with this request, or @c
- * @param who The username of the buddy associated with this request,
- * or @c NULL if none is.
- * @param conv The #PurpleConversation associated with this request, or
- * @param user_data The data to pass to the callback.
- * @return A UI-specific handle.
-void *purple_request_input(void *handle, const char *title, const char *primary,
- const char *secondary, const char *default_value, gboolean multiline,
- gboolean masked, gchar *hint,
- const char *ok_text, GCallback ok_cb,
- const char *cancel_text, GCallback cancel_cb,
- PurpleAccount *account, const char *who, PurpleConversation *conv,
- * Prompts the user for multiple-choice input.
- * @param handle The plugin or connection handle. For some things this
- * is <em>extremely</em> important. See the comments on
- * purple_request_input().
- * @param title The title of the message, or @c NULL if it should have
- * @param primary The main point of the message, or @c NULL if you're
- * @param secondary Secondary information, or @c NULL if there is none.
- * @param default_value The default choice; this should be one of the values
- * listed in the varargs.
- * @param ok_text The text for the @c OK button, which may not be @c NULL.
- * @param ok_cb The callback for the @c OK button, which may not be @c
- * @param cancel_text The text for the @c Cancel button, which may not be @c
- * @param cancel_cb The callback for the @c Cancel button, or @c NULL to
- * @param account The #PurpleAccount associated with this request, or @c
- * @param who The username of the buddy associated with this request,
- * or @c NULL if none is.
- * @param conv The #PurpleConversation associated with this request, or
- * @param user_data The data to pass to the callback.
- * @param ... The choices, which should be pairs of <tt>char *</tt>
- * descriptions and <tt>int</tt> values, terminated with a
- * @return A UI-specific handle.
-void *purple_request_choice(void *handle, const char *title, const char *primary,
- const char *secondary, int default_value,
- const char *ok_text, GCallback ok_cb,
- const char *cancel_text, GCallback cancel_cb,
- PurpleAccount *account, const char *who, PurpleConversation *conv,
- void *user_data, ...) G_GNUC_NULL_TERMINATED;
- * <tt>va_list</tt> version of purple_request_choice(); see its documentation.
-void *purple_request_choice_varg(void *handle, const char *title,
- const char *primary, const char *secondary, int default_value,
- const char *ok_text, GCallback ok_cb,
- const char *cancel_text, GCallback cancel_cb,
- PurpleAccount *account, const char *who, PurpleConversation *conv,
- void *user_data, va_list choices);
- * Prompts the user for an action.
- * This is often represented as a dialog with a button for each action.
- * @param handle The plugin or connection handle. For some things this
- * is <em>extremely</em> important. See the comments on
- * purple_request_input().
- * @param title The title of the message, or @c NULL if it should have
- * @param primary The main point of the message, or @c NULL if you're
- * @param secondary Secondary information, or @c NULL if there is none.
- * @param default_action The default action, zero-indexed; if the third action
- * supplied should be the default, supply <tt>2</tt>.
- * The should be the action that users are most likely
- * @param account The #PurpleAccount associated with this request, or @c
- * @param who The username of the buddy associated with this request,
- * or @c NULL if none is.
- * @param conv The #PurpleConversation associated with this request, or
- * @param user_data The data to pass to the callback.
- * @param action_count The number of actions.
- * @param ... A list of actions. These are pairs of
- * arguments. The first of each pair is the
- * <tt>char *</tt> label that appears on the button. It
- * should have an underscore before the letter you want
- * to use as the accelerator key for the button. The
- * second of each pair is the #PurpleRequestActionCb
- * function to use when the button is clicked.
- * @return A UI-specific handle.
-void *purple_request_action(void *handle, const char *title, const char *primary,
- const char *secondary, int default_action, PurpleAccount *account,
- const char *who, PurpleConversation *conv, void *user_data,
- size_t action_count, ...);
- * <tt>va_list</tt> version of purple_request_action(); see its documentation.
-void *purple_request_action_varg(void *handle, const char *title,
- const char *primary, const char *secondary, int default_action,
- PurpleAccount *account, const char *who, PurpleConversation *conv,
- void *user_data, size_t action_count, va_list actions);
- * Version of purple_request_action() supplying an image for the UI to
- * optionally display as an icon in the dialog; see its documentation
-void *purple_request_action_with_icon(void *handle, const char *title,
- const char *primary, const char *secondary, int default_action,
- PurpleAccount *account, const char *who, PurpleConversation *conv,
- gconstpointer icon_data, gsize icon_size, void *user_data,
- size_t action_count, ...);
- * <tt>va_list</tt> version of purple_request_action_with_icon();
- * see its documentation.
-void *purple_request_action_with_icon_varg(void *handle, const char *title,
- const char *primary, const char *secondary, int default_action,
- PurpleAccount *account, const char *who, PurpleConversation *conv,
- gconstpointer icon_data, gsize icon_size,
- void *user_data, size_t action_count, va_list actions);
- * Displays groups of fields for the user to fill in.
- * @param handle The plugin or connection handle. For some things this
- * is <em>extremely</em> important. See the comments on
- * purple_request_input().
- * @param title The title of the message, or @c NULL if it should have
- * @param primary The main point of the message, or @c NULL if you're
- * @param secondary Secondary information, or @c NULL if there is none.
- * @param fields The list of fields.
- * @param ok_text The text for the @c OK button, which may not be @c NULL.
- * @param ok_cb The callback for the @c OK button, which may not be @c
- * @param cancel_text The text for the @c Cancel button, which may not be @c
- * @param cancel_cb The callback for the @c Cancel button, which may be
- * @param account The #PurpleAccount associated with this request, or @c
- * @param who The username of the buddy associated with this request,
- * or @c NULL if none is
- * @param conv The #PurpleConversation associated with this request, or
- * @param user_data The data to pass to the callback.
- * @return A UI-specific handle.
-void *purple_request_fields(void *handle, const char *title, const char *primary,
- const char *secondary, PurpleRequestFields *fields,
- const char *ok_text, GCallback ok_cb,
- const char *cancel_text, GCallback cancel_cb,
- PurpleAccount *account, const char *who, PurpleConversation *conv,
- * @param type The request type.
- * @param uihandle The request UI handle.
-void purple_request_close(PurpleRequestType type, void *uihandle);
- * Closes all requests registered with the specified handle.
- * @param handle The handle, as supplied as the @a handle parameter to one of the
- * <tt>purple_request_*</tt> functions.
- * @see purple_request_input().
-void purple_request_close_with_handle(void *handle);
- * A wrapper for purple_request_action() that uses @c Yes and @c No buttons.
-#define purple_request_yes_no(handle, title, primary, secondary, \
- default_action, account, who, conv, \
- user_data, yes_cb, no_cb) \
- purple_request_action((handle), (title), (primary), (secondary), \
- (default_action), account, who, conv, (user_data), 2, \
- _("_Yes"), (yes_cb), _("_No"), (no_cb))
- * A wrapper for purple_request_action() that uses @c OK and @c Cancel buttons.
-#define purple_request_ok_cancel(handle, title, primary, secondary, \
- default_action, account, who, conv, \
- user_data, ok_cb, cancel_cb) \
- purple_request_action((handle), (title), (primary), (secondary), \
- (default_action), account, who, conv, (user_data), 2, \
- _("_OK"), (ok_cb), _("_Cancel"), (cancel_cb))
- * A wrapper for purple_request_action() that uses Accept and Cancel buttons.
-#define purple_request_accept_cancel(handle, title, primary, secondary, \
- default_action, account, who, conv, \
- user_data, accept_cb, cancel_cb) \
- purple_request_action((handle), (title), (primary), (secondary), \
- (default_action), account, who, conv, (user_data), 2, \
- _("_Accept"), (accept_cb), _("_Cancel"), (cancel_cb))
- * A wrapper for purple_request_action_with_icon() that uses Accept and Cancel
-#define purple_request_accept_cancel_with_icon(handle, title, primary, secondary, \
- default_action, account, who, conv, \
- icon_data, icon_size, \
- user_data, accept_cb, cancel_cb) \
- purple_request_action_with_icon((handle), (title), (primary), (secondary), \
- (default_action), account, who, conv, icon_data, icon_size, \
- _("_Accept"), (accept_cb), _("_Cancel"), (cancel_cb))
- * Displays a file selector request dialog. Returns the selected filename to
- * the callback. Can be used for either opening a file or saving a file.
- * @param handle The plugin or connection handle. For some things this
- * is <em>extremely</em> important. See the comments on
- * purple_request_input().
- * @param title The title of the message, or @c NULL if it should have
- * @param filename The default filename (may be @c NULL)
- * @param savedialog True if this dialog is being used to save a file.
- * False if it is being used to open a file.
- * @param ok_cb The callback for the @c OK button.
- * @param cancel_cb The callback for the @c Cancel button, which may be @c NULL.
- * @param account The #PurpleAccount associated with this request, or @c
- * @param who The username of the buddy associated with this request,
- * or @c NULL if none is
- * @param conv The #PurpleConversation associated with this request, or
- * @param user_data The data to pass to the callback.
- * @return A UI-specific handle.
-void *purple_request_file(void *handle, const char *title, const char *filename,
- gboolean savedialog, GCallback ok_cb, GCallback cancel_cb,
- PurpleAccount *account, const char *who, PurpleConversation *conv,
- * Displays a folder select dialog. Returns the selected filename to
- * @param handle The plugin or connection handle. For some things this
- * is <em>extremely</em> important. See the comments on
- * purple_request_input().
- * @param title The title of the message, or @c NULL if it should have
- * @param dirname The default directory name (may be @c NULL)
- * @param ok_cb The callback for the @c OK button.
- * @param cancel_cb The callback for the @c Cancel button, which may be @c NULL.
- * @param account The #PurpleAccount associated with this request, or @c
- * @param who The username of the buddy associated with this request,
- * or @c NULL if none is
- * @param conv The #PurpleConversation associated with this request, or
- * @param user_data The data to pass to the callback.
- * @return A UI-specific handle.
-void *purple_request_folder(void *handle, const char *title, const char *dirname,
- GCallback ok_cb, GCallback cancel_cb,
- PurpleAccount *account, const char *who, PurpleConversation *conv,
-/**************************************************************************/
-/** @name UI Registration Functions */
-/**************************************************************************/
- * Sets the UI operations structure to be used when displaying a
- * @param ops The UI operations structure.
-void purple_request_set_ui_ops(PurpleRequestUiOps *ops);
- * Returns the UI operations structure to be used when displaying a
- * @return The UI operations structure.
-PurpleRequestUiOps *purple_request_get_ui_ops(void);
-#endif /* _PURPLE_REQUEST_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/roomlist.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,398 +0,0 @@
- * @file roomlist.h Room List API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_ROOMLIST_H_
-#define _PURPLE_ROOMLIST_H_
-typedef struct _PurpleRoomlist PurpleRoomlist;
-typedef struct _PurpleRoomlistRoom PurpleRoomlistRoom;
-typedef struct _PurpleRoomlistField PurpleRoomlistField;
-/** @copydoc _PurpleRoomlistUiOps */
-typedef struct _PurpleRoomlistUiOps PurpleRoomlistUiOps;
- * These are ORable flags.
- PURPLE_ROOMLIST_ROOMTYPE_CATEGORY = 0x01, /**< It's a category, but not a room you can join. */
- PURPLE_ROOMLIST_ROOMTYPE_ROOM = 0x02 /**< It's a room, like the kind you can join. */
-} PurpleRoomlistRoomType;
- PURPLE_ROOMLIST_FIELD_BOOL,
- PURPLE_ROOMLIST_FIELD_INT,
- PURPLE_ROOMLIST_FIELD_STRING /**< We do a g_strdup on the passed value if it's this type. */
-} PurpleRoomlistFieldType;
-/**************************************************************************/
-/**************************************************************************/
- * Represents a list of rooms for a given connection on a given protocol.
-struct _PurpleRoomlist {
- PurpleAccount *account; /**< The account this list belongs to. */
- GList *fields; /**< The fields. */
- GList *rooms; /**< The list of rooms. */
- gboolean in_progress; /**< The listing is in progress. */
- gpointer ui_data; /**< UI private data. */
- gpointer proto_data; /** Prpl private data. */
- guint ref; /**< The reference count. */
-struct _PurpleRoomlistRoom {
- PurpleRoomlistRoomType type; /**< The type of room. */
- gchar *name; /**< The name of the room. */
- GList *fields; /**< Other fields. */
- PurpleRoomlistRoom *parent; /**< The parent room, or NULL. */
- gboolean expanded_once; /**< A flag the UI uses to avoid multiple expand prpl cbs. */
- * A field a room might have.
-struct _PurpleRoomlistField {
- PurpleRoomlistFieldType type; /**< The type of field. */
- gchar *label; /**< The i18n user displayed name of the field. */
- gchar *name; /**< The internal name of the field. */
- gboolean hidden; /**< Hidden? */
- * The room list ops to be filled out by the UI.
-struct _PurpleRoomlistUiOps {
- void (*show_with_account)(PurpleAccount *account); /**< Force the ui to pop up a dialog and get the list */
- void (*create)(PurpleRoomlist *list); /**< A new list was created. */
- void (*set_fields)(PurpleRoomlist *list, GList *fields); /**< Sets the columns. */
- void (*add_room)(PurpleRoomlist *list, PurpleRoomlistRoom *room); /**< Add a room to the list. */
- void (*in_progress)(PurpleRoomlist *list, gboolean flag); /**< Are we fetching stuff still? */
- void (*destroy)(PurpleRoomlist *list); /**< We're destroying list. */
- void (*_purple_reserved1)(void);
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
- void (*_purple_reserved4)(void);
-/**************************************************************************/
-/** @name Room List API */
-/**************************************************************************/
- * This is used to get the room list on an account, asking the UI
- * to pop up a dialog with the specified account already selected,
- * and pretend the user clicked the get list button.
- * While we're pretending, predend I didn't say anything about dialogs
- * or buttons, since this is the core.
- * @param account The account to get the list on.
-void purple_roomlist_show_with_account(PurpleAccount *account);
- * Returns a newly created room list object.
- * It has an initial reference count of 1.
- * @param account The account that's listing rooms.
- * @return The new room list handle.
-PurpleRoomlist *purple_roomlist_new(PurpleAccount *account);
- * Increases the reference count on the room list.
- * @param list The object to ref.
-void purple_roomlist_ref(PurpleRoomlist *list);
- * Decreases the reference count on the room list.
- * The room list will be destroyed when this reaches 0.
- * @param list The room list object to unref and possibly
-void purple_roomlist_unref(PurpleRoomlist *list);
- * Set the different field types and their names for this protocol.
- * This must be called before purple_roomlist_room_add().
- * @param list The room list.
- * @param fields A GList of PurpleRoomlistField's. UI's are encouraged
- * to default to displaying them in the order given.
-void purple_roomlist_set_fields(PurpleRoomlist *list, GList *fields);
- * Set the "in progress" state of the room list.
- * The UI is encouraged to somehow hint to the user
- * whether or not we're busy downloading a room list or not.
- * @param list The room list.
- * @param in_progress We're downloading it, or we're not.
-void purple_roomlist_set_in_progress(PurpleRoomlist *list, gboolean in_progress);
- * Gets the "in progress" state of the room list.
- * The UI is encouraged to somehow hint to the user
- * whether or not we're busy downloading a room list or not.
- * @param list The room list.
- * @return True if we're downloading it, or false if we're not.
-gboolean purple_roomlist_get_in_progress(PurpleRoomlist *list);
- * Adds a room to the list of them.
- * @param list The room list.
- * @param room The room to add to the list. The GList of fields must be in the same
- order as was given in purple_roomlist_set_fields().
-void purple_roomlist_room_add(PurpleRoomlist *list, PurpleRoomlistRoom *room);
- * Returns a PurpleRoomlist structure from the prpl, and
- * instructs the prpl to start fetching the list.
- * @param gc The PurpleConnection to have get a list.
- * @return A PurpleRoomlist* or @c NULL if the protocol
- * doesn't support that.
-PurpleRoomlist *purple_roomlist_get_list(PurpleConnection *gc);
- * Tells the prpl to stop fetching the list.
- * If this is possible and done, the prpl will
- * call set_in_progress with @c FALSE and possibly
- * unref the list if it took a reference.
- * @param list The room list to cancel a get_list on.
-void purple_roomlist_cancel_get_list(PurpleRoomlist *list);
- * Tells the prpl that a category was expanded.
- * On some protocols, the rooms in the category
- * won't be fetched until this is called.
- * @param list The room list.
- * @param category The category that was expanded. The expression
- * (category->type & PURPLE_ROOMLIST_ROOMTYPE_CATEGORY)
-void purple_roomlist_expand_category(PurpleRoomlist *list, PurpleRoomlistRoom *category);
- * Get the list of fields for a roomlist.
- * @param roomlist The roomlist, which must not be @c NULL.
- * @constreturn A list of fields
-GList * purple_roomlist_get_fields(PurpleRoomlist *roomlist);
-/**************************************************************************/
-/**************************************************************************/
- * Creates a new room, to be added to the list.
- * @param type The type of room.
- * @param name The name of the room.
- * @param parent The room's parent, if any.
-PurpleRoomlistRoom *purple_roomlist_room_new(PurpleRoomlistRoomType type, const gchar *name,
- PurpleRoomlistRoom *parent);
- * Adds a field to a room.
- * @param list The room list the room belongs to.
- * @param room The room.
- * @param field The field to append. Strings get g_strdup'd internally.
-void purple_roomlist_room_add_field(PurpleRoomlist *list, PurpleRoomlistRoom *room, gconstpointer field);
- * Join a room, given a PurpleRoomlistRoom and it's associated PurpleRoomlist.
- * @param list The room list the room belongs to.
- * @param room The room to join.
-void purple_roomlist_room_join(PurpleRoomlist *list, PurpleRoomlistRoom *room);
- * Get the type of a room.
- * @param room The room, which must not be @c NULL.
- * @return The type of the room.
-PurpleRoomlistRoomType purple_roomlist_room_get_type(PurpleRoomlistRoom *room);
- * Get the name of a room.
- * @param room The room, which must not be @c NULL.
- * @return The name of the room.
-const char * purple_roomlist_room_get_name(PurpleRoomlistRoom *room);
- * Get the parent of a room.
- * @param room The room, which must not be @c NULL.
- * @return The parent of the room, which can be @c NULL.
-PurpleRoomlistRoom * purple_roomlist_room_get_parent(PurpleRoomlistRoom *room);
- * Get the list of fields for a room.
- * @param room The room, which must not be @c NULL.
- * @constreturn A list of fields
-GList * purple_roomlist_room_get_fields(PurpleRoomlistRoom *room);
-/**************************************************************************/
-/** @name Room Field API */
-/**************************************************************************/
- * @param type The type of the field.
- * @param label The i18n'ed, user displayable name.
- * @param name The internal name of the field.
- * @param hidden Hide the field.
- * @return A new PurpleRoomlistField, ready to be added to a GList and passed to
- * purple_roomlist_set_fields().
-PurpleRoomlistField *purple_roomlist_field_new(PurpleRoomlistFieldType type,
- const gchar *label, const gchar *name,
- * Get the type of a field.
- * @param field A PurpleRoomlistField, which must not be @c NULL.
- * @return The type of the field.
-PurpleRoomlistFieldType purple_roomlist_field_get_type(PurpleRoomlistField *field);
- * Get the label of a field.
- * @param field A PurpleRoomlistField, which must not be @c NULL.
- * @return The label of the field.
-const char * purple_roomlist_field_get_label(PurpleRoomlistField *field);
- * Check whether a roomlist-field is hidden.
- * @param field A PurpleRoomlistField, which must not be @c NULL.
- * @return @c TRUE if the field is hidden, @c FALSE otherwise.
-gboolean purple_roomlist_field_get_hidden(PurpleRoomlistField *field);
-/**************************************************************************/
-/** @name UI Registration Functions */
-/**************************************************************************/
- * Sets the UI operations structure to be used in all purple room lists.
- * @param ops The UI operations structure.
-void purple_roomlist_set_ui_ops(PurpleRoomlistUiOps *ops);
- * Returns the purple window UI operations structure to be used in
- * @return A filled-out PurpleRoomlistUiOps structure.
-PurpleRoomlistUiOps *purple_roomlist_get_ui_ops(void);
-#endif /* _PURPLE_ROOMLIST_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/savedstatuses.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,425 +0,0 @@
- * @file savedstatuses.h Saved Status API
- * @see @ref savedstatus-signals
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_SAVEDSTATUSES_H_
-#define _PURPLE_SAVEDSTATUSES_H_
- * Saved statuses don't really interact much with the rest of Purple. It
- * could really be a plugin. It's just a list of away states. When
- * a user chooses one of the saved states, their Purple accounts are set
- * to the settings of that state.
- * In the savedstatus API, there is the concept of a 'transient'
- * saved status. A transient saved status is one that is not
- * permanent. Purple will removed it automatically if it isn't
- * used for a period of time. Transient saved statuses don't
- * have titles and they don't show up in the list of saved
- * statuses. In fact, if a saved status does not have a title
- * then it is transient. If it does have a title, then it is not
- * What good is a transient status, you ask? They can be used to
- * keep track of the user's 5 most recently used statuses, for
- * example. Basically if they just set a message on the fly,
- * we'll cache it for them in case they want to use it again. If
- * they don't use it again, we'll just delete it.
- * TODO: Hmm. We should probably just be saving PurplePresences. That's
- * something we should look into once the status box gets fleshed
-typedef struct _PurpleSavedStatus PurpleSavedStatus;
-typedef struct _PurpleSavedStatusSub PurpleSavedStatusSub;
-/**************************************************************************/
-/** @name Saved status subsystem */
-/**************************************************************************/
- * Create a new saved status. This will add the saved status to the
- * list of saved statuses and writes the revised list to status.xml.
- * @param title The title of the saved status. This must be
- * unique. Or, if you want to create a transient
- * saved status, then pass in NULL.
- * @param type The type of saved status.
- * @return The newly created saved status, or NULL if the title you
- * used was already taken.
-PurpleSavedStatus *purple_savedstatus_new(const char *title,
- PurpleStatusPrimitive type);
- * Set the title for the given saved status.
- * @param status The saved status.
- * @param title The title of the saved status.
-void purple_savedstatus_set_title(PurpleSavedStatus *status,
- * Set the type for the given saved status.
- * @param status The saved status.
- * @param type The type of saved status.
-void purple_savedstatus_set_type(PurpleSavedStatus *status,
- PurpleStatusPrimitive type);
- * Set the message for the given saved status.
- * @param status The saved status.
- * @param message The message, or NULL if you want to unset the
- * message for this status.
-void purple_savedstatus_set_message(PurpleSavedStatus *status,
- * Set a substatus for an account in a saved status.
- * @param status The saved status.
- * @param account The account.
- * @param type The status type for the account in the staved
- * @param message The message for the account in the substatus.
-void purple_savedstatus_set_substatus(PurpleSavedStatus *status,
- const PurpleAccount *account,
- const PurpleStatusType *type,
- * Unset a substatus for an account in a saved status. This clears
- * the previosly set substatus for the PurpleSavedStatus. If this
- * saved status is activated then this account will use the default
- * status type and message.
- * @param saved_status The saved status.
- * @param account The account.
-void purple_savedstatus_unset_substatus(PurpleSavedStatus *saved_status,
- const PurpleAccount *account);
- * Delete a saved status. This removes the saved status from the list
- * of saved statuses, and writes the revised list to status.xml.
- * @param title The title of the saved status.
- * @return TRUE if the status was successfully deleted. FALSE if the
- * status could not be deleted because no saved status exists
- * with the given title.
-gboolean purple_savedstatus_delete(const char *title);
- * Delete a saved status. This removes the saved status from the list
- * of saved statuses, and writes the revised list to status.xml.
- * @param saved_status the status to delete, the pointer is invalid after
-void purple_savedstatus_delete_by_status(PurpleSavedStatus *saved_status);
- * Returns all saved statuses.
- * @constreturn A list of saved statuses.
-GList *purple_savedstatuses_get_all(void);
- * Returns the n most popular saved statuses. "Popularity" is
- * determined by when the last time a saved_status was used and
- * how many times it has been used. Transient statuses without
- * messages are not included in the list.
- * @param how_many The maximum number of saved statuses
- * to return, or '0' to get all saved
- * statuses sorted by popularity.
- * @return A linked list containing at most how_many
- * PurpleSavedStatuses. This list should be
- * g_list_free'd by the caller (but the
- * PurpleSavedStatuses must not be free'd).
-GList *purple_savedstatuses_get_popular(unsigned int how_many);
- * Returns the currently selected saved status. If we are idle
- * then this returns purple_savedstatus_get_idleaway(). Otherwise
- * it returns purple_savedstatus_get_default().
- * @return A pointer to the in-use PurpleSavedStatus.
- * This function never returns NULL.
-PurpleSavedStatus *purple_savedstatus_get_current(void);
- * Returns the default saved status that is used when our
- * accounts are not idle-away.
- * @return A pointer to the in-use PurpleSavedStatus.
- * This function never returns NULL.
-PurpleSavedStatus *purple_savedstatus_get_default(void);
- * Returns the saved status that is used when your
- * accounts become idle-away.
- * @return A pointer to the idle-away PurpleSavedStatus.
- * This function never returns NULL.
-PurpleSavedStatus *purple_savedstatus_get_idleaway(void);
- * Return TRUE if we are currently idle-away. Otherwise
- * @return TRUE if our accounts have been set to idle-away.
-gboolean purple_savedstatus_is_idleaway(void);
- * Set whether accounts in Purple are idle-away or not.
- * @param idleaway TRUE if accounts should be switched to use the
- * idle-away saved status. FALSE if they should
- * be switched to use the default status.
-void purple_savedstatus_set_idleaway(gboolean idleaway);
- * Returns the status to be used when purple is starting up
- * @return A pointer to the startup PurpleSavedStatus.
- * This function never returns NULL.
-PurpleSavedStatus *purple_savedstatus_get_startup(void);
- * Finds a saved status with the specified title.
- * @param title The name of the saved status.
- * @return The saved status if found, or NULL.
-PurpleSavedStatus *purple_savedstatus_find(const char *title);
- * Finds a saved status with the specified creation time.
- * @param creation_time The timestamp when the saved
- * @return The saved status if found, or NULL.
-PurpleSavedStatus *purple_savedstatus_find_by_creation_time(time_t creation_time);
- * Finds a saved status with the specified primitive and message.
- * @param type The PurpleStatusPrimitive for the status you're trying
- * @param message The message for the status you're trying
- * @return The saved status if found, or NULL.
-PurpleSavedStatus *purple_savedstatus_find_transient_by_type_and_message(PurpleStatusPrimitive type, const char *message);
- * Determines if a given saved status is "transient."
- * A transient saved status is one that was not
- * explicitly added by the user. Transient statuses
- * are automatically removed if they are not used
- * for a period of time.
- * A transient saved statuses is automatically
- * created by the status box when the user sets himself
- * to one of the generic primitive statuses. The reason
- * we need to save this status information is so we can
- * restore it when Purple restarts.
- * @param saved_status The saved status.
- * @return TRUE if the saved status is transient.
-gboolean purple_savedstatus_is_transient(const PurpleSavedStatus *saved_status);
- * Return the name of a given saved status.
- * @param saved_status The saved status.
- * @return The title. This value may be a static buffer which may
- * be overwritten on subsequent calls to this function. If
- * you need a reference to the title for prolonged use then
- * you should make a copy of it.
-const char *purple_savedstatus_get_title(const PurpleSavedStatus *saved_status);
- * Return the type of a given saved status.
- * @param saved_status The saved status.
-PurpleStatusPrimitive purple_savedstatus_get_type(const PurpleSavedStatus *saved_status);
- * Return the default message of a given saved status.
- * @param saved_status The saved status.
- * @return The message. This will return NULL if the saved
- * status does not have a message. This will
- * contain the normal markup that is created by
- * Purple's IMHTML (basically HTML markup).
-const char *purple_savedstatus_get_message(const PurpleSavedStatus *saved_status);
- * Return the time in seconds-since-the-epoch when this
- * saved status was created. Note: For any status created
- * by Purple 1.5.0 or older this value will be invalid and
- * very small (close to 0). This is because Purple 1.5.0
- * and older did not record the timestamp when the status
- * However, this value is guaranteed to be a unique
- * identifier for the given saved status.
- * @param saved_status The saved status.
- * @return The timestamp when this saved status was created.
-time_t purple_savedstatus_get_creation_time(const PurpleSavedStatus *saved_status);
- * Determine if a given saved status has "substatuses,"
- * or if it is a simple status (the same for all
- * @param saved_status The saved status.
- * @return TRUE if the saved_status has substatuses.
-gboolean purple_savedstatus_has_substatuses(const PurpleSavedStatus *saved_status);
- * Get the substatus for an account in a saved status.
- * @param saved_status The saved status.
- * @param account The account.
- * @return The PurpleSavedStatusSub for the account, or NULL if
- * the given account does not have a substatus that
- * differs from the default status of this PurpleSavedStatus.
-PurpleSavedStatusSub *purple_savedstatus_get_substatus(
- const PurpleSavedStatus *saved_status,
- const PurpleAccount *account);
- * Get the status type of a given substatus.
- * @param substatus The substatus.
- * @return The status type.
-const PurpleStatusType *purple_savedstatus_substatus_get_type(const PurpleSavedStatusSub *substatus);
- * Get the message of a given substatus.
- * @param substatus The substatus.
- * @return The message of the substatus, or NULL if this substatus does
-const char *purple_savedstatus_substatus_get_message(const PurpleSavedStatusSub *substatus);
- * Sets the statuses for all your accounts to those specified
- * by the given saved_status. This function calls
- * purple_savedstatus_activate_for_account() for all your accounts.
- * @param saved_status The status you want to set your accounts to.
-void purple_savedstatus_activate(PurpleSavedStatus *saved_status);
- * Sets the statuses for a given account to those specified
- * by the given saved_status.
- * @param saved_status The status you want to set your accounts to.
- * @param account The account whose statuses you want to change.
-void purple_savedstatus_activate_for_account(const PurpleSavedStatus *saved_status, PurpleAccount *account);
- * Get the handle for the status subsystem.
- * @return the handle to the status subsystem
-void *purple_savedstatuses_get_handle(void);
- * Initializes the status subsystem.
-void purple_savedstatuses_init(void);
- * Uninitializes the status subsystem.
-void purple_savedstatuses_uninit(void);
-#endif /* _PURPLE_SAVEDSTATUSES_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/sbconn.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
- * @file sbconn.h MSN Switchboard Connection
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#define MSN_SBCONN_MAX_SIZE 1202
-void msn_sbconn_send_part(MsnSlpLink *slplink, MsnSlpMessagePart *part);
-void msn_switchboard_send_msg(MsnSwitchBoard *swboard, MsnMessage *msg,
-msn_sbconn_process_queue(MsnSwitchBoard *swboard);
-#endif /* MSN_SBCONN_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/search.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,152 +0,0 @@
- * Copyright (C) 2005 Bartosz Oler <bartosz@bzimage.us>
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_GG_SEARCH_H
-#define _PURPLE_GG_SEARCH_H
- GGPSearchType search_type;
- guint16 page_size; /* how many contacts fits into one page of results */
-typedef GHashTable GGPSearches;
- * Create a new GGPSearchForm structure, and set the fields
- * to the sane defaults.
- * @return Newly allocated GGPSearchForm.
-ggp_search_form_new(GGPSearchType st);
- * Destroy a Search Form.
- * @param form Search Form to destroy.
-ggp_search_form_destroy(GGPSearchForm *form);
- * Add a search to the list of searches.
- * @param searches The list of searches.
- * @param seq Search (form) ID number.
- * @param form The search form to add.
-ggp_search_add(GGPSearches *searches, guint32 seq, GGPSearchForm *form);
- * Remove a search from the list.
- * If you want to destory the search completely also call:
- * ggp_search_form_destroy().
- * @param searches The list of searches.
- * @param seq ID number of the search.
-ggp_search_remove(GGPSearches *searches, guint32 seq);
- * Return the search with the specified ID.
- * @param searches The list of searches.
- * @param seq ID number of the search.
-ggp_search_get(GGPSearches *searches, guint32 seq);
- * Create a new GGPSearches structure.
- * @return GGPSearches instance.
- * Destroy GGPSearches instance.
- * @param searches GGPSearches instance.
-ggp_search_destroy(GGPSearches *searches);
- * Initiate a search in the public directory.
- * @param gc PurpleConnection.
- * @param form Filled in GGPSearchForm.
- * @return Sequence number of a search or 0 if an error occurred.
-ggp_search_start(PurpleConnection *gc, GGPSearchForm *form);
- * Return converted to the UTF-8 value of the specified field.
- * @param res Public directory look-up result.
- * @param num Id of the record.
- * @param fileld Name of the field.
- * @return UTF-8 encoded value of the field.
-ggp_search_get_result(gg_pubdir50_t res, int num, const char *field);
-#endif /* _PURPLE_GG_SEARCH_H */
-/* vim: set ts=8 sts=0 sw=8 noet: */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/servconn.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,193 +0,0 @@
- * @file servconn.h Server connection functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-typedef struct _MsnServConn MsnServConn;
- * Connection error types.
- MSN_SERVCONN_ERROR_NONE,
- MSN_SERVCONN_ERROR_CONNECT,
- MSN_SERVCONN_ERROR_WRITE,
- MSN_SERVCONN_ERROR_READ
- MsnServConnType type; /**< The type of this connection. */
- MsnSession *session; /**< The MSN session of this connection. */
- MsnCmdProc *cmdproc; /**< The command processor of this connection. */
- PurpleProxyConnectData *connect_data;
- gboolean connected; /**< A flag that states if it's connected. */
- gboolean processing; /**< A flag that states if something is working
- with this connection. */
- gboolean wasted; /**< A flag that states if it should be destroyed. */
- char *host; /**< The host this connection is connected or should be
- int num; /**< A number id of this connection. */
- MsnHttpConn *httpconn; /**< The HTTP connection this connection should use. */
- int fd; /**< The connection's file descriptor. */
- int inpa; /**< The connection's input handler. */
- char *rx_buf; /**< The receive buffer. */
- int rx_len; /**< The receive buffer lenght. */
- size_t payload_len; /**< The length of the payload.
- It's only set when we've received a command that
- PurpleCircBuffer *tx_buf;
- void (*connect_cb)(MsnServConn *); /**< The callback to call when connecting. */
- void (*disconnect_cb)(MsnServConn *); /**< The callback to call when disconnecting. */
- void (*destroy_cb)(MsnServConn *); /**< The callback to call when destroying. */
- * Creates a new connection object.
- * @param session The session.
- * @param type The type of the connection.
-MsnServConn *msn_servconn_new(MsnSession *session, MsnServConnType type);
- * Destroys a connection object.
- * @param servconn The connection.
-void msn_servconn_destroy(MsnServConn *servconn);
- * @param servconn The connection.
- * @param host The host.
- * @param port The port.
- * @param force Force this servconn to connect to a new server.
-gboolean msn_servconn_connect(MsnServConn *servconn, const char *host, int port,
- * @param servconn The connection.
-void msn_servconn_disconnect(MsnServConn *servconn);
- * Sets the connect callback.
- * @param servconn The servconn.
- * @param connect_cb The connect callback.
-void msn_servconn_set_connect_cb(MsnServConn *servconn,
- void (*connect_cb)(MsnServConn *));
- * Sets the disconnect callback.
- * @param servconn The servconn.
- * @param disconnect_cb The disconnect callback.
-void msn_servconn_set_disconnect_cb(MsnServConn *servconn,
- void (*disconnect_cb)(MsnServConn *));
- * Sets the destroy callback.
- * @param servconn The servconn that's being destroyed.
- * @param destroy_cb The destroy callback.
-void msn_servconn_set_destroy_cb(MsnServConn *servconn,
- void (*destroy_cb)(MsnServConn *));
- * Writes a chunck of data to the servconn.
- * @param servconn The servconn.
- * @param buf The data to write.
- * @param size The size of the data.
-gssize msn_servconn_write(MsnServConn *servconn, const char *buf,
- * Function to call whenever an error related to a switchboard occurs.
- * @param servconn The servconn.
- * @param error The error that happened.
-void msn_servconn_got_error(MsnServConn *servconn, MsnServConnError error,
- * Process the data in servconn->rx_buf. This is called after reading
- * data from the socket.
- * @param servconn The servconn.
- * @return @c NULL if servconn was destroyed, 'servconn' otherwise.
-MsnServConn *msn_servconn_process_data(MsnServConn *servconn);
- * Set a idle timeout fot this servconn
- * @param servconn The servconn
- * @param seconds The idle timeout in seconds
-void msn_servconn_set_idle_timeout(MsnServConn *servconn, guint seconds);
-#endif /* MSN_SERVCONN_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/server.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,218 +0,0 @@
- * @file server.h Server API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_SERVER_H_
-#define _PURPLE_SERVER_H_
-#include "conversation.h"
- * Send a typing message to a given user over a given connection.
- * TODO: Could probably move this into the conversation API.
- * @param gc The connection over which to send the typing notification.
- * @param name The user to send the typing notification to.
- * @param state One of PURPLE_TYPING, PURPLE_TYPED, or PURPLE_NOT_TYPING.
- * @return A quiet-period, specified in seconds, where Purple will not
- * send any additional typing notification messages. Most
- * protocols should return 0, which means that no additional
- * PURPLE_TYPING messages need to be sent. If this is 5, for
- * example, then Purple will wait five seconds, and if the Purple
- * user is still typing then Purple will send another PURPLE_TYPING
-unsigned int serv_send_typing(PurpleConnection *gc, const char *name, PurpleTypingState state);
-void serv_move_buddy(PurpleBuddy *, PurpleGroup *, PurpleGroup *);
-int serv_send_im(PurpleConnection *, const char *, const char *, PurpleMessageFlags flags);
-/** Get information about an account's attention commands, from the prpl.
- * @return The attention command numbered 'code' from the prpl's attention_types, or NULL.
-PurpleAttentionType *purple_get_attention_type_from_code(PurpleAccount *account, guint type_code);
-/** Send an attention request message.
- * @deprecated Use purple_prpl_send_attention() instead.
- * @param gc The connection to send the message on.
- * @param who Whose attention to request.
- * @param type_code An index into the prpl's attention_types list determining the type
- * of the attention request command to send. 0 if prpl only defines one
- * (for example, Yahoo and MSN), but some protocols define more (MySpaceIM).
- * Note that you can't send arbitrary PurpleAttentionType's, because there is
- * only a fixed set of attention commands.
-void serv_send_attention(PurpleConnection *gc, const char *who, guint type_code);
-/** Process an incoming attention message.
- * @deprecated Use purple_prpl_got_attention() instead.
- * @param gc The connection that received the attention message.
- * @param who Who requested your attention.
- * @param type_code An index into the prpl's attention_types list determining the type
- * of the attention request command to send.
-void serv_got_attention(PurpleConnection *gc, const char *who, guint type_code);
-void serv_get_info(PurpleConnection *, const char *);
-void serv_set_info(PurpleConnection *, const char *);
-void serv_add_permit(PurpleConnection *, const char *);
-void serv_add_deny(PurpleConnection *, const char *);
-void serv_rem_permit(PurpleConnection *, const char *);
-void serv_rem_deny(PurpleConnection *, const char *);
-void serv_set_permit_deny(PurpleConnection *);
-void serv_chat_invite(PurpleConnection *, int, const char *, const char *);
-void serv_chat_leave(PurpleConnection *, int);
-void serv_chat_whisper(PurpleConnection *, int, const char *, const char *);
-int serv_chat_send(PurpleConnection *, int, const char *, PurpleMessageFlags flags);
-void serv_alias_buddy(PurpleBuddy *);
-void serv_got_alias(PurpleConnection *gc, const char *who, const char *alias);
- * A protocol plugin should call this when it retrieves a private alias from
- * the server. Private aliases are the aliases the user sets, while public
- * aliases are the aliases or display names that buddies set for themselves.
- * @param gc The connection on which the alias was received.
- * @param who The name of the buddy whose alias was received.
- * @param alias The alias that was received.
-void purple_serv_got_private_alias(PurpleConnection *gc, const char *who, const char *alias);
- * Receive a typing message from a remote user. Either PURPLE_TYPING
- * or PURPLE_TYPED. If the user has stopped typing then use
- * serv_got_typing_stopped instead.
- * TODO: Could probably move this into the conversation API.
- * @param gc The connection on which the typing message was received.
- * @param name The name of the remote user.
- * @param timeout If this is a number greater than 0, then
- * Purple will wait this number of seconds and then
- * set this buddy to the PURPLE_NOT_TYPING state. This
- * is used by protocols that send repeated typing messages
- * while the user is composing the message.
- * @param state The typing state received
-void serv_got_typing(PurpleConnection *gc, const char *name, int timeout,
- PurpleTypingState state);
- * TODO: Could probably move this into the conversation API.
-void serv_got_typing_stopped(PurpleConnection *gc, const char *name);
-void serv_got_im(PurpleConnection *gc, const char *who, const char *msg,
- PurpleMessageFlags flags, time_t mtime);
- * @param data The hash function should be g_str_hash() and the equal
- * function should be g_str_equal().
-void serv_join_chat(PurpleConnection *, GHashTable *data);
- * @param data The hash function should be g_str_hash() and the equal
- * function should be g_str_equal().
-void serv_reject_chat(PurpleConnection *, GHashTable *data);
- * Called by a prpl when an account is invited into a chat.
- * @param gc The connection on which the invite arrived.
- * @param name The name of the chat you're being invited to.
- * @param who The username of the person inviting the account.
- * @param message The optional invite message.
- * @param data The components necessary if you want to call serv_join_chat().
- * The hash function should be g_str_hash() and the equal
- * function should be g_str_equal().
-void serv_got_chat_invite(PurpleConnection *gc, const char *name,
- const char *who, const char *message,
- * Called by a prpl when an account has joined a chat.
- * @param gc The connection on which the chat was joined.
- * @param id The id of the chat, assigned by the prpl.
- * @param name The name of the chat.
- * @return The resulting conversation
-PurpleConversation *serv_got_joined_chat(PurpleConnection *gc,
- int id, const char *name);
- * Called by a prpl when an attempt to join a chat via serv_join_chat()
- * @param gc The connection on which chat joining failed
- * @param data The components passed to serv_join_chat() originally.
- * The hash function should be g_str_hash() and the equal
- * function should be g_str_equal().
-void purple_serv_got_join_chat_failed(PurpleConnection *gc, GHashTable *data);
- * Called by a prpl when an account has left a chat.
- * @param g The connection on which the chat was left.
- * @param id The id of the chat, as assigned by the prpl.
-void serv_got_chat_left(PurpleConnection *g, int id);
- * Called by a prpl when a message has been received in a chat.
- * @param g The connection on which the message was received.
- * @param id The id of the chat, as assigned by the prpl.
- * @param who The name of the user who sent the message.
- * @param flags The flags of the message.
- * @param message The message received in the chat.
- * @param mtime The time when the message was received.
-void serv_got_chat_in(PurpleConnection *g, int id, const char *who,
- PurpleMessageFlags flags, const char *message, time_t mtime);
-void serv_send_file(PurpleConnection *gc, const char *who, const char *file);
-#endif /* _PURPLE_SERVER_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/session.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,245 +0,0 @@
- * @file session.h MSN session functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-typedef struct _MsnSession MsnSession;
- MSN_ERROR_UNSUPPORTED_PROTOCOL,
- MSN_ERROR_HTTP_MALFORMED,
- MSN_ERROR_SERV_UNAVAILABLE
- MSN_LOGIN_STEP_HANDSHAKE,
- MSN_LOGIN_STEP_TRANSFER,
- MSN_LOGIN_STEP_HANDSHAKE2,
- MSN_LOGIN_STEP_AUTH_START,
- MSN_LOGIN_STEP_GET_COOKIE,
- MSN_LOGIN_STEP_AUTH_END,
-#define MSN_LOGIN_STEPS MSN_LOGIN_STEP_END
-#define MSN_LOGIN_FQY_TIMEOUT 30
-#define MSN_LOGIN_FQY_TIMEOUT 30
-#include "notification.h"
-#include "switchboard.h"
- PurpleAccount *account;
- MsnLoginStep login_step; /**< The current step in the login process. */
- gboolean logged_in:1; /**< A temporal flag to ignore local buddy list adds. */
- gboolean destroying:1; /**< A flag that states if the session is being destroyed. */
- gboolean http_method:1;
- gboolean enable_mpop:1; /**< Use Multiple Points of Presence? */
- int adl_fqy; /**< A count of ADL/FQY so status is only changed once. */
- guint login_timeout; /**< Timeout to force status change if ADL/FQY fail. */
- MsnNotification *notification;
- int servconns_count; /**< The count of server connections. */
- GList *switches; /**< The list of all the switchboards. */
- GList *slplinks; /**< The list of all the slplinks. */
- gboolean email_enabled;
- GHashTable *soap_table;
- guint soap_cleanup_handle;
- GSList *url_datas; /**< PurpleUtilFetchUrlData to be cancelled on exit */
- * Creates an MSN session.
- * @param account The account.
- * @return The new MSN session.
-MsnSession *msn_session_new(PurpleAccount *account);
- * Destroys an MSN session.
- * @param session The MSN session to destroy.
-void msn_session_destroy(MsnSession *session);
- * Connects to and initiates an MSN session.
- * @param session The MSN session.
- * @param host The dispatch server host.
- * @param port The dispatch server port.
- * @param http_method Whether to use or not http_method.
- * @return @c TRUE on success, @c FALSE on failure.
-gboolean msn_session_connect(MsnSession *session,
- const char *host, int port,
- * Disconnects from an MSN session.
- * @param session The MSN session.
-void msn_session_disconnect(MsnSession *session);
- * Finds a switchboard with the given username.
- * @param session The MSN session.
- * @param username The username to search for.
- * @return The switchboard, if found.
-MsnSwitchBoard *msn_session_find_swboard(MsnSession *session,
- * Finds a switchboard with the given conversation.
- * @param session The MSN session.
- * @param conv The conversation to search for.
- * @return The switchboard, if found.
-MsnSwitchBoard *msn_session_find_swboard_with_conv(MsnSession *session,
- PurpleConversation *conv);
- * Finds a switchboard with the given chat ID.
- * @param session The MSN session.
- * @param chat_id The chat ID to search for.
- * @return The switchboard, if found.
-MsnSwitchBoard *msn_session_find_swboard_with_id(const MsnSession *session,
- * Returns a switchboard to communicate with certain username.
- * @param session The MSN session.
- * @param username The username to search for.
- * @param flag The flag of the switchboard
- * @return The switchboard.
-MsnSwitchBoard *msn_session_get_swboard(MsnSession *session,
- const char *username, MsnSBFlag flag);
- * Sets an error for the MSN session.
- * @param session The MSN session.
- * @param error The error.
- * @param info Extra information.
-void msn_session_set_error(MsnSession *session, MsnErrorType error,
- * Starts a timeout to initiate finishing login. Sometimes the server ignores
- * our FQY requests, so this forces ourselves online eventually.
- * @param session The MSN session.
-msn_session_activate_login_timeout(MsnSession *session);
- * Sets the current step in the login process.
- * @param session The MSN session.
- * @param step The current step.
-void msn_session_set_login_step(MsnSession *session, MsnLoginStep step);
- * Finish the login proccess.
- * @param session The MSN session.
-void msn_session_finish_login(MsnSession *session);
-/*post message to User*/
-void msn_session_report_user(MsnSession *session,const char *passport,
- const char *msg,PurpleMessageFlags flags);
-#endif /* MSN_SESSION_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/si.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
- * @file si.h SI transfer functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef PURPLE_JABBER_SI_H_
-#define PURPLE_JABBER_SI_H_
-void jabber_bytestreams_parse(JabberStream *js, const char *from,
- JabberIqType type, const char *id, xmlnode *query);
-void jabber_si_parse(JabberStream *js, const char *from, JabberIqType type,
- const char *id, xmlnode *si);
-PurpleXfer *jabber_si_new_xfer(PurpleConnection *gc, const char *who);
-void jabber_si_xfer_send(PurpleConnection *gc, const char *who, const char *file);
-void jabber_si_init(void);
-void jabber_si_uninit(void);
-#endif /* PURPLE_JABBER_SI_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/signals.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,380 +0,0 @@
- * @file signals.h Signal API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_SIGNALS_H_
-#define _PURPLE_SIGNALS_H_
-#define PURPLE_CALLBACK(func) ((PurpleCallback)func)
-typedef void (*PurpleCallback)(void);
-typedef void (*PurpleSignalMarshalFunc)(PurpleCallback cb, va_list args,
- void *data, void **return_val);
-/**************************************************************************/
-/**************************************************************************/
-/** The priority of a signal connected using purple_signal_connect().
- * @see purple_signal_connect_priority()
-#define PURPLE_SIGNAL_PRIORITY_DEFAULT 0
-/** The largest signal priority; signals with this priority will be called
- * <em>last</em>. (This is highest as in numerical value, not as in order of
- * @see purple_signal_connect_priority().
-#define PURPLE_SIGNAL_PRIORITY_HIGHEST 9999
-/** The smallest signal priority; signals with this priority will be called
- * <em>first</em>. (This is lowest as in numerical value, not as in order of
- * @see purple_signal_connect_priority().
-#define PURPLE_SIGNAL_PRIORITY_LOWEST -9999
- * Registers a signal in an instance.
- * @param instance The instance to register the signal for.
- * @param signal The signal name.
- * @param marshal The marshal function.
- * @param ret_value The return value type, or NULL for no return value.
- * @param num_values The number of values to be passed to the callbacks.
- * @param ... The values to pass to the callbacks.
- * @return The signal ID local to that instance, or 0 if the signal
- * couldn't be registered.
-gulong purple_signal_register(void *instance, const char *signal,
- PurpleSignalMarshalFunc marshal,
- PurpleValue *ret_value, int num_values, ...);
- * Unregisters a signal in an instance.
- * @param instance The instance to unregister the signal for.
- * @param signal The signal name.
-void purple_signal_unregister(void *instance, const char *signal);
- * Unregisters all signals in an instance.
- * @param instance The instance to unregister the signal for.
-void purple_signals_unregister_by_instance(void *instance);
- * Returns a list of value types used for a signal.
- * @param instance The instance the signal is registered to.
- * @param signal The signal.
- * @param ret_value The return value from the last signal handler.
- * @param num_values The returned number of values.
- * @param values The returned list of values.
-void purple_signal_get_values(void *instance, const char *signal,
- PurpleValue **ret_value,
- int *num_values, PurpleValue ***values);
- * Connects a signal handler to a signal for a particular object.
- * Take care not to register a handler function twice. Purple will
- * not correct any mistakes for you in this area.
- * @param instance The instance to connect to.
- * @param signal The name of the signal to connect.
- * @param handle The handle of the receiver.
- * @param func The callback function.
- * @param data The data to pass to the callback function.
- * @param priority The priority with which the handler should be called. Signal
- * handlers are called in ascending numerical order of @a
- * priority from #PURPLE_SIGNAL_PRIORITY_LOWEST to
- * #PURPLE_SIGNAL_PRIORITY_HIGHEST.
- * @return The signal handler ID.
- * @see purple_signal_disconnect()
-gulong purple_signal_connect_priority(void *instance, const char *signal,
- void *handle, PurpleCallback func, void *data, int priority);
- * Connects a signal handler to a signal for a particular object.
- * (Its priority defaults to 0, aka #PURPLE_SIGNAL_PRIORITY_DEFAULT.)
- * Take care not to register a handler function twice. Purple will
- * not correct any mistakes for you in this area.
- * @param instance The instance to connect to.
- * @param signal The name of the signal to connect.
- * @param handle The handle of the receiver.
- * @param func The callback function.
- * @param data The data to pass to the callback function.
- * @return The signal handler ID.
- * @see purple_signal_disconnect()
-gulong purple_signal_connect(void *instance, const char *signal,
- void *handle, PurpleCallback func, void *data);
- * Connects a signal handler to a signal for a particular object.
- * The signal handler will take a va_args of arguments, instead of
- * individual arguments.
- * Take care not to register a handler function twice. Purple will
- * not correct any mistakes for you in this area.
- * @param instance The instance to connect to.
- * @param signal The name of the signal to connect.
- * @param handle The handle of the receiver.
- * @param func The callback function.
- * @param data The data to pass to the callback function.
- * @param priority The priority with which the handler should be called. Signal
- * handlers are called in ascending numerical order of @a
- * priority from #PURPLE_SIGNAL_PRIORITY_LOWEST to
- * #PURPLE_SIGNAL_PRIORITY_HIGHEST.
- * @return The signal handler ID.
- * @see purple_signal_disconnect()
-gulong purple_signal_connect_priority_vargs(void *instance, const char *signal,
- void *handle, PurpleCallback func, void *data, int priority);
- * Connects a signal handler to a signal for a particular object.
- * (Its priority defaults to 0, aka #PURPLE_SIGNAL_PRIORITY_DEFAULT.)
- * The signal handler will take a va_args of arguments, instead of
- * individual arguments.
- * Take care not to register a handler function twice. Purple will
- * not correct any mistakes for you in this area.
- * @param instance The instance to connect to.
- * @param signal The name of the signal to connect.
- * @param handle The handle of the receiver.
- * @param func The callback function.
- * @param data The data to pass to the callback function.
- * @return The signal handler ID.
- * @see purple_signal_disconnect()
-gulong purple_signal_connect_vargs(void *instance, const char *signal,
- void *handle, PurpleCallback func, void *data);
- * Disconnects a signal handler from a signal on an object.
- * @param instance The instance to disconnect from.
- * @param signal The name of the signal to disconnect.
- * @param handle The handle of the receiver.
- * @param func The registered function to disconnect.
- * @see purple_signal_connect()
-void purple_signal_disconnect(void *instance, const char *signal,
- void *handle, PurpleCallback func);
- * Removes all callbacks associated with a receiver handle.
- * @param handle The receiver handle.
-void purple_signals_disconnect_by_handle(void *handle);
- * @param instance The instance emitting the signal.
- * @param signal The signal being emitted.
- * @see purple_signal_connect()
- * @see purple_signal_disconnect()
-void purple_signal_emit(void *instance, const char *signal, ...);
- * Emits a signal, using a va_list of arguments.
- * @param instance The instance emitting the signal.
- * @param signal The signal being emitted.
- * @param args The arguments list.
- * @see purple_signal_connect()
- * @see purple_signal_disconnect()
-void purple_signal_emit_vargs(void *instance, const char *signal, va_list args);
- * Emits a signal and returns the first non-NULL return value.
- * Further signal handlers are NOT called after a handler returns
- * something other than NULL.
- * @param instance The instance emitting the signal.
- * @param signal The signal being emitted.
- * @return The first non-NULL return value
-void *purple_signal_emit_return_1(void *instance, const char *signal, ...);
- * Emits a signal and returns the first non-NULL return value.
- * Further signal handlers are NOT called after a handler returns
- * something other than NULL.
- * @param instance The instance emitting the signal.
- * @param signal The signal being emitted.
- * @param args The arguments list.
- * @return The first non-NULL return value
-void *purple_signal_emit_vargs_return_1(void *instance, const char *signal,
- * Initializes the signals subsystem.
-void purple_signals_init(void);
- * Uninitializes the signals subsystem.
-void purple_signals_uninit(void);
-/**************************************************************************/
-/** @name Marshal Functions */
-/**************************************************************************/
-void purple_marshal_VOID(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_VOID__INT(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_VOID__INT_INT(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_VOID__POINTER(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_VOID__POINTER_UINT(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_VOID__POINTER_INT_INT(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_VOID__POINTER_INT_POINTER(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_VOID__POINTER_POINTER(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_VOID__POINTER_POINTER_UINT(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_VOID__POINTER_POINTER_UINT_UINT(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_VOID__POINTER_POINTER_POINTER(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_POINTER(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_VOID__POINTER_POINTER_POINTER_UINT(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_UINT(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_VOID__POINTER_POINTER_POINTER_UINT_UINT(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_INT__INT(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_INT__INT_INT(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_INT__POINTER_POINTER(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_INT__POINTER_POINTER_POINTER(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_INT__POINTER_POINTER_POINTER_POINTER_POINTER(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_BOOLEAN__POINTER(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_BOOLEAN__POINTER_POINTER(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_BOOLEAN__POINTER_BOOLEAN(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_BOOLEAN__POINTER_POINTER_POINTER(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_BOOLEAN__POINTER_POINTER_UINT(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_UINT(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_UINT(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER_POINTER(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_BOOLEAN__INT_POINTER(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_POINTER__POINTER(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_POINTER__POINTER_INT(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_POINTER__POINTER_INT64(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_POINTER__POINTER_INT_BOOLEAN(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_POINTER__POINTER_INT64_BOOLEAN(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-void purple_marshal_POINTER__POINTER_POINTER(
- PurpleCallback cb, va_list args, void *data, void **return_val);
-#endif /* _PURPLE_SIGNALS_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/slp.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
- * @file slp.h MSNSLP support
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-msn_slp_send_ok(MsnSlpCall *slpcall, const char *branch,
- const char *type, const char *content);
-msn_slp_send_decline(MsnSlpCall *slpcall, const char *branch,
- const char *type, const char *content);
-void send_bye(MsnSlpCall *slpcall, const char *type);
-void msn_request_user_display(MsnUser *user);
-void msn_request_ft(PurpleXfer *xfer);
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/slpcall.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
- * @file slpcall.h SLP Call functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-typedef struct _MsnSlpCall MsnSlpCall;
-/* The official client seems to timeout slp calls after 5 minutes */
-#define MSN_SLPCALL_TIMEOUT 300
- /* Our parent slplink */
- gboolean pending; /**< A flag that states if we should wait for this
- slpcall to start and do not time out. */
- gboolean progress; /**< A flag that states if there has been progress since
- gboolean wasted; /**< A flag that states if this slpcall is going to be
- gboolean started; /**< A flag that states if this slpcall's session has
- gboolean wait_for_socket;
- void (*progress_cb)(MsnSlpCall *slpcall,
- gsize total_length, gsize len);
- void (*session_init_cb)(MsnSlpCall *slpcall);
- /* Can be checksum, or smile */
- GByteArray *incoming_data;
- MsnSlpMessage *xfer_msg; /* A dirty hack */
- void (*end_cb)(MsnSlpCall *slpcall, MsnSession *session);
-MsnSlpCall *msn_slpcall_new(MsnSlpLink *slplink);
-void msn_slpcall_init(MsnSlpCall *slpcall, MsnSlpCallType type);
-void msn_slpcall_session_init(MsnSlpCall *slpcall);
-void msn_slpcall_destroy(MsnSlpCall *slpcall);
-void msn_slpcall_invite(MsnSlpCall *slpcall, const char *euf_guid,
- MsnP2PAppId app_id, const char *context);
-void msn_slpcall_close(MsnSlpCall *slpcall);
-#endif /* MSN_SLPCALL_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/slplink.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
- * @file slplink.h MSNSLP Link support
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-typedef struct _MsnSlpLink MsnSlpLink;
-#include "switchboard.h"
-typedef void (*MsnSlpCb)(MsnSlpCall *slpcall,
- const guchar *data, gsize size);
-typedef void (*MsnSlpEndCb)(MsnSlpCall *slpcall, MsnSession *session);
- MsnSwitchBoard *swboard;
- MsnP2PVersion p2p_version;
-MsnSlpLink *msn_slplink_ref(MsnSlpLink *slplink);
-void msn_slplink_unref(MsnSlpLink *slplink);
- * @return An MsnSlpLink for the given user, or NULL if there is no
-MsnSlpLink *msn_session_find_slplink(MsnSession *session,
- * @return An MsnSlpLink for the given user. One will be created if
- * it does not already exist.
-MsnSlpLink *msn_session_get_slplink(MsnSession *session, const char *username);
-void msn_slplink_add_slpcall(MsnSlpLink *slplink, MsnSlpCall *slpcall);
-void msn_slplink_remove_slpcall(MsnSlpLink *slplink, MsnSlpCall *slpcall);
-MsnSlpCall *msn_slplink_find_slp_call(MsnSlpLink *slplink,
-MsnSlpCall *msn_slplink_find_slp_call_with_session_id(MsnSlpLink *slplink, long id);
-MsnP2PVersion msn_slplink_get_p2p_version(MsnSlpLink *slplink);
-void msn_slplink_queue_slpmsg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg);
-void msn_slplink_send_slpmsg(MsnSlpLink *slplink,
- MsnSlpMessage *slpmsg);
-void msn_slplink_send_queued_slpmsgs(MsnSlpLink *slplink);
-void msn_slplink_process_msg(MsnSlpLink *slplink, MsnSlpMessagePart *part);
-/* Only exported for msn_xfer_write */
-void msn_slplink_send_msgpart(MsnSlpLink *slplink, MsnSlpMessage *slpmsg);
-void msn_slplink_request_object(MsnSlpLink *slplink,
-MsnSlpCall *msn_slp_process_msg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg);
-#endif /* MSN_SLPLINK_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/slpmsg.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,150 +0,0 @@
- * @file slpmsg.h SLP Message functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-typedef struct _MsnSlpMessage MsnSlpMessage;
- * A SLP Message This contains everything that we will need to send a SLP
- * Message even if has to be sent in several parts.
- MsnSlpCall *slpcall; /**< The slpcall to which this slp message belongs (if applicable). */
- MsnSlpLink *slplink; /**< The slplink through which this slp message is being sent. */
- PurpleStoredImage *img;
- * This is the size of buffer, unless this is an outgoing file transfer,
- * in which case this is the size of the file.
- GList *parts; /**< A list with the SlpMsgParts */
- * Creates a new slp message
- * @param slplink The slplink through which this slp message will be sent.
- * If it's set to NULL, it is a temporary SlpMessage.
- * @return The created slp message.
-MsnSlpMessage *msn_slpmsg_new(MsnSlpLink *slplink, MsnSlpCall *slpcall);
- * Destroys a slp message
- * @param slpmsg The slp message to destory.
-void msn_slpmsg_destroy(MsnSlpMessage *slpmsg);
- * Relate this SlpMessage with an existing SlpLink
- * @param slplink The SlpLink that will send this message.
-void msn_slpmsg_set_slplink(MsnSlpMessage *slpmsg, MsnSlpLink *slplink);
-void msn_slpmsg_set_body(MsnSlpMessage *slpmsg, const char *body,
-void msn_slpmsg_set_image(MsnSlpMessage *slpmsg, PurpleStoredImage *img);
-MsnSlpMessage * msn_slpmsg_sip_new(MsnSlpCall *slpcall, int cseq,
- const char *content_type,
- * Create a new SLP Ack message
- * @param header the value of the header in this slpmsg.
- * @return A new SlpMessage with ACK headers
-MsnSlpMessage *msn_slpmsg_ack_new(MsnSlpLink *slplink, MsnP2PInfo *info);
- * Create a new SLP message for MsnObject data.
- * @param slpcall The slpcall that manages this message.
- * @param img The image to be sent in this message.
- * @return A new SlpMessage with MsnObject info.
-MsnSlpMessage *msn_slpmsg_obj_new(MsnSlpCall *slpcall, PurpleStoredImage *img);
- * Create a new SLP message for data preparation.
- * @param slpcall The slpcall that manages this message.
- * @return A new SlpMessage with data preparation info.
-MsnSlpMessage *msn_slpmsg_dataprep_new(MsnSlpCall *slpcall);
- * Create a new SLP message for File transfer.
- * @param slpcall The slpcall that manages this message.
- * @param size The size of the file being transsmited.
- * @return A new SlpMessage with the file transfer info.
-MsnSlpMessage *msn_slpmsg_file_new(MsnSlpCall *slpcall, size_t size);
- * Serialize the MsnSlpMessage in a way it can be used to be transmited
- * @param slpmsg The MsnSlpMessage.
- * @param ret_size The size of the buffer cointaining the message.
- * @return a buffer with the serialized data.
-char *msn_slpmsg_serialize(MsnSlpMessage *slpmsg, size_t *ret_size);
-void msn_slpmsg_show_readable(MsnSlpMessage *slpmsg);
-#endif /* _MSN_SLPMSG_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/slpmsg_part.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
- * @file slpmsg_part.h MSNSLP Parts
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef MSN_SLPMSG_PART_H
-#define MSN_SLPMSG_PART_H
-typedef struct _MsnSlpMessagePart MsnSlpMessagePart;
-typedef void (*MsnSlpPartCb)(MsnSlpMessagePart *part, void *data);
-struct _MsnSlpMessagePart
-MsnSlpMessagePart *msn_slpmsgpart_new(MsnP2PInfo *info);
-MsnSlpMessagePart *msn_slpmsgpart_new_from_data(MsnP2PVersion p2p, const char *data, size_t data_len);
-MsnSlpMessagePart *msn_slpmsgpart_ref(MsnSlpMessagePart *part);
-void msn_slpmsgpart_unref(MsnSlpMessagePart *part);
-void msn_slpmsgpart_set_bin_data(MsnSlpMessagePart *part, const void *data, size_t len);
-char *msn_slpmsgpart_serialize(MsnSlpMessagePart *part, size_t *ret_size);
-void msn_slpmsgpart_ack(MsnSlpMessagePart *part, void *data);
-void msn_slpmsgpart_nak(MsnSlpMessagePart *part, void *data);
-void msn_slpmsgpart_to_string(MsnSlpMessagePart *part, GString *str);
-#endif /* MSN_SLPMSG_PART_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/smiley.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,262 +0,0 @@
- * @file smiley.h Smiley API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_SMILEY_H_
-#define _PURPLE_SMILEY_H_
-#include <glib-object.h>
- * This contains everything Purple will ever need to know about a custom smiley.
- * PurpleSmiley is a GObject.
-typedef struct _PurpleSmiley PurpleSmiley;
-typedef struct _PurpleSmileyClass PurpleSmileyClass;
-#define PURPLE_TYPE_SMILEY (purple_smiley_get_type ())
-#define PURPLE_SMILEY(smiley) (G_TYPE_CHECK_INSTANCE_CAST ((smiley), PURPLE_TYPE_SMILEY, PurpleSmiley))
-#define PURPLE_SMILEY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PURPLE_TYPE_SMILEY, PurpleSmileyClass))
-#define PURPLE_IS_SMILEY(smiley) (G_TYPE_CHECK_INSTANCE_TYPE ((smiley), PURPLE_TYPE_SMILEY))
-#define PURPLE_IS_SMILEY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PURPLE_TYPE_SMILEY))
-#define PURPLE_SMILEY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PURPLE_TYPE_SMILEY, PurpleSmileyClass))
-/**************************************************************************/
-/** @name Custom Smiley API */
-/**************************************************************************/
-GType purple_smiley_get_type(void);
- * Creates a new custom smiley from a PurpleStoredImage.
- * If a custom smiley with the given shortcut already exists, it
- * will be automaticaly returned.
- * @param img The image associated with the smiley.
- * @param shortcut The associated shortcut (e.g. "(homer)").
- * @return The custom smiley.
-purple_smiley_new(PurpleStoredImage *img, const char *shortcut);
- * Creates a new custom smiley, reading the image data from a file.
- * If a custom smiley with the given shortcut already exists, it
- * will be automaticaly returned.
- * @param shortcut The associated shortcut (e.g. "(homer)").
- * @param filepath The image file.
- * @return The custom smiley.
-purple_smiley_new_from_file(const char *shortcut, const char *filepath);
- * Destroys the custom smiley and releases the associated resources.
- * @param smiley The custom smiley.
-purple_smiley_delete(PurpleSmiley *smiley);
- * Changes the custom smiley's shortcut.
- * @param smiley The custom smiley.
- * @param shortcut The new shortcut. A custom smiley with this shortcut
- * cannot already be in use.
- * @return TRUE if the shortcut was changed. FALSE otherwise.
-purple_smiley_set_shortcut(PurpleSmiley *smiley, const char *shortcut);
- * Changes the custom smiley's image data.
- * @param smiley The custom smiley.
- * @param smiley_data The custom smiley data, which the smiley code
- * takes ownership of and will free.
- * @param smiley_data_len The length of the data in @a smiley_data.
-purple_smiley_set_data(PurpleSmiley *smiley, guchar *smiley_data,
- size_t smiley_data_len);
- * Returns the custom smiley's associated shortcut (e.g. "(homer)").
- * @param smiley The custom smiley.
- * @return The shortcut.
-const char *purple_smiley_get_shortcut(const PurpleSmiley *smiley);
- * Returns the custom smiley data's checksum.
- * @param smiley The custom smiley.
- * @return The checksum.
-const char *purple_smiley_get_checksum(const PurpleSmiley *smiley);
- * Returns the PurpleStoredImage with the reference counter incremented.
- * The returned PurpleStoredImage reference counter must be decremented
- * when the caller is done using it.
- * @param smiley The custom smiley.
- * @return A PurpleStoredImage.
-PurpleStoredImage *purple_smiley_get_stored_image(const PurpleSmiley *smiley);
- * Returns the custom smiley's data.
- * @param smiley The custom smiley.
- * @param len If not @c NULL, the length of the image data returned
- * will be set in the location pointed to by this.
- * @return A pointer to the custom smiley data.
-gconstpointer purple_smiley_get_data(const PurpleSmiley *smiley, size_t *len);
- * Returns an extension corresponding to the custom smiley's file type.
- * @param smiley The custom smiley.
- * @return The custom smiley's extension, "icon" if unknown, or @c NULL if
- * the image data has disappeared.
-const char *purple_smiley_get_extension(const PurpleSmiley *smiley);
- * Returns a full path to an custom smiley.
- * If the custom smiley has data and the file exists in the cache, this
- * will return a full path to the cached file.
- * In general, it is not appropriate to be poking in the file cache
- * directly. If you find yourself wanting to use this function, think
- * very long and hard about it, and then don't.
- * @param smiley The custom smiley.
- * @return A full path to the file, or @c NULL under various conditions.
- * The caller should use g_free to free the returned string.
-char *purple_smiley_get_full_path(PurpleSmiley *smiley);
-/**************************************************************************/
-/** @name Custom Smiley Subsystem API */
-/**************************************************************************/
- * Returns a list of all custom smileys. The caller is responsible for freeing
- * @return A list of all custom smileys.
-purple_smileys_get_all(void);
- * Returns a custom smiley given its shortcut.
- * @param shortcut The custom smiley's shortcut.
- * @return The custom smiley if found, or @c NULL if not found.
-purple_smileys_find_by_shortcut(const char *shortcut);
- * Returns a custom smiley given its checksum.
- * @param checksum The custom smiley's checksum.
- * @return The custom smiley if found, or @c NULL if not found.
-purple_smileys_find_by_checksum(const char *checksum);
- * Returns the directory used to store custom smiley cached files.
- * The default directory is PURPLEDIR/custom_smiley.
- * @return The directory in which to store custom smileys cached files.
-const char *purple_smileys_get_storing_dir(void);
- * Initializes the custom smiley subsystem.
-void purple_smileys_init(void);
- * Uninitializes the custom smiley subsystem.
-void purple_smileys_uninit(void);
-#endif /* _PURPLE_SMILEY_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/snactypes.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,287 +0,0 @@
- * Purple's oscar protocol plugin
- * This file is the legal property of its developers.
- * Please see the AUTHORS file distributed alongside this file.
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- * This library 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
- * Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#define SNAC_FAMILY_OSERVICE 0x0001
-#define SNAC_FAMILY_LOCATE 0x0002
-#define SNAC_FAMILY_BUDDY 0x0003
-#define SNAC_FAMILY_ICBM 0x0004
-#define SNAC_FAMILY_ADVERT 0x0005
-#define SNAC_FAMILY_INVITE 0x0006
-#define SNAC_FAMILY_ADMIN 0x0007
-#define SNAC_FAMILY_POPUP 0x0008
-#define SNAC_FAMILY_BOS 0x0009
-#define SNAC_FAMILY_USERLOOKUP 0x000a
-#define SNAC_FAMILY_STATS 0x000b
-#define SNAC_FAMILY_TRANSLATE 0x000c
-#define SNAC_FAMILY_CHATNAV 0x000d
-#define SNAC_FAMILY_CHAT 0x000e
-#define SNAC_FAMILY_ODIR 0x000f
-#define SNAC_FAMILY_BART 0x0010
-#define SNAC_FAMILY_FEEDBAG 0x0013
-#define SNAC_FAMILY_ICQ 0x0015
-#define SNAC_FAMILY_AUTH 0x0017
-#define SNAC_FAMILY_ALERT 0x0018
-#define AIM_CB_FAM_SPECIAL 0xffff /* Internal libfaim use */
- * Not really a family, but treating it as one really
- * helps it fit into the libfaim callback structure better.
-#define AIM_CB_ACK_ACK 0x0001
- * SNAC Family: General.
-#define SNAC_SUBTYPE_OSERVICE_ERROR 0x0001
-#define SNAC_SUBTYPE_OSERVICE_CLIENTREADY 0x0002
-#define SNAC_SUBTYPE_OSERVICE_SERVERREADY 0x0003
-#define SNAC_SUBTYPE_OSERVICE_SERVICEREQ 0x0004
-#define SNAC_SUBTYPE_OSERVICE_REDIRECT 0x0005
-#define SNAC_SUBTYPE_OSERVICE_RATEINFOREQ 0x0006
-#define SNAC_SUBTYPE_OSERVICE_RATEINFO 0x0007
-#define SNAC_SUBTYPE_OSERVICE_RATEINFOACK 0x0008
-#define SNAC_SUBTYPE_OSERVICE_RATECHANGE 0x000a
-#define SNAC_SUBTYPE_OSERVICE_SERVERPAUSE 0x000b
-#define SNAC_SUBTYPE_OSERVICE_SERVERRESUME 0x000d
-#define SNAC_SUBTYPE_OSERVICE_REQSELFINFO 0x000e
-#define SNAC_SUBTYPE_OSERVICE_SELFINFO 0x000f
-#define SNAC_SUBTYPE_OSERVICE_EVIL 0x0010
-#define SNAC_SUBTYPE_OSERVICE_SETIDLE 0x0011
-#define SNAC_SUBTYPE_OSERVICE_MIGRATIONREQ 0x0012
-#define SNAC_SUBTYPE_OSERVICE_MOTD 0x0013
-#define SNAC_SUBTYPE_OSERVICE_SETPRIVFLAGS 0x0014
-#define SNAC_SUBTYPE_OSERVICE_WELLKNOWNURL 0x0015
-#define SNAC_SUBTYPE_OSERVICE_NOP 0x0016
-#define SNAC_SUBTYPE_OSERVICE_DEFAULT 0xffff
- * SNAC Family: Location Services.
-#define SNAC_SUBTYPE_LOCATE_ERROR 0x0001
-#define SNAC_SUBTYPE_LOCATE_REQRIGHTS 0x0002
-#define SNAC_SUBTYPE_LOCATE_RIGHTSINFO 0x0003
-#define SNAC_SUBTYPE_LOCATE_SETUSERINFO 0x0004
-#define SNAC_SUBTYPE_LOCATE_REQUSERINFO 0x0005
-#define SNAC_SUBTYPE_LOCATE_USERINFO 0x0006
-#define SNAC_SUBTYPE_LOCATE_WATCHERSUBREQ 0x0007
-#define SNAC_SUBTYPE_LOCATE_WATCHERNOT 0x0008
-#define SNAC_SUBTYPE_LOCATE_DEFAULT 0xffff
- * SNAC Family: Buddy List Management Services.
-#define SNAC_SUBTYPE_BUDDY_ERROR 0x0001
-#define SNAC_SUBTYPE_BUDDY_REQRIGHTS 0x0002
-#define SNAC_SUBTYPE_BUDDY_RIGHTSINFO 0x0003
-#define SNAC_SUBTYPE_BUDDY_ADDBUDDY 0x0004
-#define SNAC_SUBTYPE_BUDDY_REMBUDDY 0x0005
-#define SNAC_SUBTYPE_BUDDY_REJECT 0x000a
-#define SNAC_SUBTYPE_BUDDY_ONCOMING 0x000b
-#define SNAC_SUBTYPE_BUDDY_OFFGOING 0x000c
-#define SNAC_SUBTYPE_BUDDY_DEFAULT 0xffff
- * SNAC Family: Messaging Services.
-#define SNAC_SUBTYPE_ICBM_ERROR 0x0001
-#define SNAC_SUBTYPE_ICBM_PARAMINFO 0x0005
-#define SNAC_SUBTYPE_ICBM_INCOMING 0x0007
-#define SNAC_SUBTYPE_ICBM_EVIL 0x0009
-#define SNAC_SUBTYPE_ICBM_MISSEDCALL 0x000a
-#define SNAC_SUBTYPE_ICBM_CLIENTAUTORESP 0x000b
-#define SNAC_SUBTYPE_ICBM_ACK 0x000c
-#define SNAC_SUBTYPE_ICBM_MTN 0x0014
-#define SNAC_SUBTYPE_ICBM_DEFAULT 0xffff
- * SNAC Family: Advertisement Services
-#define SNAC_SUBTYPE_ADVERT_ERROR 0x0001
-#define SNAC_SUBTYPE_ADVERT_DEFAULT 0xffff
- * SNAC Family: Invitation Services.
-#define SNAC_SUBTYPE_INVITE_ERROR 0x0001
-#define SNAC_SUBTYPE_INVITE_DEFAULT 0xffff
- * SNAC Family: Administrative Services.
-#define SNAC_SUBTYPE_ADMIN_ERROR 0x0001
-#define SNAC_SUBTYPE_ADMIN_INFOCHANGE_REPLY 0x0005
-#define SNAC_SUBTYPE_ADMIN_DEFAULT 0xffff
- * SNAC Family: Popup Messages
-#define SNAC_SUBTYPE_POPUP_ERROR 0x0001
-#define SNAC_SUBTYPE_POPUP_DEFAULT 0xffff
- * SNAC Family: Misc BOS Services.
-#define SNAC_SUBTYPE_BOS_ERROR 0x0001
-#define SNAC_SUBTYPE_BOS_RIGHTSQUERY 0x0002
-#define SNAC_SUBTYPE_BOS_RIGHTS 0x0003
-#define SNAC_SUBTYPE_BOS_DEFAULT 0xffff
- * SNAC Family: User Lookup Services
-#define SNAC_SUBTYPE_USERLOOKUP_ERROR 0x0001
-#define SNAC_SUBTYPE_USERLOOKUP_DEFAULT 0xffff
- * SNAC Family: User Status Services
-#define SNAC_SUBTYPE_STATS_ERROR 0x0001
-#define SNAC_SUBTYPE_STATS_SETREPORTINTERVAL 0x0002
-#define SNAC_SUBTYPE_STATS_REPORTACK 0x0004
-#define SNAC_SUBTYPE_STATS_DEFAULT 0xffff
- * SNAC Family: Translation Services
-#define SNAC_SUBTYPE_TRANSLATE_ERROR 0x0001
-#define SNAC_SUBTYPE_TRANSLATE_DEFAULT 0xffff
- * SNAC Family: Chat Navigation Services
-#define SNAC_SUBTYPE_CHATNAV_ERROR 0x0001
-#define SNAC_SUBTYPE_CHATNAV_CREATE 0x0008
-#define SNAC_SUBTYPE_CHATNAV_INFO 0x0009
-#define SNAC_SUBTYPE_CHATNAV_DEFAULT 0xffff
- * SNAC Family: Chat Services
-#define SNAC_SUBTYPE_CHAT_ERROR 0x0001
-#define SNAC_SUBTYPE_CHAT_ROOMINFOUPDATE 0x0002
-#define SNAC_SUBTYPE_CHAT_USERJOIN 0x0003
-#define SNAC_SUBTYPE_CHAT_USERLEAVE 0x0004
-#define SNAC_SUBTYPE_CHAT_OUTGOINGMSG 0x0005
-#define SNAC_SUBTYPE_CHAT_INCOMINGMSG 0x0006
-#define SNAC_SUBTYPE_CHAT_DEFAULT 0xffff
- * SNAC Family: "New" Search
-#define SNAC_SUBTYPE_ODIR_ERROR 0x0001
-#define SNAC_SUBTYPE_ODIR_SEARCH 0x0002
-#define SNAC_SUBTYPE_ODIR_RESULTS 0x0003
- * SNAC Family: Buddy icons
-#define SNAC_SUBTYPE_BART_ERROR 0x0001
-#define SNAC_SUBTYPE_BART_REQUEST 0x0004
-#define SNAC_SUBTYPE_BART_RESPONSE 0x0005
- * SNAC Family: Server-Stored Buddy Lists
-#define SNAC_SUBTYPE_FEEDBAG_ERROR 0x0001
-#define SNAC_SUBTYPE_FEEDBAG_REQRIGHTS 0x0002
-#define SNAC_SUBTYPE_FEEDBAG_RIGHTSINFO 0x0003
-#define SNAC_SUBTYPE_FEEDBAG_REQDATA 0x0004
-#define SNAC_SUBTYPE_FEEDBAG_REQIFCHANGED 0x0005
-#define SNAC_SUBTYPE_FEEDBAG_LIST 0x0006
-#define SNAC_SUBTYPE_FEEDBAG_ACTIVATE 0x0007
-#define SNAC_SUBTYPE_FEEDBAG_ADD 0x0008
-#define SNAC_SUBTYPE_FEEDBAG_MOD 0x0009
-#define SNAC_SUBTYPE_FEEDBAG_DEL 0x000A
-#define SNAC_SUBTYPE_FEEDBAG_SRVACK 0x000E
-#define SNAC_SUBTYPE_FEEDBAG_NOLIST 0x000F
-#define SNAC_SUBTYPE_FEEDBAG_EDITSTART 0x0011
-#define SNAC_SUBTYPE_FEEDBAG_EDITSTOP 0x0012
-#define SNAC_SUBTYPE_FEEDBAG_SENDAUTH 0x0014
-#define SNAC_SUBTYPE_FEEDBAG_RECVAUTH 0x0015
-#define SNAC_SUBTYPE_FEEDBAG_SENDAUTHREQ 0x0018
-#define SNAC_SUBTYPE_FEEDBAG_RECVAUTHREQ 0x0019
-#define SNAC_SUBTYPE_FEEDBAG_SENDAUTHREP 0x001a
-#define SNAC_SUBTYPE_FEEDBAG_RECVAUTHREP 0x001b
-#define SNAC_SUBTYPE_FEEDBAG_ADDED 0x001c
- * Most of these are actually special.
-#define SNAC_SUBTYPE_ICQ_ERROR 0x0001
-#define SNAC_SUBTYPE_ICQ_OFFLINEMSG 0x00f0
-#define SNAC_SUBTYPE_ICQ_OFFLINEMSGCOMPLETE 0x00f1
-#define SNAC_SUBTYPE_ICQ_INFO 0x00f2
-#define SNAC_SUBTYPE_ICQ_ALIAS 0x00f3
-#define SNAC_SUBTYPE_ICQ_DEFAULT 0xffff
- * SNAC Family: Authorizer
- * Used only in protocol versions three and above.
-#define SNAC_SUBTYPE_AUTH_ERROR 0x0001
-#define SNAC_SUBTYPE_AUTH_LOGINREQEST 0x0002
-#define SNAC_SUBTYPE_AUTH_LOGINRESPONSE 0x0003
-#define SNAC_SUBTYPE_AUTH_AUTHREQ 0x0006
-#define SNAC_SUBTYPE_AUTH_AUTHRESPONSE 0x0007
-#define SNAC_SUBTYPE_AUTH_SECURID_REQUEST 0x000a
-#define SNAC_SUBTYPE_AUTH_SECURID_RESPONSE 0x000b
- * Used for getting information on the email address
- * associated with your username.
-#define SNAC_SUBTYPE_ALERT_ERROR 0x0001
-#define SNAC_SUBTYPE_ALERT_SENDCOOKIES 0x0006
-#define SNAC_SUBTYPE_ALERT_MAILSTATUS 0x0007
-#define SNAC_SUBTYPE_ALERT_INIT 0x0016
- * SNAC Family: Internal Messages
- * This isn't truly a SNAC family either, but using
- * these, we can integrated non-SNAC services into
- * the SNAC-centered libfaim callback structure.
-#define AIM_CB_SPECIAL_CONNERR 0x0003
-#define AIM_CB_SPECIAL_CONNINITDONE 0x0006
-#define AIM_SNACFLAGS_DESTRUCTOR 0x0001
-#endif /* _SNACTYPES_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/soap.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
- * header file for SOAP connection related process
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
-typedef struct _MsnSoapMessage MsnSoapMessage;
-typedef void (*MsnSoapCallback)(MsnSoapMessage *request,
- MsnSoapMessage *response, gpointer cb_data);
-struct _MsnSoapMessage {
-MsnSoapMessage *msn_soap_message_new(const char *action, xmlnode *xml);
-void msn_soap_message_send(MsnSession *session, MsnSoapMessage *message,
- const char *host, const char *path, gboolean secure,
- MsnSoapCallback cb, gpointer cb_data);
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/sound-theme-loader.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
- * @file sound-theme-loader.h Purple Sound Theme Loader Class API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef PURPLE_SOUND_THEME_LOADER_H
-#define PURPLE_SOUND_THEME_LOADER_H
-#include <glib-object.h>
-#include "theme-loader.h"
- * A purple sound theme loader. extends PurpleThemeLoader (theme-loader.h)
- * This is a class designed to build sound themes
- * PurpleSoundThemeLoader is a GObject.
-typedef struct _PurpleSoundThemeLoader PurpleSoundThemeLoader;
-typedef struct _PurpleSoundThemeLoaderClass PurpleSoundThemeLoaderClass;
-#define PURPLE_TYPE_SOUND_THEME_LOADER (purple_sound_theme_loader_get_type())
-#define PURPLE_SOUND_THEME_LOADER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), PURPLE_TYPE_SOUND_THEME_LOADER, PurpleSoundThemeLoader))
-#define PURPLE_SOUND_THEME_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PURPLE_TYPE_SOUND_THEME_LOADER, PurpleSoundThemeLoaderClass))
-#define PURPLE_IS_SOUND_THEME_LOADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), PURPLE_TYPE_SOUND_THEME_LOADER))
-#define PURPLE_IS_SOUND_THEME_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), PURPLE_TYPE_SOUND_THEME_LOADER))
-#define PURPLE_SOUND_THEME_LOADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PURPLE_TYPE_SOUND_THEME_LOADER, PurpleSoundThemeLoaderClass))
-struct _PurpleSoundThemeLoader
- PurpleThemeLoader parent;
-struct _PurpleSoundThemeLoaderClass
- PurpleThemeLoaderClass parent_class;
-/**************************************************************************/
-/** @name Purple Theme-Loader API */
-/**************************************************************************/
-GType purple_sound_theme_loader_get_type(void);
-#endif /* PURPLE_SOUND_THEME_LOADER_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/sound-theme.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
- * @file sound-theme.h Purple Sound Theme Abstact Class API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef PURPLE_SOUND_THEME_H
-#define PURPLE_SOUND_THEME_H
-#include <glib-object.h>
- * extends PurpleTheme (theme.h)
- * A purple sound theme.
- * This is an object for Purple to represent a sound theme.
- * PurpleSoundTheme is a PurpleTheme Object.
-typedef struct _PurpleSoundTheme PurpleSoundTheme;
-typedef struct _PurpleSoundThemeClass PurpleSoundThemeClass;
-#define PURPLE_TYPE_SOUND_THEME (purple_sound_theme_get_type())
-#define PURPLE_SOUND_THEME(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), PURPLE_TYPE_SOUND_THEME, PurpleSoundTheme))
-#define PURPLE_SOUND_THEME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PURPLE_TYPE_SOUND_THEME, PurpleSoundThemeClass))
-#define PURPLE_IS_SOUND_THEME(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), PURPLE_TYPE_SOUND_THEME))
-#define PURPLE_IS_SOUND_THEME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), PURPLE_TYPE_SOUND_THEME))
-#define PURPLE_SOUND_THEME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PURPLE_TYPE_SOUND_THEME, PurpleSoundThemeClass))
-struct _PurpleSoundTheme
-struct _PurpleSoundThemeClass
- PurpleThemeClass parent_class;
-/**************************************************************************/
-/** @name Purple Sound Theme API */
-/**************************************************************************/
-GType purple_sound_theme_get_type(void);
- * Returns a copy of the filename for the sound event.
- * @param theme The theme.
- * @param event The purple sound event to look up.
- * @returns The filename of the sound event.
-const gchar *purple_sound_theme_get_file(PurpleSoundTheme *theme,
- * Returns a copy of the directory and filename for the sound event
- * @param theme The theme.
- * @param event The purple sound event to look up
- * @returns The directory + '/' + filename of the sound event. This is
- * a newly allocated string that should be freed with g_free.
-gchar *purple_sound_theme_get_file_full(PurpleSoundTheme *theme,
- * Sets the filename for a given sound event
- * @param theme The theme.
- * @param event the purple sound event to look up
- * @param filename the name of the file to be used for the event
-void purple_sound_theme_set_file(PurpleSoundTheme *theme,
- const gchar *filename);
-#endif /* PURPLE_SOUND_THEME_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/sound.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,143 +0,0 @@
- * @file sound.h Sound API
- * @see @ref sound-signals
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_SOUND_H_
-#define _PURPLE_SOUND_H_
-/**************************************************************************/
-/**************************************************************************/
-typedef enum _PurpleSoundEventID
- PURPLE_SOUND_BUDDY_ARRIVE = 0, /**< Buddy signs on. */
- PURPLE_SOUND_BUDDY_LEAVE, /**< Buddy signs off. */
- PURPLE_SOUND_RECEIVE, /**< Receive an IM. */
- PURPLE_SOUND_FIRST_RECEIVE, /**< Receive an IM that starts a conv. */
- PURPLE_SOUND_SEND, /**< Send an IM. */
- PURPLE_SOUND_CHAT_JOIN, /**< Someone joins a chat. */
- PURPLE_SOUND_CHAT_LEAVE, /**< Someone leaves a chat. */
- PURPLE_SOUND_CHAT_YOU_SAY, /**< You say something in a chat. */
- PURPLE_SOUND_CHAT_SAY, /**< Someone else says somthing in a chat. */
- PURPLE_SOUND_POUNCE_DEFAULT, /**< Default sound for a buddy pounce. */
- PURPLE_SOUND_CHAT_NICK, /**< Someone says your name in a chat. */
- PURPLE_SOUND_GOT_ATTENTION, /**< Got an attention */
- PURPLE_NUM_SOUNDS /**< Total number of sounds. */
-/** Operations used by the core to request that particular sound files, or the
- * sound associated with a particular event, should be played.
-typedef struct _PurpleSoundUiOps
- void (*play_file)(const char *filename);
- void (*play_event)(PurpleSoundEventID event);
- void (*_purple_reserved1)(void);
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
- void (*_purple_reserved4)(void);
-/**************************************************************************/
-/**************************************************************************/
- * Plays the specified sound file.
- * @param filename The file to play.
- * @param account The account that this sound is associated with, or
- * NULL if the sound is not associated with any specific
- * account. This is needed for the "sounds while away?"
- * preference to work correctly.
-void purple_sound_play_file(const char *filename, const PurpleAccount *account);
- * Plays the sound associated with the specified event.
- * @param event The event.
- * @param account The account that this sound is associated with, or
- * NULL if the sound is not associated with any specific
- * account. This is needed for the "sounds while away?"
- * preference to work correctly.
-void purple_sound_play_event(PurpleSoundEventID event, const PurpleAccount *account);
- * Sets the UI sound operations
- * @param ops The UI sound operations structure.
-void purple_sound_set_ui_ops(PurpleSoundUiOps *ops);
- * Gets the UI sound operations
- * @return The UI sound operations structure.
-PurpleSoundUiOps *purple_sound_get_ui_ops(void);
- * Initializes the sound subsystem
-void purple_sound_init(void);
- * Shuts down the sound subsystem
-void purple_sound_uninit(void);
- * Returns the sound subsystem handle.
- * @return The sound subsystem handle.
-void *purple_sounds_get_handle(void);
-#endif /* _PURPLE_SOUND_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/sslconn.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,343 +0,0 @@
- * @file sslconn.h SSL API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_SSLCONN_H_
-#define _PURPLE_SSLCONN_H_
-/** Possible SSL errors. */
- PURPLE_SSL_HANDSHAKE_FAILED = 1,
- PURPLE_SSL_CONNECT_FAILED = 2,
- PURPLE_SSL_CERTIFICATE_INVALID = 3
-#include "certificate.h"
-#define PURPLE_SSL_DEFAULT_PORT 443
-/** @copydoc _PurpleSslConnection */
-typedef struct _PurpleSslConnection PurpleSslConnection;
-typedef void (*PurpleSslInputFunction)(gpointer, PurpleSslConnection *,
-typedef void (*PurpleSslErrorFunction)(PurpleSslConnection *, PurpleSslErrorType,
-struct _PurpleSslConnection
- /** Hostname to which the SSL connection will be made */
- /** Port to connect to */
- /** Data to pass to PurpleSslConnection::connect_cb() */
- /** Callback triggered once the SSL handshake is complete */
- PurpleSslInputFunction connect_cb;
- /** Callback triggered if there is an error during connection */
- PurpleSslErrorFunction error_cb;
- /** Data passed to PurpleSslConnection::recv_cb() */
- /** User-defined callback executed when the SSL connection receives data */
- PurpleSslInputFunction recv_cb;
- /** File descriptor used to refer to the socket */
- /** Glib event source ID; used to refer to the received data callback
- * in the glib eventloop */
- /** Data related to the underlying TCP connection */
- PurpleProxyConnectData *connect_data;
- /** Internal connection data managed by the SSL backend (GnuTLS/LibNSS/whatever) */
- /** Verifier to use in authenticating the peer */
- PurpleCertificateVerifier *verifier;
- * SSL implementation operations structure.
- * Every SSL implementation must provide all of these and register it via purple_ssl_set_ops()
- * These should not be called directly! Instead, use the purple_ssl_* functions.
- /** Initializes the SSL system provided.
- * @return @a TRUE if initialization succeeded
- gboolean (*init)(void);
- /** Unloads the SSL system. Inverse of PurpleSslOps::init.
- * @see purple_ssl_uninit
- /** Sets up the SSL connection for a #PurpleSslConnection once
- * the TCP connection has been established
- * @see purple_ssl_connect
- void (*connectfunc)(PurpleSslConnection *gsc);
- /** Destroys the internal data of the SSL connection provided.
- * Freeing gsc itself is left to purple_ssl_close()
- * @see purple_ssl_close
- void (*close)(PurpleSslConnection *gsc);
- /** Reads data from a connection (like POSIX read())
- * @param gsc Connection context
- * @param data Pointer to buffer to drop data into
- * @param len Maximum number of bytes to read
- * @return Number of bytes actually written into @a data (which may be
- * less than @a len), or <0 on error
- size_t (*read)(PurpleSslConnection *gsc, void *data, size_t len);
- /** Writes data to a connection (like POSIX send())
- * @param gsc Connection context
- * @param data Data buffer to send data from
- * @param len Number of bytes to send from buffer
- * @return The number of bytes written to @a data (may be less than
- * @a len) or <0 on error
- * @see purple_ssl_write
- size_t (*write)(PurpleSslConnection *gsc, const void *data, size_t len);
- /** Obtains the certificate chain provided by the peer
- * @param gsc Connection context
- * @return A newly allocated list containing the certificates
- * @see PurpleCertificate
- * @todo Decide whether the ordering of certificates in this
- * list can be guaranteed.
- GList * (* get_peer_certificates)(PurpleSslConnection * gsc);
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
- void (*_purple_reserved4)(void);
-/**************************************************************************/
-/**************************************************************************/
- * Returns whether or not SSL is currently supported.
- * @return @a TRUE if SSL is supported, or @a FALSE otherwise.
-gboolean purple_ssl_is_supported(void);
- * Returns a human-readable string for an SSL error.
- * @param error Error code
- * @return Human-readable error explanation
-const gchar * purple_ssl_strerror(PurpleSslErrorType error);
- * Makes a SSL connection to the specified host and port. The caller
- * should keep track of the returned value and use it to cancel the
- * connection, if needed.
- * @param account The account making the connection.
- * @param host The destination host.
- * @param port The destination port.
- * @param func The SSL input handler function.
- * @param error_func The SSL error handler function. This function
- * should <strong>NOT</strong> call purple_ssl_close(). In
- * the event of an error the #PurpleSslConnection will be
- * @param data User-defined data.
- * @return The SSL connection handle.
-PurpleSslConnection *purple_ssl_connect(PurpleAccount *account, const char *host,
- int port, PurpleSslInputFunction func,
- PurpleSslErrorFunction error_func,
- * Makes a SSL connection to the specified host and port, using the separate
- * name to verify with the certificate. The caller should keep track of the
- * returned value and use it to cancel the connection, if needed.
- * @param account The account making the connection.
- * @param host The destination host.
- * @param port The destination port.
- * @param func The SSL input handler function.
- * @param error_func The SSL error handler function. This function
- * should <strong>NOT</strong> call purple_ssl_close(). In
- * the event of an error the #PurpleSslConnection will be
- * @param ssl_host The hostname of the other peer (to verify the CN)
- * @param data User-defined data.
- * @return The SSL connection handle.
-PurpleSslConnection *purple_ssl_connect_with_ssl_cn(PurpleAccount *account, const char *host,
- int port, PurpleSslInputFunction func,
- PurpleSslErrorFunction error_func,
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_SSLCONN_C_)
- * Makes a SSL connection using an already open file descriptor.
- * @deprecated Use purple_ssl_connect_with_host_fd() instead.
- * @param account The account making the connection.
- * @param fd The file descriptor.
- * @param func The SSL input handler function.
- * @param error_func The SSL error handler function.
- * @param data User-defined data.
- * @return The SSL connection handle.
-PurpleSslConnection *purple_ssl_connect_fd(PurpleAccount *account, int fd,
- PurpleSslInputFunction func,
- PurpleSslErrorFunction error_func,
- * Makes a SSL connection using an already open file descriptor.
- * @param account The account making the connection.
- * @param fd The file descriptor.
- * @param func The SSL input handler function.
- * @param error_func The SSL error handler function.
- * @param host The hostname of the other peer (to verify the CN)
- * @param data User-defined data.
- * @return The SSL connection handle.
-PurpleSslConnection *purple_ssl_connect_with_host_fd(PurpleAccount *account, int fd,
- PurpleSslInputFunction func,
- PurpleSslErrorFunction error_func,
- * Adds an input watcher for the specified SSL connection.
- * Once the SSL handshake is complete, use this to watch for actual data across it.
- * @param gsc The SSL connection handle.
- * @param func The callback function.
- * @param data User-defined data.
-void purple_ssl_input_add(PurpleSslConnection *gsc, PurpleSslInputFunction func,
- * Closes a SSL connection.
- * @param gsc The SSL connection to close.
-void purple_ssl_close(PurpleSslConnection *gsc);
- * Reads data from an SSL connection.
- * @param gsc The SSL connection handle.
- * @param buffer The destination buffer.
- * @param len The maximum number of bytes to read.
- * @return The number of bytes read.
-size_t purple_ssl_read(PurpleSslConnection *gsc, void *buffer, size_t len);
- * Writes data to an SSL connection.
- * @param gsc The SSL connection handle.
- * @param buffer The buffer to write.
- * @param len The length of the data to write.
- * @return The number of bytes written.
-size_t purple_ssl_write(PurpleSslConnection *gsc, const void *buffer, size_t len);
- * Obtains the peer's presented certificates
- * @param gsc The SSL connection handle
- * @return The peer certificate chain, in the order of certificate, issuer,
- * issuer's issuer, etc. @a NULL if no certificates have been provided,
-GList * purple_ssl_get_peer_certificates(PurpleSslConnection *gsc);
-/**************************************************************************/
-/** @name Subsystem API */
-/**************************************************************************/
- * Sets the current SSL operations structure.
- * @param ops The SSL operations structure to assign.
-void purple_ssl_set_ops(PurpleSslOps *ops);
- * Returns the current SSL operations structure.
- * @return The SSL operations structure.
-PurpleSslOps *purple_ssl_get_ops(void);
- * Initializes the SSL subsystem.
-void purple_ssl_init(void);
- * Uninitializes the SSL subsystem.
-void purple_ssl_uninit(void);
-#endif /* _PURPLE_SSLCONN_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/state.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
- * @file state.h State functions and definitions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
- * Changes the status of the user.
- * @param session The MSN session.
-void msn_change_status(MsnSession *session);
- * Returns the string representation of an away type.
- * @param type The away type.
- * @return The string representation of the away type.
-const char *msn_away_get_text(MsnAwayType type);
-const char *msn_state_get_text(MsnAwayType state);
-/* Get the CurrentMedia info from the XML node */
-char *msn_get_currentmedia(xmlnode *payloadNode);
-/* Get the PSM info from the XML node */
-char *msn_get_psm(xmlnode *payloadNode);
-MsnAwayType msn_state_from_account(PurpleAccount *account);
-#endif /* MSN_STATE_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/status.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1103 +0,0 @@
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_STATUS_H_
-#define _PURPLE_STATUS_H_
- * @file status.h Status API
- * A brief explanation of the status API:
- * PurpleStatusType's are created by each PRPL. They outline the
- * available statuses of the protocol. AIM, for example, supports
- * an available state with an optional available message, an away
- * state with a mandatory message, and an invisible state (which is
- * technically "independent" of the other two, but we'll get into
- * that later). PurpleStatusTypes are very permanent. They are
- * hardcoded in each PRPL and will not change often. And because
- * they are hardcoded, they do not need to be saved to any XML file.
- * A PurpleStatus can be thought of as an "instance" of a PurpleStatusType.
- * If you're familiar with object-oriented programming languages
- * then this should be immediately clear. Say, for example, that
- * one of your AIM buddies has set himself as "away." You have a
- * PurpleBuddy node for this person in your buddy list. Purple wants
- * to mark this buddy as "away," so it creates a new PurpleStatus.
- * The PurpleStatus has its PurpleStatusType set to the "away" state
- * for the oscar PRPL. The PurpleStatus also contains the buddy's
- * away message. PurpleStatuses are sometimes saved, depending on
- * the context. The current PurpleStatuses associated with each of
- * your accounts are saved so that the next time you start Purple,
- * your accounts will be set to their last known statuses. There
- * is also a list of saved statuses that are written to the
- * status.xml file. Also, each PurpleStatus has a "saveable" boolean.
- * If "saveable" is set to FALSE then the status is NEVER saved.
- * All PurpleStatuses should be inside a PurplePresence.
- * A PurpleStatus is either "independent" or "exclusive."
- * Independent statuses can be active or inactive and they don't
- * affect anything else. However, you can only have one exclusive
- * status per PurplePresence. If you activate one exclusive status,
- * then the previous exclusive status is automatically deactivated.
- * A PurplePresence is like a collection of PurpleStatuses (plus some
- * other random info). For any buddy, or for any one of your accounts,
- * or for any person with which you're chatting, you may know various
- * amounts of information. This information is all contained in
- * one PurplePresence. If one of your buddies is away and idle,
- * then the presence contains the PurpleStatus for their awayness,
- * and it contains their current idle time. PurplePresences are
- * never saved to disk. The information they contain is only relevant
- * for the current PurpleSession.
- * PurpleStatusType's are created by each PRPL. They outline the
- * available statuses of the protocol. AIM, for example, supports
- * an available state with an optional available message, an away
- * state with a mandatory message, and an invisible state (which is
- * technically "independent" of the other two, but we'll get into
- * that later). PurpleStatusTypes are very permanent. They are
- * hardcoded in each PRPL and will not change often. And because
- * they are hardcoded, they do not need to be saved to any XML file.
-typedef struct _PurpleStatusType PurpleStatusType;
-typedef struct _PurpleStatusAttr PurpleStatusAttr;
-typedef struct _PurplePresence PurplePresence;
-typedef struct _PurpleStatus PurpleStatus;
-typedef struct _PurpleMood {
- const char *description;
- * A context for a presence.
- * The context indicates to what the presence applies.
- PURPLE_PRESENCE_CONTEXT_UNSET = 0,
- PURPLE_PRESENCE_CONTEXT_ACCOUNT,
- PURPLE_PRESENCE_CONTEXT_CONV,
- PURPLE_PRESENCE_CONTEXT_BUDDY
-} PurplePresenceContext;
- * A primitive defining the basic structure of a status type.
- * If you add a value to this enum, make sure you update
- * the status_primitive_map and primitive_scores arrays in status.c.
- PURPLE_STATUS_UNSET = 0,
- PURPLE_STATUS_AVAILABLE,
- PURPLE_STATUS_UNAVAILABLE,
- PURPLE_STATUS_INVISIBLE,
- PURPLE_STATUS_EXTENDED_AWAY,
- PURPLE_STATUS_NUM_PRIMITIVES
-} PurpleStatusPrimitive;
-#include "conversation.h"
-#define PURPLE_TUNE_ARTIST "tune_artist"
-#define PURPLE_TUNE_TITLE "tune_title"
-#define PURPLE_TUNE_ALBUM "tune_album"
-#define PURPLE_TUNE_GENRE "tune_genre"
-#define PURPLE_TUNE_COMMENT "tune_comment"
-#define PURPLE_TUNE_TRACK "tune_track"
-#define PURPLE_TUNE_TIME "tune_time"
-#define PURPLE_TUNE_YEAR "tune_year"
-#define PURPLE_TUNE_URL "tune_url"
-#define PURPLE_TUNE_FULL "tune_full"
-#define PURPLE_MOOD_NAME "mood"
-#define PURPLE_MOOD_COMMENT "moodtext"
-/**************************************************************************/
-/** @name PurpleStatusPrimitive API */
-/**************************************************************************/
- * Lookup the id of a primitive status type based on the type. This
- * ID is a unique plain-text name of the status, without spaces.
- * @param type A primitive status type.
- * @return The unique ID for this type.
-const char *purple_primitive_get_id_from_type(PurpleStatusPrimitive type);
- * Lookup the name of a primitive status type based on the type. This
- * name is the plain-English name of the status type. It is usually one
- * @param type A primitive status type.
- * @return The name of this type, suitable for users to see.
-const char *purple_primitive_get_name_from_type(PurpleStatusPrimitive type);
- * Lookup the value of a primitive status type based on the id. The
- * ID is a unique plain-text name of the status, without spaces.
- * @param id The unique ID of a primitive status type.
- * @return The PurpleStatusPrimitive value.
-PurpleStatusPrimitive purple_primitive_get_type_from_id(const char *id);
-/**************************************************************************/
-/** @name PurpleStatusType API */
-/**************************************************************************/
- * Creates a new status type.
- * @param primitive The primitive status type.
- * @param id The ID of the status type, or @c NULL to use the id of
- * the primitive status type.
- * @param name The name presented to the user, or @c NULL to use the
- * name of the primitive status type.
- * @param saveable TRUE if the information set for this status by the
- * user can be saved for future sessions.
- * @param user_settable TRUE if this is a status the user can manually set.
- * @param independent TRUE if this is an independent (non-exclusive)
- * @return A new status type.
-PurpleStatusType *purple_status_type_new_full(PurpleStatusPrimitive primitive,
- const char *id, const char *name,
- gboolean user_settable,
- * Creates a new status type with some default values (
- * saveable and not independent).
- * @param primitive The primitive status type.
- * @param id The ID of the status type, or @c NULL to use the id of
- * the primitive status type.
- * @param name The name presented to the user, or @c NULL to use the
- * name of the primitive status type.
- * @param user_settable TRUE if this is a status the user can manually set.
- * @return A new status type.
-PurpleStatusType *purple_status_type_new(PurpleStatusPrimitive primitive,
- const char *id, const char *name,
- gboolean user_settable);
- * Creates a new status type with attributes.
- * @param primitive The primitive status type.
- * @param id The ID of the status type, or @c NULL to use the id of
- * the primitive status type.
- * @param name The name presented to the user, or @c NULL to use the
- * name of the primitive status type.
- * @param saveable TRUE if the information set for this status by the
- * user can be saved for future sessions.
- * @param user_settable TRUE if this is a status the user can manually set.
- * @param independent TRUE if this is an independent (non-exclusive)
- * @param attr_id The ID of the first attribute.
- * @param attr_name The name of the first attribute.
- * @param attr_value The value type of the first attribute attribute.
- * @param ... Additional attribute information.
- * @return A new status type.
-PurpleStatusType *purple_status_type_new_with_attrs(PurpleStatusPrimitive primitive,
- gboolean user_settable,
- PurpleValue *attr_value, ...) G_GNUC_NULL_TERMINATED;
- * Destroys a status type.
- * @param status_type The status type to destroy.
-void purple_status_type_destroy(PurpleStatusType *status_type);
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_STATUS_C_)
- * Sets a status type's primary attribute.
- * The value for the primary attribute is used as the description for
- * the particular status type. An example is an away message. The message
- * would be the primary attribute.
- * @param status_type The status type.
- * @param attr_id The ID of the primary attribute.
- * @deprecated This function isn't used and should be removed in 3.0.0.
-void purple_status_type_set_primary_attr(PurpleStatusType *status_type,
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_STATUS_C_)
- * Adds an attribute to a status type.
- * @param status_type The status type to add the attribute to.
- * @param id The ID of the attribute.
- * @param name The name presented to the user.
- * @param value The value type of this attribute.
- * @deprecated This function isn't needed and should be removed in 3.0.0.
- * Status type attributes should be set when the status type
- * is created, in the call to purple_status_type_new_with_attrs.
-void purple_status_type_add_attr(PurpleStatusType *status_type, const char *id,
- const char *name, PurpleValue *value);
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_STATUS_C_)
- * Adds multiple attributes to a status type.
- * @param status_type The status type to add the attribute to.
- * @param id The ID of the first attribute.
- * @param name The description of the first attribute.
- * @param value The value type of the first attribute attribute.
- * @param ... Additional attribute information.
- * @deprecated This function isn't needed and should be removed in 3.0.0.
- * Status type attributes should be set when the status type
- * is created, in the call to purple_status_type_new_with_attrs.
-void purple_status_type_add_attrs(PurpleStatusType *status_type, const char *id,
- const char *name, PurpleValue *value, ...) G_GNUC_NULL_TERMINATED;
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_STATUS_C_)
- * Adds multiple attributes to a status type using a va_list.
- * @param status_type The status type to add the attribute to.
- * @param args The va_list of attributes.
- * @deprecated This function isn't needed and should be removed in 3.0.0.
- * Status type attributes should be set when the status type
- * is created, in the call to purple_status_type_new_with_attrs.
-void purple_status_type_add_attrs_vargs(PurpleStatusType *status_type,
- * Returns the primitive type of a status type.
- * @param status_type The status type.
- * @return The primitive type of the status type.
-PurpleStatusPrimitive purple_status_type_get_primitive(
- const PurpleStatusType *status_type);
- * Returns the ID of a status type.
- * @param status_type The status type.
- * @return The ID of the status type.
-const char *purple_status_type_get_id(const PurpleStatusType *status_type);
- * Returns the name of a status type.
- * @param status_type The status type.
- * @return The name of the status type.
-const char *purple_status_type_get_name(const PurpleStatusType *status_type);
- * Returns whether or not the status type is saveable.
- * @param status_type The status type.
- * @return TRUE if user-defined statuses based off this type are saveable.
-gboolean purple_status_type_is_saveable(const PurpleStatusType *status_type);
- * Returns whether or not the status type can be set or modified by the
- * @param status_type The status type.
- * @return TRUE if the status type can be set or modified by the user.
- * FALSE if it's a protocol-set setting.
-gboolean purple_status_type_is_user_settable(const PurpleStatusType *status_type);
- * Returns whether or not the status type is independent.
- * Independent status types are non-exclusive. If other status types on
- * the same hierarchy level are set, this one will not be affected.
- * @param status_type The status type.
- * @return TRUE if the status type is independent, or FALSE otherwise.
-gboolean purple_status_type_is_independent(const PurpleStatusType *status_type);
- * Returns whether the status type is exclusive.
- * @param status_type The status type.
- * @return TRUE if the status type is exclusive, FALSE otherwise.
-gboolean purple_status_type_is_exclusive(const PurpleStatusType *status_type);
- * Returns whether or not a status type is available.
- * Available status types are online and possibly invisible, but not away.
- * @param status_type The status type.
- * @return TRUE if the status is available, or FALSE otherwise.
-gboolean purple_status_type_is_available(const PurpleStatusType *status_type);
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_STATUS_C_)
- * Returns a status type's primary attribute ID.
- * @param type The status type.
- * @return The primary attribute's ID.
- * @deprecated This function isn't used and should be removed in 3.0.0.
-const char *purple_status_type_get_primary_attr(const PurpleStatusType *type);
- * Returns the attribute with the specified ID.
- * @param status_type The status type containing the attribute.
- * @param id The ID of the desired attribute.
- * @return The attribute, if found. NULL otherwise.
-PurpleStatusAttr *purple_status_type_get_attr(const PurpleStatusType *status_type,
- * Returns a list of all attributes in a status type.
- * @param status_type The status type.
- * @constreturn The list of attributes.
-GList *purple_status_type_get_attrs(const PurpleStatusType *status_type);
- * Find the PurpleStatusType with the given id.
- * @param status_types A list of status types. Often account->status_types.
- * @param id The unique ID of the status type you wish to find.
- * @return The status type with the given ID, or NULL if one could
-const PurpleStatusType *purple_status_type_find_with_id(GList *status_types,
-/**************************************************************************/
-/** @name PurpleStatusAttr API */
-/**************************************************************************/
- * Creates a new status attribute.
- * @param id The ID of the attribute.
- * @param name The name presented to the user.
- * @param value_type The type of data contained in the attribute.
- * @return A new status attribute.
-PurpleStatusAttr *purple_status_attr_new(const char *id, const char *name,
- PurpleValue *value_type);
- * Destroys a status attribute.
- * @param attr The status attribute to destroy.
-void purple_status_attr_destroy(PurpleStatusAttr *attr);
- * Returns the ID of a status attribute.
- * @param attr The status attribute.
- * @return The status attribute's ID.
-const char *purple_status_attr_get_id(const PurpleStatusAttr *attr);
- * Returns the name of a status attribute.
- * @param attr The status attribute.
- * @return The status attribute's name.
-const char *purple_status_attr_get_name(const PurpleStatusAttr *attr);
- * Returns the value of a status attribute.
- * @param attr The status attribute.
- * @return The status attribute's value.
-PurpleValue *purple_status_attr_get_value(const PurpleStatusAttr *attr);
-/**************************************************************************/
-/** @name PurpleStatus API */
-/**************************************************************************/
- * Creates a new status.
- * @param status_type The type of status.
- * @param presence The parent presence.
- * @return The new status.
-PurpleStatus *purple_status_new(PurpleStatusType *status_type,
- PurplePresence *presence);
- * @param status The status to destroy.
-void purple_status_destroy(PurpleStatus *status);
- * Sets whether or not a status is active.
- * This should only be called by the account, conversation, and buddy APIs.
- * @param status The status.
- * @param active The active state.
-void purple_status_set_active(PurpleStatus *status, gboolean active);
- * Sets whether or not a status is active.
- * This should only be called by the account, conversation, and buddy APIs.
- * @param status The status.
- * @param active The active state.
- * @param args A list of attributes to set on the status. This list is
- * composed of key/value pairs, where each key is a valid
- * attribute name for this PurpleStatusType. The list should
-void purple_status_set_active_with_attrs(PurpleStatus *status, gboolean active,
- * Sets whether or not a status is active.
- * This should only be called by the account, conversation, and buddy APIs.
- * @param status The status.
- * @param active The active state.
- * @param attrs A list of attributes to set on the status. This list is
- * composed of key/value pairs, where each key is a valid
- * attribute name for this PurpleStatusType. The list is
- * not modified or freed by this function.
-void purple_status_set_active_with_attrs_list(PurpleStatus *status, gboolean active,
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_STATUS_C_)
- * Sets the boolean value of an attribute in a status with the specified ID.
- * @param status The status.
- * @param id The attribute ID.
- * @param value The boolean value.
- * @deprecated This function is only used by status.c and should be made
-void purple_status_set_attr_boolean(PurpleStatus *status, const char *id,
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_STATUS_C_)
- * Sets the integer value of an attribute in a status with the specified ID.
- * @param status The status.
- * @param id The attribute ID.
- * @param value The integer value.
- * @deprecated This function is only used by status.c and should be made
-void purple_status_set_attr_int(PurpleStatus *status, const char *id,
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_STATUS_C_)
- * Sets the string value of an attribute in a status with the specified ID.
- * @param status The status.
- * @param id The attribute ID.
- * @param value The string value.
- * @deprecated This function is only used by status.c and should be made
-void purple_status_set_attr_string(PurpleStatus *status, const char *id,
- * Returns the status's type.
- * @param status The status.
- * @return The status's type.
-PurpleStatusType *purple_status_get_type(const PurpleStatus *status);
- * Returns the status's presence.
- * @param status The status.
- * @return The status's presence.
-PurplePresence *purple_status_get_presence(const PurpleStatus *status);
- * Returns the status's type ID.
- * This is a convenience method for
- * purple_status_type_get_id(purple_status_get_type(status)).
- * @param status The status.
- * @return The status's ID.
-const char *purple_status_get_id(const PurpleStatus *status);
- * Returns the status's name.
- * This is a convenience method for
- * purple_status_type_get_name(purple_status_get_type(status)).
- * @param status The status.
- * @return The status's name.
-const char *purple_status_get_name(const PurpleStatus *status);
- * Returns whether or not a status is independent.
- * This is a convenience method for
- * purple_status_type_is_independent(purple_status_get_type(status)).
- * @param status The status.
- * @return TRUE if the status is independent, or FALSE otherwise.
-gboolean purple_status_is_independent(const PurpleStatus *status);
- * Returns whether or not a status is exclusive.
- * This is a convenience method for
- * purple_status_type_is_exclusive(purple_status_get_type(status)).
- * @param status The status.
- * @return TRUE if the status is exclusive, FALSE otherwise.
-gboolean purple_status_is_exclusive(const PurpleStatus *status);
- * Returns whether or not a status is available.
- * Available statuses are online and possibly invisible, but not away or idle.
- * This is a convenience method for
- * purple_status_type_is_available(purple_status_get_type(status)).
- * @param status The status.
- * @return TRUE if the status is available, or FALSE otherwise.
-gboolean purple_status_is_available(const PurpleStatus *status);
- * Returns the active state of a status.
- * @param status The status.
- * @return The active state of the status.
-gboolean purple_status_is_active(const PurpleStatus *status);
- * Returns whether or not a status is considered 'online'
- * @param status The status.
- * @return TRUE if the status is considered online, FALSE otherwise
-gboolean purple_status_is_online(const PurpleStatus *status);
- * Returns the value of an attribute in a status with the specified ID.
- * @param status The status.
- * @param id The attribute ID.
- * @return The value of the attribute.
-PurpleValue *purple_status_get_attr_value(const PurpleStatus *status,
- * Returns the boolean value of an attribute in a status with the specified ID.
- * @param status The status.
- * @param id The attribute ID.
- * @return The boolean value of the attribute.
-gboolean purple_status_get_attr_boolean(const PurpleStatus *status,
- * Returns the integer value of an attribute in a status with the specified ID.
- * @param status The status.
- * @param id The attribute ID.
- * @return The integer value of the attribute.
-int purple_status_get_attr_int(const PurpleStatus *status, const char *id);
- * Returns the string value of an attribute in a status with the specified ID.
- * @param status The status.
- * @param id The attribute ID.
- * @return The string value of the attribute.
-const char *purple_status_get_attr_string(const PurpleStatus *status,
- * Compares two statuses for availability.
- * @param status1 The first status.
- * @param status2 The second status.
- * @return -1 if @a status1 is more available than @a status2.
- * 0 if @a status1 is equal to @a status2.
- * 1 if @a status2 is more available than @a status1.
-gint purple_status_compare(const PurpleStatus *status1, const PurpleStatus *status2);
-/**************************************************************************/
-/** @name PurplePresence API */
-/**************************************************************************/
- * Creates a new presence.
- * @param context The presence context.
- * @return A new presence.
-PurplePresence *purple_presence_new(PurplePresenceContext context);
- * Creates a presence for an account.
- * @param account The account.
- * @return The new presence.
-PurplePresence *purple_presence_new_for_account(PurpleAccount *account);
- * Creates a presence for a conversation.
- * @param conv The conversation.
- * @return The new presence.
-PurplePresence *purple_presence_new_for_conv(PurpleConversation *conv);
- * Creates a presence for a buddy.
- * @param buddy The buddy.
- * @return The new presence.
-PurplePresence *purple_presence_new_for_buddy(PurpleBuddy *buddy);
- * All statuses added to this list will be destroyed along with
- * @param presence The presence to destroy.
-void purple_presence_destroy(PurplePresence *presence);
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_STATUS_C_)
- * Adds a status to a presence.
- * @param presence The presence.
- * @param status The status to add.
- * @deprecated This function is only used by purple_presence_add_list,
- * and both should be removed in 3.0.0.
-void purple_presence_add_status(PurplePresence *presence, PurpleStatus *status);
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_STATUS_C_)
- * Adds a list of statuses to the presence.
- * @param presence The presence.
- * @param source_list The source list of statuses to add, which is not
- * modified or freed by this function.
- * @deprecated This function isn't used and should be removed in 3.0.0.
-void purple_presence_add_list(PurplePresence *presence, GList *source_list);
- * Sets the active state of a status in a presence.
- * Only independent statuses can be set unactive. Normal statuses can only
- * be set active, so if you wish to disable a status, set another
- * non-independent status to active, or use purple_presence_switch_status().
- * @param presence The presence.
- * @param status_id The ID of the status.
- * @param active The active state.
-void purple_presence_set_status_active(PurplePresence *presence,
- const char *status_id, gboolean active);
- * Switches the active status in a presence.
- * This is similar to purple_presence_set_status_active(), except it won't
- * activate independent statuses.
- * @param presence The presence.
- * @param status_id The status ID to switch to.
-void purple_presence_switch_status(PurplePresence *presence,
- const char *status_id);
- * Sets the idle state and time on a presence.
- * @param presence The presence.
- * @param idle The idle state.
- * @param idle_time The idle time, if @a idle is TRUE. This
- * is the time at which the user became idle,
- * in seconds since the epoch. If this value is
- * unknown then 0 should be used.
-void purple_presence_set_idle(PurplePresence *presence, gboolean idle,
- * Sets the login time on a presence.
- * @param presence The presence.
- * @param login_time The login time.
-void purple_presence_set_login_time(PurplePresence *presence, time_t login_time);
- * Returns the presence's context.
- * @param presence The presence.
- * @return The presence's context.
-PurplePresenceContext purple_presence_get_context(const PurplePresence *presence);
- * Returns a presence's account.
- * @param presence The presence.
- * @return The presence's account.
-PurpleAccount *purple_presence_get_account(const PurplePresence *presence);
- * Returns a presence's conversation.
- * @param presence The presence.
- * @return The presence's conversation.
-PurpleConversation *purple_presence_get_conversation(const PurplePresence *presence);
- * Returns a presence's chat user.
- * @param presence The presence.
- * @return The chat's user.
-const char *purple_presence_get_chat_user(const PurplePresence *presence);
- * Returns the presence's buddy.
- * @param presence The presence.
- * @return The presence's buddy.
-PurpleBuddy *purple_presence_get_buddy(const PurplePresence *presence);
- * Returns all the statuses in a presence.
- * @param presence The presence.
- * @constreturn The statuses.
-GList *purple_presence_get_statuses(const PurplePresence *presence);
- * Returns the status with the specified ID from a presence.
- * @param presence The presence.
- * @param status_id The ID of the status.
- * @return The status if found, or NULL.
-PurpleStatus *purple_presence_get_status(const PurplePresence *presence,
- const char *status_id);
- * Returns the active exclusive status from a presence.
- * @param presence The presence.
- * @return The active exclusive status.
-PurpleStatus *purple_presence_get_active_status(const PurplePresence *presence);
- * Returns whether or not a presence is available.
- * Available presences are online and possibly invisible, but not away or idle.
- * @param presence The presence.
- * @return TRUE if the presence is available, or FALSE otherwise.
-gboolean purple_presence_is_available(const PurplePresence *presence);
- * Returns whether or not a presence is online.
- * @param presence The presence.
- * @return TRUE if the presence is online, or FALSE otherwise.
-gboolean purple_presence_is_online(const PurplePresence *presence);
- * Returns whether or not a status in a presence is active.
- * A status is active if itself or any of its sub-statuses are active.
- * @param presence The presence.
- * @param status_id The ID of the status.
- * @return TRUE if the status is active, or FALSE.
-gboolean purple_presence_is_status_active(const PurplePresence *presence,
- const char *status_id);
- * Returns whether or not a status with the specified primitive type
- * in a presence is active.
- * A status is active if itself or any of its sub-statuses are active.
- * @param presence The presence.
- * @param primitive The status primitive.
- * @return TRUE if the status is active, or FALSE.
-gboolean purple_presence_is_status_primitive_active(
- const PurplePresence *presence, PurpleStatusPrimitive primitive);
- * Returns whether or not a presence is idle.
- * @param presence The presence.
- * @return TRUE if the presence is idle, or FALSE otherwise.
- * If the presence is offline (purple_presence_is_online()
- * returns FALSE) then FALSE is returned.
-gboolean purple_presence_is_idle(const PurplePresence *presence);
- * Returns the presence's idle time.
- * @param presence The presence.
- * @return The presence's idle time.
-time_t purple_presence_get_idle_time(const PurplePresence *presence);
- * Returns the presence's login time.
- * @param presence The presence.
- * @return The presence's login time.
-time_t purple_presence_get_login_time(const PurplePresence *presence);
- * Compares two presences for availability.
- * @param presence1 The first presence.
- * @param presence2 The second presence.
- * @return -1 if @a presence1 is more available than @a presence2.
- * 0 if @a presence1 is equal to @a presence2.
- * 1 if @a presence1 is less available than @a presence2.
-gint purple_presence_compare(const PurplePresence *presence1,
- const PurplePresence *presence2);
-/**************************************************************************/
-/** @name Status subsystem */
-/**************************************************************************/
- * Get the handle for the status subsystem.
- * @return the handle to the status subsystem
-void *purple_status_get_handle(void);
- * Initializes the status subsystem.
-void purple_status_init(void);
- * Uninitializes the status subsystem.
-void purple_status_uninit(void);
-#endif /* _PURPLE_STATUS_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/stringref.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-/* TODO: Can we just replace this whole thing with a GCache */
- * @file stringref.h Reference-counted immutable strings
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_STRINGREF_H_
-#define _PURPLE_STRINGREF_H_
-typedef struct _PurpleStringref PurpleStringref;
- * Creates an immutable reference-counted string object. The newly
- * created object will have a reference count of 1.
- * @param value This will be the value of the string; it will be
- * @return A newly allocated string reference object with a refcount
-PurpleStringref *purple_stringref_new(const char *value);
- * Creates an immutable reference-counted string object. The newly
- * created object will have a reference count of zero, and if it is
- * not referenced before the next iteration of the mainloop it will
- * be freed at that time.
- * @param value This will be the value of the string; it will be
- * @return A newly allocated string reference object with a refcount
-PurpleStringref *purple_stringref_new_noref(const char *value);
- * Creates an immutable reference-counted string object from a printf
- * format specification and arguments. The created object will have a
- * reference count of 1.
- * @param format A printf-style format specification.
- * @return A newly allocated string reference object with a refcount
-PurpleStringref *purple_stringref_printf(const char *format, ...);
- * Increase the reference count of the given stringref.
- * @param stringref String to be referenced.
- * @return A pointer to the referenced string.
-PurpleStringref *purple_stringref_ref(PurpleStringref *stringref);
- * Decrease the reference count of the given stringref. If this
- * reference count reaches zero, the stringref will be freed; thus
- * you MUST NOT use this string after dereferencing it.
- * @param stringref String to be dereferenced.
-void purple_stringref_unref(PurpleStringref *stringref);
- * Retrieve the value of a stringref.
- * @note This value should not be cached or stored in a local variable.
- * While there is nothing inherently incorrect about doing so, it
- * is easy to forget that the cached value is in fact a
- * reference-counted object and accidentally use it after
- * dereferencing. This is more problematic for a reference-
- * counted object than a heap-allocated object, as it may seem to
- * be valid or invalid nondeterministically based on how many
- * other references to it exist.
- * @param stringref String reference from which to retrieve the value.
- * @return The contents of the string reference.
-const char *purple_stringref_value(const PurpleStringref *stringref);
- * Compare two stringrefs for string equality. This returns the same
- * value as strcmp would, where <0 indicates that s1 is "less than" s2
- * in the ASCII lexicography, 0 indicates equality, etc.
- * @param s1 The reference string.
- * @param s2 The string to compare against the reference.
- * @return An ordering indication on s1 and s2.
-int purple_stringref_cmp(const PurpleStringref *s1, const PurpleStringref *s2);
- * Find the length of the string inside a stringref.
- * @param stringref The string in whose length we are interested.
- * @return The length of the string in stringref
-size_t purple_stringref_len(const PurpleStringref *stringref);
-#endif /* _PURPLE_STRINGREF_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/stun.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
- * @file stun.h STUN API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-/**************************************************************************/
-/**************************************************************************/
-typedef struct _PurpleStunNatDiscovery PurpleStunNatDiscovery;
- PURPLE_STUN_STATUS_UNDISCOVERED = -1,
- PURPLE_STUN_STATUS_UNKNOWN, /* no STUN server reachable */
- PURPLE_STUN_STATUS_DISCOVERING,
- PURPLE_STUN_STATUS_DISCOVERED
- PURPLE_STUN_NAT_TYPE_PUBLIC_IP,
- PURPLE_STUN_NAT_TYPE_UNKNOWN_NAT,
- PURPLE_STUN_NAT_TYPE_FULL_CONE,
- PURPLE_STUN_NAT_TYPE_RESTRICTED_CONE,
- PURPLE_STUN_NAT_TYPE_PORT_RESTRICTED_CONE,
- PURPLE_STUN_NAT_TYPE_SYMMETRIC
-struct _PurpleStunNatDiscovery {
- PurpleStunStatus status;
- PurpleStunNatType type;
-typedef void (*StunCallback) (PurpleStunNatDiscovery *);
- * Starts a NAT discovery. It returns a PurpleStunNatDiscovery if the discovery
- * is already done. Otherwise the callback is called when the discovery is over
- * and NULL is returned.
- * @param cb The callback to call when the STUN discovery is finished if the
- * discovery would block. If the discovery is done, this is NOT
- * @return a PurpleStunNatDiscovery which includes the public IP and the type
- * of NAT or NULL is discovery would block
-PurpleStunNatDiscovery *purple_stun_discover(StunCallback cb);
-void purple_stun_init(void);
-#endif /* _PURPLE_STUN_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/switchboard.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,266 +0,0 @@
- * @file switchboard.h MSN switchboard functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef MSN_SWITCHBOARD_H
-#define MSN_SWITCHBOARD_H
-typedef struct _MsnSwitchBoard MsnSwitchBoard;
- MSN_SB_ERROR_NONE, /**< No error. */
- MSN_SB_ERROR_CAL, /**< The user could not join (answer the call). */
- MSN_SB_ERROR_OFFLINE, /**< The account is offline. */
- MSN_SB_ERROR_USER_OFFLINE, /**< The user to call is offline. */
- MSN_SB_ERROR_CONNECTION, /**< There was a connection error. */
- MSN_SB_ERROR_TOO_FAST, /**< We are sending too fast */
- MSN_SB_ERROR_AUTHFAILED, /**< Authentication failed joining the switchboard session */
- MSN_SB_ERROR_UNKNOWN /**< An unknown error occurred. */
- MSN_SB_FLAG_IM = 0x01, /**< This switchboard is being used for a conversation. */
- MSN_SB_FLAG_FT = 0x02 /**< This switchboard is being used for file transfer. */
- * A place where a bunch of users send messages to the rest of the users.
- MsnSession *session; /**< Our parent session. */
- MsnServConn *servconn; /**< The physical connection for this switchboard. */
- MsnCmdProc *cmdproc; /**< Convenience variable for servconn->cmdproc. */
- PurpleConversation *conv; /**< The conversation that displays the
- messages of this switchboard, or @c NULL if
- this is a helper switchboard. */
- gboolean empty; /**< A flag that states if the swithcboard has no
- gboolean invited; /**< A flag that states if we were invited to the
- gboolean ready; /**< A flag that states if this switchboard is
- gboolean closed; /**< A flag that states if the switchboard has
- been closed by the user. */
- gboolean destroying; /**< A flag that states if the switchboard is
- alredy on the process of destruction. */
- GQueue *msg_queue; /**< Queue of messages to send. */
- GList *ack_list; /**< List of messages waiting for an ack. */
- MsnSBErrorType error; /**< The error that occurred in this switchboard
- GList *slplinks; /**< The list of slplinks that are using this switchboard. */
- guint reconn_timeout_h;
- * Initialize the variables for switchboard creation.
-void msn_switchboard_init(void);
- * Destroy the variables for switchboard creation.
-void msn_switchboard_end(void);
- * Creates a new switchboard.
- * @param session The MSN session.
- * @return The new switchboard.
-MsnSwitchBoard *msn_switchboard_new(MsnSession *session);
- * Destroys a switchboard.
- * @param swboard The switchboard to destroy.
-void msn_switchboard_destroy(MsnSwitchBoard *swboard);
- * Sets the auth key the switchboard must use when connecting.
- * @param swboard The switchboard.
- * @param key The auth key.
-void msn_switchboard_set_auth_key(MsnSwitchBoard *swboard, const char *key);
- * Returns the auth key the switchboard must use when connecting.
- * @param swboard The switchboard.
- * @return The auth key.
-const char *msn_switchboard_get_auth_key(MsnSwitchBoard *swboard);
- * Sets the session ID the switchboard must use when connecting.
- * @param swboard The switchboard.
- * @param id The session ID.
-void msn_switchboard_set_session_id(MsnSwitchBoard *swboard, const char *id);
- * Returns the session ID the switchboard must use when connecting.
- * @param swboard The switchboard.
- * @return The session ID.
-const char *msn_switchboard_get_session_id(MsnSwitchBoard *swboard);
- * Returns the next chat ID for use by a switchboard.
-int msn_switchboard_get_chat_id(void);
- * Sets whether or not we were invited to this switchboard.
- * @param swboard The switchboard.
- * @param invite @c TRUE if invited, @c FALSE otherwise.
-void msn_switchboard_set_invited(MsnSwitchBoard *swboard, gboolean invited);
- * Returns whether or not we were invited to this switchboard.
- * @param swboard The switchboard.
- * @return @c TRUE if invited, @c FALSE otherwise.
-gboolean msn_switchboard_is_invited(MsnSwitchBoard *swboard);
- * Connects to a switchboard.
- * @param swboard The switchboard.
- * @param host The switchboard server host.
- * @param port The switcbharod server port.
- * @return @c TRUE if able to connect, or @c FALSE otherwise.
-gboolean msn_switchboard_connect(MsnSwitchBoard *swboard,
- const char *host, int port);
- * Disconnects from a switchboard.
- * @param swboard The switchboard to disconnect from.
-void msn_switchboard_disconnect(MsnSwitchBoard *swboard);
- * Closes the switchboard.
- * Called when a conversation is closed.
- * @param swboard The switchboard to close.
-void msn_switchboard_close(MsnSwitchBoard *swboard);
- * Release a switchboard from a certain function.
- * @param swboard The switchboard to release.
- * @param flag The flag that states the function.
-void msn_switchboard_release(MsnSwitchBoard *swboard, MsnSBFlag flag);
- * Returns whether or not we currently can send a message through this
- * @param swboard The switchboard.
- * @return @c TRUE if a message can be sent, @c FALSE otherwise.
-gboolean msn_switchboard_can_send(MsnSwitchBoard *swboard);
- * Sends a message through this switchboard.
- * @param swboard The switchboard.
- * @param msg The message.
- * @param queue A flag that states if we want this message to be queued (in
- * the case it cannot currently be sent).
- * @return @c TRUE if a message can be sent, @c FALSE otherwise.
-void msn_switchboard_send_msg(MsnSwitchBoard *swboard, MsnMessage *msg,
-msg_error_helper(MsnCmdProc *cmdproc, MsnMessage *msg, MsnMsgErrorType error);
-gboolean msn_switchboard_chat_leave(MsnSwitchBoard *swboard);
-gboolean msn_switchboard_chat_invite(MsnSwitchBoard *swboard, const char *who);
-gboolean msn_switchboard_request(MsnSwitchBoard *swboard);
-void msn_switchboard_request_add_user(MsnSwitchBoard *swboard, const char *user);
- * Shows an ink message from this switchboard.
- * @param swboard The switchboard.
- * @param passport The user that sent the ink.
- * @param data The ink data.
-void msn_switchboard_show_ink(MsnSwitchBoard *swboard, const char *passport,
-#endif /* MSN_SWITCHBOARD_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/table.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
- * @file table.h MSN helper structure
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-typedef struct _MsnTable MsnTable;
-#include "transaction.h"
-typedef void (*MsnMsgTypeCb)(MsnCmdProc *cmdproc, MsnMessage *msg);
- GHashTable *cmds; /**< Callbacks that manage command response. */
- GHashTable *msgs; /**< Callbacks that manage incoming messages. */
- GHashTable *errors; /**< Callbacks that manage command errors. */
- GHashTable *async; /**< Callbacks that manage incoming asyncronous messages. */
- /* TODO: Does this one is really needed? */
- GHashTable *fallback; /**< Fallback callback. */
- * Create a new instance of a MsnTable which map commands, errors and messages
- * with callbacks that will handle it.
- * @return A new MsnTable.
-MsnTable *msn_table_new(void);
- * @param table The MsnTable to be destroyed.
-void msn_table_destroy(MsnTable *table);
- * Relate an incomming command from server with a callback able to handle
- * @param table The MsnTable.
- * @param command If NULL this add an incoming asyncronous command set in answer.
- * Else, the command sent.
- * @param answer The server answer to 'command'. If 'command' is NULL,
- * the asyncronous command sent by the server.
- * @param cb Callback to handle this event.
-void msn_table_add_cmd(MsnTable *table, char *command, char *answer,
- * Set a callback to handle incoming command errors.
- * @param table The MsnTable.
- * @param answer Incoming command with error.
- * @param cb Callback to handle this error.
-void msn_table_add_error(MsnTable *table, char *answer, MsnErrorCb cb);
- * Relate a message Content-type with a callback able to handle it.
- * @param table The MsnTable.
- * @param type The Message Content-Type.
- * @param cb Callback to handle this Content-type.
-void msn_table_add_msg_type(MsnTable *table, char *type, MsnMsgTypeCb cb);
-#endif /* MSN_TABLE_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/theme-loader.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
- * @file theme-loader.h Purple Theme Loader Abstact Class API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef PURPLE_THEME_LOADER_H
-#define PURPLE_THEME_LOADER_H
-#include <glib-object.h>
- * A purple theme loader.
- * This is an abstract class for Purple to use with the Purple theme manager.
- * The loader is responsible for building each type of theme
- * PurpleThemeLoader is a GObject.
-typedef struct _PurpleThemeLoader PurpleThemeLoader;
-typedef struct _PurpleThemeLoaderClass PurpleThemeLoaderClass;
-#define PURPLE_TYPE_THEME_LOADER (purple_theme_loader_get_type())
-#define PURPLE_THEME_LOADER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), PURPLE_TYPE_THEME_LOADER, PurpleThemeLoader))
-#define PURPLE_THEME_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PURPLE_TYPE_THEME_LOADER, PurpleThemeLoaderClass))
-#define PURPLE_IS_THEME_LOADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), PURPLE_TYPE_THEME_LOADER))
-#define PURPLE_IS_THEME_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), PURPLE_TYPE_THEME_LOADER))
-#define PURPLE_THEME_LOADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PURPLE_TYPE_THEME_LOADER, PurpleThemeLoaderClass))
-struct _PurpleThemeLoader
-struct _PurpleThemeLoaderClass
- GObjectClass parent_class;
- PurpleTheme *((*purple_theme_loader_build)(const gchar*));
-/**************************************************************************/
-/** @name Purple Theme-Loader API */
-/**************************************************************************/
-GType purple_theme_loader_get_type(void);
- * Returns the string representing the type of the theme loader
- * @param self The theme loader
- * @returns The string representing this type
-const gchar *purple_theme_loader_get_type_string(PurpleThemeLoader *self);
- * Creates a new PurpleTheme
- * @param loader The theme loader
- * @param dir The directory containing the theme
- * @returns A PurpleTheme containing the information from the directory
-PurpleTheme *purple_theme_loader_build(PurpleThemeLoader *loader, const gchar *dir);
-#endif /* PURPLE_THEME_LOADER_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/theme-manager.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
- * @file theme-manager.h Theme Manager API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef PURPLE_THEME_MANAGER_H
-#define PURPLE_THEME_MANAGER_H
-#include <glib-object.h>
-#include "theme-loader.h"
-typedef void (*PTFunc) (PurpleTheme *);
-typedef struct _PurpleThemeManager PurpleThemeManager;
-typedef struct _PurpleThemeManagerClass PurpleThemeManagerClass;
-#define PURPLE_TYPE_THEME_MANAGER (purple_theme_manager_get_type())
-#define PURPLE_THEME_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), PURPLE_TYPE_THEME_MANAGER, PurpleThemeManager))
-#define PURPLE_THEME_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PURPLE_TYPE_THEME_MANAGER, PurpleThemeManagerClass))
-#define PURPLE_IS_THEME_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), PURPLE_TYPE_THEME_MANAGER))
-#define PURPLE_IS_THEME_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), PURPLE_TYPE_THEME_MANAGER))
-#define PURPLE_GET_THEME_MANAGER_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PURPLE_TYPE_THEME_MANAGER, PurpleThemeManagerClass))
-struct _PurpleThemeManager {
-struct _PurpleThemeManagerClass {
- GObjectClass parent_class;
-/**************************************************************************/
-/** @name Purple Theme Manager API */
-/**************************************************************************/
-GType purple_theme_manager_get_type(void);
- * Initalizes the theme manager.
-void purple_theme_manager_init(void);
- * Uninitalizes the manager then frees all the themes and loaders it is
-void purple_theme_manager_uninit(void);
- * Rebuilds all the themes in the theme manager.
- * (Removes all current themes but keeps the added loaders.)
-void purple_theme_manager_refresh(void);
- * Finds the PurpleTheme object stored by the theme manager.
- * @param name The name of the PurpleTheme.
- * @param type The type of the PurpleTheme.
- * @returns The PurpleTheme, or NULL if it wasn't found.
-PurpleTheme *purple_theme_manager_find_theme(const gchar *name, const gchar *type);
- * Adds a PurpleTheme to the theme manager. If the theme already exists
- * then this function does nothing.
- * @param theme The PurpleTheme to add to the manager.
-void purple_theme_manager_add_theme(PurpleTheme *theme);
- * Removes a PurpleTheme from the theme manager and frees the theme.
- * @param theme The PurpleTheme to remove from the manager.
-void purple_theme_manager_remove_theme(PurpleTheme *theme);
- * Adds a loader to the theme manager so it knows how to build themes.
- * @param loader The PurpleThemeLoader to add.
-void purple_theme_manager_register_type(PurpleThemeLoader *loader);
- * Removes the loader and all themes of the same type from the loader.
- * @param loader The PurpleThemeLoader to be removed.
-void purple_theme_manager_unregister_type(PurpleThemeLoader *loader);
- * Calls the given function on each purple theme.
- * @param func The PTFunc to be applied to each theme.
-void purple_theme_manager_for_each_theme(PTFunc func);
- * Loads a theme of the given type without adding it to the manager
- * @param theme_dir the directory of the theme to load
- * @param type the type of theme to load
-PurpleTheme *purple_theme_manager_load_theme(const gchar *theme_dir, const gchar *type);
-#endif /* PURPLE_THEME_MANAGER_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/theme.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,175 +0,0 @@
- * @file theme.h Purple Theme Abstact Class API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#include <glib-object.h>
- * This is an abstract class for Purple to use with the Purple theme manager.
- * PurpleTheme is a GObject.
-typedef struct _PurpleTheme PurpleTheme;
-typedef struct _PurpleThemeClass PurpleThemeClass;
-#define PURPLE_TYPE_THEME (purple_theme_get_type ())
-#define PURPLE_THEME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PURPLE_TYPE_THEME, PurpleTheme))
-#define PURPLE_THEME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PURPLE_TYPE_THEME, PurpleThemeClass))
-#define PURPLE_IS_THEME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PURPLE_TYPE_THEME))
-#define PURPLE_IS_THEME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PURPLE_TYPE_THEME))
-#define PURPLE_THEME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PURPLE_TYPE_THEME, PurpleThemeClass))
-struct _PurpleThemeClass
- GObjectClass parent_class;
-/**************************************************************************/
-/** @name Purple Theme API */
-/**************************************************************************/
-GType purple_theme_get_type(void);
- * Returns the name of the PurpleTheme object.
- * @param theme The purple theme.
- * @return The string representing the name of the theme.
-const gchar *purple_theme_get_name(PurpleTheme *theme);
- * Sets the name of the PurpleTheme object.
- * @param theme The purple theme.
- * @param name The name of the PurpleTheme object.
-void purple_theme_set_name(PurpleTheme *theme, const gchar *name);
- * Returns the description of the PurpleTheme object.
- * @param theme The purple theme.
- * @return A short description of the theme.
-const gchar *purple_theme_get_description(PurpleTheme *theme);
- * Sets the description of the PurpleTheme object.
- * @param theme The purple theme.
- * @param description The description of the PurpleTheme object.
-void purple_theme_set_description(PurpleTheme *theme, const gchar *description);
- * Returns the author of the PurpleTheme object.
- * @param theme The purple theme.
- * @return The author of the theme.
-const gchar *purple_theme_get_author(PurpleTheme *theme);
- * Sets the author of the PurpleTheme object.
- * @param theme The purple theme.
- * @param author The author of the PurpleTheme object.
-void purple_theme_set_author(PurpleTheme *theme, const gchar *author);
- * Returns the type (string) of the PurpleTheme object.
- * @param theme The purple theme.
- * @return The string representing the type.
-const gchar *purple_theme_get_type_string(PurpleTheme *theme);
- * Returns the directory of the PurpleTheme object.
- * @param theme The purple theme.
- * @return The string representing the theme directory.
-const gchar *purple_theme_get_dir(PurpleTheme *theme);
- * Sets the directory of the PurpleTheme object.
- * @param theme The purple theme.
- * @param dir The directory of the PurpleTheme object.
-void purple_theme_set_dir(PurpleTheme *theme, const gchar *dir);
- * Returns the image preview of the PurpleTheme object.
- * @param theme The purple theme.
- * @return The image preview of the PurpleTheme object.
-const gchar *purple_theme_get_image(PurpleTheme *theme);
- * Returns the image preview and directory of the PurpleTheme object.
- * @param theme The purple theme.
- * @return The image preview of the PurpleTheme object.
-gchar *purple_theme_get_image_full(PurpleTheme *theme);
- * Sets the directory of the PurpleTheme object.
- * @param theme The purple theme.
- * @param img The image preview of the PurpleTheme object.
-void purple_theme_set_image(PurpleTheme *theme, const gchar *img);
-#endif /* PURPLE_THEME_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/tlv.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
- * @file tlv.h MSN TLV functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-typedef struct msn_tlv_s
-/* TLV handling functions */
-char *msn_tlv_getvalue_as_string(msn_tlv_t *tlv);
-msn_tlv_t *msn_tlv_gettlv(GSList *list, const guint8 type, const int nth);
-int msn_tlv_getlength(GSList *list, const guint8 type, const int nth);
-char *msn_tlv_getstr(GSList *list, const guint8 type, const int nth);
-guint8 msn_tlv_get8(GSList *list, const guint8 type, const int nth);
-guint16 msn_tlv_get16(GSList *list, const guint8 type, const int nth);
-guint32 msn_tlv_get32(GSList *list, const guint8 type, const int nth);
-/* TLV list handling functions */
-GSList *msn_tlvlist_read(const char *bs, size_t bs_len);
-GSList *msn_tlvlist_copy(GSList *orig);
-int msn_tlvlist_count(GSList *list);
-size_t msn_tlvlist_size(GSList *list);
-gboolean msn_tlvlist_equal(GSList *one, GSList *two);
-char *msn_tlvlist_write(GSList *list, size_t *out_len);
-void msn_tlvlist_free(GSList *list);
-int msn_tlvlist_add_raw(GSList **list, const guint8 type, const guint8 length, const char *value);
-int msn_tlvlist_add_empty(GSList **list, const guint8 type);
-int msn_tlvlist_add_8(GSList **list, const guint8 type, const guint8 value);
-int msn_tlvlist_add_16(GSList **list, const guint8 type, const guint16 value);
-int msn_tlvlist_add_32(GSList **list, const guint8 type, const guint32 value);
-int msn_tlvlist_add_str(GSList **list, const guint8 type, const char *value);
-int msn_tlvlist_add_tlv(GSList **list, const msn_tlv_t *tlv);
-int msn_tlvlist_replace_raw(GSList **list, const guint8 type, const guint8 lenth, const char *value);
-int msn_tlvlist_replace_str(GSList **list, const guint8 type, const char *str);
-int msn_tlvlist_replace_empty(GSList **list, const guint8 type);
-int msn_tlvlist_replace_8(GSList **list, const guint8 type, const guint8 value);
-int msn_tlvlist_replace_16(GSList **list, const guint8 type, const guint16 value);
-int msn_tlvlist_replace_32(GSList **list, const guint8 type, const guint32 value);
-int msn_tlvlist_replace_tlv(GSList **list, const msn_tlv_t *tlv);
-void msn_tlvlist_remove(GSList **list, const guint8 type);
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/transaction.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
- * @file transaction.h MSN transaction functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef MSN_TRANSACTION_H
-#define MSN_TRANSACTION_H
-typedef struct _MsnTransaction MsnTransaction;
-typedef void (*MsnTransCb)(MsnCmdProc *cmdproc, MsnCommand *cmd);
-typedef void (*MsnTimeoutCb)(MsnCmdProc *cmdproc, MsnTransaction *trans);
-typedef void (*MsnErrorCb)(MsnCmdProc *cmdproc, MsnTransaction *trans,
- * A transaction. A sending command that will initiate the transaction.
- gboolean saveable; /**< Whether to save this transaction in the history */
- unsigned int trId; /**< The ID of this transaction, if it's being saved */
- void *data; /**< The data to be used on the different callbacks. */
- GDestroyNotify data_free; /**< The function to free 'data', or @c NULL */
- gboolean has_custom_callbacks;
- MsnTimeoutCb timeout_cb;
- MsnCommand *pendent_cmd; /**< The command that is waiting for the result of
-MsnTransaction *msn_transaction_new(MsnCmdProc *cmdproc, const char *command,
- const char *format, ...) G_GNUC_PRINTF(3, 4);
-void msn_transaction_destroy(MsnTransaction *trans);
-char *msn_transaction_to_string(MsnTransaction *trans);
-void msn_transaction_queue_cmd(MsnTransaction *trans, MsnCommand *cmd);
-void msn_transaction_unqueue_cmd(MsnTransaction *trans, MsnCmdProc *cmdproc);
-void msn_transaction_set_payload(MsnTransaction *trans,
- const char *payload, int payload_len);
-void msn_transaction_set_data(MsnTransaction *trans, void *data);
-void msn_transaction_set_data_free(MsnTransaction *trans, GDestroyNotify fn);
-void msn_transaction_set_saveable(MsnTransaction *trans, gboolean saveable);
-void msn_transaction_add_cb(MsnTransaction *trans, char *answer,
-void msn_transaction_set_error_cb(MsnTransaction *trans, MsnErrorCb cb);
-void msn_transaction_set_timeout_cb(MsnTransaction *trans, MsnTimeoutCb cb);
-#endif /* MSN_TRANSACTION_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/upnp.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
- * @file upnp.h Universal Plug N Play API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-typedef struct _UPnPMappingAddRemove UPnPMappingAddRemove;
-/**************************************************************************/
-/**************************************************************************/
-/* typedef struct _PurpleUPnPRequestData PurpleUPnPRequestData; */
-typedef void (*PurpleUPnPCallback) (gboolean success, gpointer data);
-void purple_upnp_init(void);
- * Sends a discovery request to search for a UPnP enabled IGD that
- * contains the WANIPConnection service that will allow us to recieve the
- * public IP address of the IGD, and control it for forwarding ports.
- * The result will be cached for further use.
- * @param cb an optional callback function to be notified when the UPnP
- * discovery is complete
- * @param cb_data Extra data to be passed to the callback
-void purple_upnp_discover(PurpleUPnPCallback cb, gpointer cb_data);
- * Retrieve the current UPnP control info, if there is any available.
- * This will only be filled in if purple_upnp_discover() had been called,
- * and finished discovering.
- * @return The control URL for the IGD we'll use to use the IGD services
-const PurpleUPnPControlInfo* purple_upnp_get_control_info(void);
- * Gets the IP address from a UPnP enabled IGD that sits on the local
- * network, so when getting the network IP, instead of returning the
- * local network IP, the public IP is retrieved. This is a cached value from
- * the time of the UPnP discovery.
- * @return The IP address of the network, or NULL if something went wrong
-const gchar* purple_upnp_get_public_ip(void);
- * Cancel a pending port mapping request initiated with either
- * purple_upnp_set_port_mapping() or purple_upnp_remove_port_mapping().
- * @param mapping_data The data returned when you initiated the UPnP mapping request.
-void purple_upnp_cancel_port_mapping(UPnPMappingAddRemove *mapping_data);
- * Maps Ports in a UPnP enabled IGD that sits on the local network to
- * this purple client. Essentially, this function takes care of the port
- * forwarding so things like file transfers can work behind NAT firewalls
- * @param portmap The port to map to this client
- * @param protocol The protocol to map, either "TCP" or "UDP"
- * @param cb an optional callback function to be notified when the mapping
- * @param cb_data Extra data to be passed to the callback
- * @return Data which can be passed to purple_upnp_port_mapping_cancel() to cancel
-UPnPMappingAddRemove *purple_upnp_set_port_mapping(unsigned short portmap, const gchar* protocol,
- PurpleUPnPCallback cb, gpointer cb_data);
- * Deletes a port mapping in a UPnP enabled IGD that sits on the local network
- * to this purple client. Essentially, this function takes care of deleting the
- * port forwarding after they have completed a connection so another client on
- * the local network can take advantage of the port forwarding
- * @param portmap The port to delete the mapping for
- * @param protocol The protocol to map to. Either "TCP" or "UDP"
- * @param cb an optional callback function to be notified when the mapping
- * @param cb_data Extra data to be passed to the callback
- * @return Data which can be passed to purple_upnp_port_mapping_cancel() to cancel
-UPnPMappingAddRemove *purple_upnp_remove_port_mapping(unsigned short portmap,
- const gchar* protocol, PurpleUPnPCallback cb, gpointer cb_data);
-#endif /* _PURPLE_UPNP_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/user.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,533 +0,0 @@
- * @file user.h User functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-typedef struct _MsnUser MsnUser;
- MSN_NETWORK_UNKNOWN = 0,
- MSN_NETWORK_PASSPORT = 1,
- MSN_NETWORK_COMMUNICATOR = 2,
- MSN_NETWORK_MOBILE = 4,
- MSN_NETWORK_CIRCLE = 9,
- MSN_NETWORK_TEMP_GROUP = 10,
- MSN_NETWORK_CONNECT = 13,
- MSN_NETWORK_REMOTE = 14,
- * Contains optional info about a user that is fairly uncommon. We
- * put this info in in a separate struct to save memory because we
- * allocate an MsnUser struct for each buddy, but we generally only
- * need this information for a small percentage of our buddies
- * (usually less than 1%). Putting it in a separate struct makes
- * MsnUser smaller by the size of a few pointers.
-typedef struct _MsnUserExtendedInfo
- CurrentMediaType media_type; /**< Type of the user's current media. */
- char *media_title; /**< Title of the user's current media. */
- char *media_artist; /**< Artist of the user's current media. */
- char *media_album; /**< Album of the user's current media. */
- char *phone_home; /**< E.T. uses this. */
- char *phone_work; /**< Work phone number. */
- char *phone_mobile; /**< Mobile phone number. */
- guint8 refcount; /**< The reference count of this object */
- char *passport; /**< The passport account. */
- char *friendly_name; /**< The friendly name. */
- char *uid; /*< User ID */
- GSList *endpoints; /*< Endpoint-specific data */
- const char *status; /**< The state of the user. */
- char *statusline; /**< The state of the user. */
- gboolean idle; /**< The idle state of the user. */
- MsnUserExtendedInfo *extinfo; /**< Extended info for the user. */
- gboolean authorized; /**< Authorized to add this user. */
- gboolean mobile; /**< Signed up with MSN Mobile. */
- GList *group_ids; /**< The group IDs. */
- char *pending_group; /**< A pending group to add. */
- MsnObject *msnobj; /**< The user's MSN Object. */
- GHashTable *clientcaps; /**< The client's capabilities. */
- guint clientid; /**< The client's ID */
- guint extcaps; /**< The client's extended capabilities */
- MsnNetwork networkid; /**< The user's network */
- MsnListOp list_op; /**< Which lists the user is in */
- * The membershipId for this buddy on our pending list. Sent by
- guint member_id_on_pending_list;
- char *invite_message; /**< Invite message of user request */
- * A specific user endpoint.
-typedef struct MsnUserEndpoint {
- char *id; /**< The client's endpoint ID */
- char *name; /**< The client's endpoint's name */
- int type; /**< The client's endpoint type */
- guint clientid; /**< The client's ID */
- guint extcaps; /**< The client's extended capabilites */
-/**************************************************************************
- **************************************************************************/
- * Creates a new user structure.
- * @param session The MSN session.
- * @param passport The initial passport.
- * @param stored_name The initial stored name.
- * @return A new user structure. It will have a reference count of 1.
-MsnUser *msn_user_new(MsnUserList *userlist, const char *passport,
- const char *friendly_name);
- * Increment the reference count.
- * @param user The user.
-MsnUser *msn_user_ref(MsnUser *user);
- * Decrement the reference count. When the count reaches 0 the object is
-void msn_user_unref(MsnUser *user);
- * Communicates with the core to update the ui, etc.
- * @param user The user to update.
-void msn_user_update(MsnUser *user);
- * Sets the new statusline of user.
- * @param user The user.
- * @param state The statusline string.
-void msn_user_set_statusline(MsnUser *user, const char *statusline);
- * Sets the new state of user.
- * @param user The user.
- * @param state The state string.
-void msn_user_set_state(MsnUser *user, const char *state);
- * Sets the passport account for a user.
- * @param user The user.
- * @param passport The passport account.
-void msn_user_set_passport(MsnUser *user, const char *passport);
- * Sets the friendly name for a user.
- * @param user The user.
- * @param name The friendly name.
- * @returns TRUE is name actually changed, FALSE otherwise.
-gboolean msn_user_set_friendly_name(MsnUser *user, const char *name);
- * Sets the buddy icon for a local user.
- * @param user The user.
- * @param img The buddy icon image
-void msn_user_set_buddy_icon(MsnUser *user, PurpleStoredImage *img);
- * Sets the group ID list for a user.
- * @param user The user.
- * @param ids The group ID list.
-void msn_user_set_group_ids(MsnUser *user, GList *ids);
- * Adds the group ID for a user.
- * @param user The user.
- * @param id The group ID.
-void msn_user_add_group_id(MsnUser *user, const char * id);
- * Removes the group ID from a user.
- * @param user The user.
- * @param id The group ID.
-void msn_user_remove_group_id(MsnUser *user, const char * id);
- * Sets the pending group for a user.
- * @param user The user.
- * @param group The group name.
-void msn_user_set_pending_group(MsnUser *user, const char *group);
- * Removes the pending group from a user.
- * @param user The user.
- * @return Returns the pending group name.
-char *msn_user_remove_pending_group(MsnUser *user);
- * Sets the home phone number for a user.
- * @param user The user.
- * @param number The home phone number.
-void msn_user_set_home_phone(MsnUser *user, const char *number);
- * Sets the work phone number for a user.
- * @param user The user.
- * @param number The work phone number.
-void msn_user_set_work_phone(MsnUser *user, const char *number);
-void msn_user_set_uid(MsnUser *user, const char *uid);
- * Sets endpoint data for a user.
- * @param user The user.
- * @param endpoint The endpoint.
- * @param data The endpoint data.
-msn_user_set_endpoint_data(MsnUser *user, const char *endpoint, MsnUserEndpoint *data);
- * Clears all endpoint data for a user.
- * @param user The user.
-msn_user_clear_endpoints(MsnUser *user);
- * Sets the client id for a user.
- * @param user The user.
- * @param clientid The client id.
-void msn_user_set_clientid(MsnUser *user, guint clientid);
- * Sets the client id for a user.
- * @param user The user.
- * @param extcaps The client's extended capabilities.
-void msn_user_set_extcaps(MsnUser *user, guint extcaps);
- * Sets the network id for a user.
- * @param user The user.
- * @param network The network id.
-void msn_user_set_network(MsnUser *user, MsnNetwork network);
- * Sets the mobile phone number for a user.
- * @param user The user.
- * @param number The mobile phone number.
-void msn_user_set_mobile_phone(MsnUser *user, const char *number);
- * Sets the MSNObject for a user.
- * @param user The user.
- * @param obj The MSNObject.
-void msn_user_set_object(MsnUser *user, MsnObject *obj);
- * Sets the client information for a user.
- * @param user The user.
- * @param info The client information.
-void msn_user_set_client_caps(MsnUser *user, GHashTable *info);
- * Sets the invite message for a user.
- * @param user The user.
- * @param message The invite message for a user.
-void msn_user_set_invite_message(MsnUser *user, const char *message);
- * Returns the passport account for a user.
- * @param user The user.
- * @return The passport account.
-const char *msn_user_get_passport(const MsnUser *user);
- * Returns the friendly name for a user.
- * @param user The user.
- * @return The friendly name.
-const char *msn_user_get_friendly_name(const MsnUser *user);
- * Returns the home phone number for a user.
- * @param user The user.
- * @return The user's home phone number.
-const char *msn_user_get_home_phone(const MsnUser *user);
- * Returns the work phone number for a user.
- * @param user The user.
- * @return The user's work phone number.
-const char *msn_user_get_work_phone(const MsnUser *user);
- * Returns the mobile phone number for a user.
- * @param user The user.
- * @return The user's mobile phone number.
-const char *msn_user_get_mobile_phone(const MsnUser *user);
- * Gets endpoint data for a user.
- * @param user The user.
- * @param endpoint The endpoint.
- * @return The user's endpoint data.
-msn_user_get_endpoint_data(MsnUser *user, const char *endpoint);
- * Returns the client id for a user.
- * @param user The user.
- * @return The user's client id.
-guint msn_user_get_clientid(const MsnUser *user);
- * Returns the extended capabilities for a user.
- * @param user The user.
- * @return The user's extended capabilities.
-guint msn_user_get_extcaps(const MsnUser *user);
-/**************************************************************************
- **************************************************************************/
- * Check if the user is part of the group.
- * @param user The user we are asking group membership.
- * @param group_id The group where the user may be in.
- * @return TRUE if user is part of the group. Otherwise, FALSE.
-gboolean msn_user_is_in_group(MsnUser *user, const char * group_id);
- * Check if user is on list.
- * @param user The user we are asking list membership.
- * @param list_id The list where the user may be in.
- * @return TRUE if the user is on the list, else FALSE.
-gboolean msn_user_is_in_list(MsnUser *user, MsnListId list_id);
- * Returns the network id for a user.
- * @param user The user.
- * @return The user's network id.
-MsnNetwork msn_user_get_network(const MsnUser *user);
- * Returns the MSNObject for a user.
- * @param user The user.
- * @return The MSNObject.
-MsnObject *msn_user_get_object(const MsnUser *user);
- * Returns the client information for a user.
- * @param user The user.
- * @return The client information.
-GHashTable *msn_user_get_client_caps(const MsnUser *user);
- * Returns the invite message for a user.
- * @param user The user.
- * @return The user's invite message.
-const char *msn_user_get_invite_message(const MsnUser *user);
- * check to see if user is online
-gboolean msn_user_is_online(PurpleAccount *account, const char *name);
- * check to see if user is Yahoo User
-gboolean msn_user_is_yahoo(PurpleAccount *account, const char *name);
-void msn_user_set_op(MsnUser *user, MsnListOp list_op);
-void msn_user_unset_op(MsnUser *user, MsnListOp list_op);
- * Compare the given passport with the one of the user
- * @param user User to compare.
- * @oaran passport Passport to compare.
- * @return Zero if the passport match with the one of the user, otherwise
- * a positive integer if the user passport is greather than the one given
- * and a negative integer if it is less.
-int msn_user_passport_cmp(MsnUser *user, const char *passport);
- * Checks whether a user is capable of some task.
- * @param user The user.
- * @param endpoint The endpoint. Can be @NULL to check overall capabilities.
- * @param capability The capability (including client version).
- * @param extcap The extended capability.
- * @return Whether the user supports the capability.
-msn_user_is_capable(MsnUser *user, char *endpoint, guint capability, guint extcap);
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/userlist.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
- * @file userlist.h MSN user list support
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-typedef struct _MsnUserList MsnUserList;
- MSN_LIST_FL, /**< Forward list */
- MSN_LIST_AL, /**< Allow list */
- MSN_LIST_BL, /**< Block list */
- MSN_LIST_RL, /**< Reverse list */
- MSN_LIST_PL /**< Pending list */
-#define MSN_LIST_OP_MASK 0x07
- GList *users; /* Contains MsnUsers */
- GList *groups; /* Contains MsnGroups */
- GQueue *buddy_icon_requests;
- guint buddy_icon_request_timer;
-void msn_got_lst_user(MsnSession *session, MsnUser *user,
- MsnListOp list_op, GSList *group_ids);
-MsnUserList *msn_userlist_new(MsnSession *session);
-void msn_userlist_destroy(MsnUserList *userlist);
-void msn_userlist_add_user(MsnUserList *userlist, MsnUser *user);
-void msn_userlist_remove_user(MsnUserList *userlist, MsnUser *user);
-MsnUser * msn_userlist_find_user(MsnUserList *userlist, const char *passport);
-MsnUser * msn_userlist_find_add_user(MsnUserList *userlist,
- const char *passport, const char *friendly_name);
-MsnUser * msn_userlist_find_user_with_id(MsnUserList *userlist, const char *uid);
-MsnUser * msn_userlist_find_user_with_mobile_phone(MsnUserList *userlist, const char *number);
-void msn_userlist_add_group(MsnUserList *userlist, MsnGroup *group);
-void msn_userlist_remove_group(MsnUserList *userlist, MsnGroup *group);
-MsnGroup *msn_userlist_find_group_with_id(MsnUserList *userlist, const char *id);
-MsnGroup *msn_userlist_find_group_with_name(MsnUserList *userlist, const char *name);
-const char * msn_userlist_find_group_id(MsnUserList *userlist,
- const char *group_name);
-const char *msn_userlist_find_group_name(MsnUserList *userlist, const char *group_id);
-void msn_userlist_rename_group_id(MsnUserList *userlist, const char *group_id,
-void msn_userlist_remove_group_id(MsnUserList *userlist, const char *group_id);
-void msn_userlist_rem_buddy(MsnUserList *userlist, const char *who);
-void msn_userlist_add_buddy(MsnUserList *userlist,
- const char *who, const char *group_name);
-void msn_userlist_move_buddy(MsnUserList *userlist, const char *who,
- const char *old_group_name,
- const char *new_group_name);
-gboolean msn_userlist_add_buddy_to_group(MsnUserList *userlist, const char *who,
- const char *group_name);
-gboolean msn_userlist_rem_buddy_from_group(MsnUserList *userlist,
- const char *group_name);
-void msn_userlist_add_buddy_to_list(MsnUserList *userlist, const char *who,
-void msn_userlist_rem_buddy_from_list(MsnUserList *userlist, const char *who,
-void msn_release_buddy_icon_request(MsnUserList *userlist);
-void msn_userlist_load(MsnSession *session);
-#endif /* MSN_USERLIST_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/util.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1489 +0,0 @@
- * @file util.h Utility Functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
- * @todo Rename the functions so that they live somewhere in the purple
- * An opaque structure representing a URL request. Can be used to cancel
-typedef struct _PurpleUtilFetchUrlData PurpleUtilFetchUrlData;
-/** @copydoc _PurpleMenuAction */
-typedef struct _PurpleMenuAction PurpleMenuAction;
-/** @copydoc _PurpleKeyValuePair */
-typedef struct _PurpleKeyValuePair PurpleKeyValuePair;
-struct _PurpleMenuAction
- PurpleCallback callback;
-typedef char *(*PurpleInfoFieldFormatCallback)(const char *field, size_t len);
- * This is used by, among other things, purple_gtk_combo* functions to pass in a
- * list of key-value pairs so it can display a user-friendly value.
-struct _PurpleKeyValuePair
- * Creates a new PurpleMenuAction.
- * @param label The text label to display for this action.
- * @param callback The function to be called when the action is used on
- * @param data Additional data to be passed to the callback.
- * @param children A GList of PurpleMenuActions to be added as a submenu
- * @return The PurpleMenuAction.
-PurpleMenuAction *purple_menu_action_new(const char *label, PurpleCallback callback,
- gpointer data, GList *children);
- * Frees a PurpleMenuAction
- * @param act The PurpleMenuAction to free.
-void purple_menu_action_free(PurpleMenuAction *act);
- * Set the appropriate presence values for the currently playing song.
- * @param title The title of the song, @c NULL to unset the value.
- * @param artist The artist of the song, can be @c NULL.
- * @param album The album of the song, can be @c NULL.
-void purple_util_set_current_song(const char *title, const char *artist,
- * Format song information.
- * @param title The title of the song, @c NULL to unset the value.
- * @param artist The artist of the song, can be @c NULL.
- * @param album The album of the song, can be @c NULL.
- * @param unused Currently unused, must be @c NULL.
- * @return The formatted string. The caller must g_free the returned string.
-char * purple_util_format_song_info(const char *title, const char *artist,
- const char *album, gpointer unused);
-/**************************************************************************/
-/** @name Utility Subsystem */
-/**************************************************************************/
- * Initializes the utility subsystem.
-void purple_util_init(void);
- * Uninitializes the util subsystem.
-void purple_util_uninit(void);
-/**************************************************************************/
-/** @name Base16 Functions */
-/**************************************************************************/
- * Converts a chunk of binary data to its base-16 equivalent.
- * @param data The data to convert.
- * @param len The length of the data.
- * @return The base-16 string in the ASCII encoding. Must be
- * g_free'd when no longer needed.
- * @see purple_base16_decode()
-gchar *purple_base16_encode(const guchar *data, gsize len);
- * Converts an ASCII string of base-16 encoded data to
- * the binary equivalent.
- * @param str The base-16 string to convert to raw data.
- * @param ret_len The length of the returned data. You can
- * pass in NULL if you're sure that you know
- * the length of the decoded data, or if you
- * know you'll be able to use strlen to
- * determine the length, etc.
- * @return The raw data. Must be g_free'd when no longer needed.
- * @see purple_base16_encode()
-guchar *purple_base16_decode(const char *str, gsize *ret_len);
- * Converts a chunk of binary data to a chunked base-16 representation
- * (handy for key fingerprints)
- * Example output: 01:23:45:67:89:AB:CD:EF
- * @param data The data to convert.
- * @param len The length of the data.
- * @return The base-16 string in the ASCII chunked encoding. Must be
- * g_free'd when no longer needed.
-gchar *purple_base16_encode_chunked(const guchar *data, gsize len);
-/**************************************************************************/
-/** @name Base64 Functions */
-/**************************************************************************/
- * Converts a chunk of binary data to its base-64 equivalent.
- * @param data The data to convert.
- * @param len The length of the data.
- * @return The base-64 string in the ASCII encoding. Must be
- * g_free'd when no longer needed.
- * @see purple_base64_decode()
-gchar *purple_base64_encode(const guchar *data, gsize len);
- * Converts an ASCII string of base-64 encoded data to
- * the binary equivalent.
- * @param str The base-64 string to convert to raw data.
- * @param ret_len The length of the returned data. You can
- * pass in NULL if you're sure that you know
- * the length of the decoded data, or if you
- * know you'll be able to use strlen to
- * determine the length, etc.
- * @return The raw data. Must be g_free'd when no longer needed.
- * @see purple_base64_encode()
-guchar *purple_base64_decode(const char *str, gsize *ret_len);
-/**************************************************************************/
-/** @name Quoted Printable Functions */
-/**************************************************************************/
- * Converts a quoted printable string back to its readable equivalent.
- * What is a quoted printable string, you ask? It's an encoding used
- * to transmit binary data as ASCII. It's intended purpose is to send
- * emails containing non-ASCII characters. Wikipedia has a pretty good
- * explanation. Also see RFC 2045.
- * @param str The quoted printable ASCII string to convert to raw data.
- * @param ret_len The length of the returned data.
- * @return The readable string. Must be g_free'd when no longer needed.
-guchar *purple_quotedp_decode(const char *str, gsize *ret_len);
-/**************************************************************************/
-/** @name MIME Functions */
-/**************************************************************************/
- * Converts a MIME header field string back to its readable equivalent
- * according to RFC 2047. Basically, a header is plain ASCII and can
- * contain any number of sections called "encoded-words." The format
- * of an encoded word is =?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?=
- * =? designates the beginning of the encoded-word
- * ?= designates the end of the encoded-word
- * An encoded word is segmented into three pieces by the use of a
- * question mark. The first piece is the character set, the second
- * piece is the encoding, and the third piece is the encoded text.
- * @param str The ASCII string, possibly containing any number of
- * encoded-word sections.
- * @return The string, with any encoded-word sections decoded and
- * converted to UTF-8. Must be g_free'd when no longer
-char *purple_mime_decode_field(const char *str);
-/**************************************************************************/
-/** @name Date/Time Functions */
-/**************************************************************************/
- * Formats a time into the specified format.
- * This is essentially strftime(), but it has a static buffer
- * and handles the UTF-8 conversion for the caller.
- * This function also provides the GNU %z formatter if the underlying C
- * library doesn't. However, the format string parser is very naive, which
- * means that conversions specifiers to %z cannot be guaranteed. The GNU
- * strftime(3) man page describes %z as: 'The time-zone as hour offset from
- * GMT. Required to emit RFC822-conformant dates
- * (using "%a, %d %b %Y %H:%M:%S %z"). (GNU)'
- * On Windows, this function also converts the results for %Z from a timezone
- * name (as returned by the system strftime() %Z format string) to a timezone
- * abbreviation (as is the case on Unix). As with %z, conversion specifiers
- * @param format The format string, in UTF-8
- * @param tm The time to format, or @c NULL to use the current local time
- * @return The formatted time, in UTF-8.
- * @note @a format is required to be in UTF-8. This differs from strftime(),
- * where the format is provided in the locale charset.
-const char *purple_utf8_strftime(const char *format, const struct tm *tm);
- * Gets a string representation of the local timezone offset
- * @param tm The time to get the timezone for
- * @param iso TRUE to format the offset according to ISO-8601, FALSE to
- * not substitute 'Z' for 0 offset, and to not separate
- * hours and minutes with a colon.
-const char *purple_get_tzoff_str(const struct tm *tm, gboolean iso);
- * Formats a time into the user's preferred short date format.
- * The returned string is stored in a static buffer, so the result
- * should be g_strdup()'d if it's going to be kept.
- * @param tm The time to format, or @c NULL to use the current local time
- * @return The date, formatted as per the user's settings.
-const char *purple_date_format_short(const struct tm *tm);
- * Formats a time into the user's preferred short date plus time format.
- * The returned string is stored in a static buffer, so the result
- * should be g_strdup()'d if it's going to be kept.
- * @param tm The time to format, or @c NULL to use the current local time
- * @return The timestamp, formatted as per the user's settings.
-const char *purple_date_format_long(const struct tm *tm);
- * Formats a time into the user's preferred full date and time format.
- * The returned string is stored in a static buffer, so the result
- * should be g_strdup()'d if it's going to be kept.
- * @param tm The time to format, or @c NULL to use the current local time
- * @return The date and time, formatted as per the user's settings.
-const char *purple_date_format_full(const struct tm *tm);
- * Formats a time into the user's preferred time format.
- * The returned string is stored in a static buffer, so the result
- * should be g_strdup()'d if it's going to be kept.
- * @param tm The time to format, or @c NULL to use the current local time
- * @return The time, formatted as per the user's settings.
-const char *purple_time_format(const struct tm *tm);
- * Builds a time_t from the supplied information.
- * @param year The year.
- * @param month The month.
- * @param hour The hour.
- * @param min The minute.
- * @param sec The second.
-time_t purple_time_build(int year, int month, int day, int hour,
-/** Used by purple_str_to_time to indicate no timezone offset was
- * specified in the timestamp string. */
-#define PURPLE_NO_TZ_OFF -500000
- * Parses a timestamp in jabber, ISO8601, or MM/DD/YYYY format and returns
- * @param timestamp The timestamp
- * @param utc Assume UTC if no timezone specified
- * @param tm If not @c NULL, the caller can get a copy of the
- * struct tm used to calculate the time_t return value.
- * @param tz_off If not @c NULL, the caller can get a copy of the
- * timezone offset (from UTC) used to calculate the time_t
- * return value. Note: Zero is a valid offset. As such,
- * the value of the macro @c PURPLE_NO_TZ_OFF indicates no
- * offset was specified (which means that the local
- * timezone was used in the calculation).
- * @param rest If not @c NULL, the caller can get a pointer to the
- * part of @a timestamp left over after parsing is
- * completed, if it's not the end of @a timestamp.
-time_t purple_str_to_time(const char *timestamp, gboolean utc,
- struct tm *tm, long *tz_off, const char **rest);
-/**************************************************************************/
-/** @name Markup Functions */
-/**************************************************************************/
- * Escapes special characters in a plain-text string so they display
- * correctly as HTML. For example, & is replaced with & and < is
- * This is exactly the same as g_markup_escape_text(), except that it
- * does not change ' to ' because ' is not a valid HTML 4 entity,
- * and is displayed literally in IE7.
-gchar *purple_markup_escape_text(const gchar *text, gssize length);
- * Finds an HTML tag matching the given name.
- * This locates an HTML tag's start and end, and stores its attributes
- * in a GData hash table. The names of the attributes are lower-cased
- * in the hash table, and the name of the tag is case insensitive.
- * @param needle The name of the tag
- * @param haystack The null-delimited string to search in
- * @param start A pointer to the start of the tag if found
- * @param end A pointer to the end of the tag if found
- * @param attributes The attributes, if the tag was found. This should
- * be freed with g_datalist_clear().
- * @return TRUE if the tag was found
-gboolean purple_markup_find_tag(const char *needle, const char *haystack,
- const char **start, const char **end,
- * Extracts a field of data from HTML.
- * This is a scary function. See protocols/msn/msn.c and
- * protocols/yahoo/yahoo_profile.c for example usage.
- * @param str The string to parse.
- * @param len The size of str.
- * @param user_info The destination PurpleNotifyUserInfo to which the new
- * field info should be added.
- * @param start_token The beginning token.
- * @param skip The number of characters to skip after the
- * @param end_token The ending token.
- * @param check_value The value that the last character must meet.
- * @param no_value_token The token indicating no value is given.
- * @param display_name The short descriptive name to display for this token.
- * @param is_link TRUE if this should be a link, or FALSE otherwise.
- * @param link_prefix The prefix for the link.
- * @param format_cb A callback to format the value before adding it.
- * @return TRUE if successful, or FALSE otherwise.
-gboolean purple_markup_extract_info_field(const char *str, int len, PurpleNotifyUserInfo *user_info,
- const char *start_token, int skip,
- const char *end_token, char check_value,
- const char *no_value_token,
- const char *display_name, gboolean is_link,
- const char *link_prefix,
- PurpleInfoFieldFormatCallback format_cb);
- * Converts HTML markup to XHTML.
- * @param html The HTML markup.
- * @param dest_xhtml The destination XHTML output.
- * @param dest_plain The destination plain-text output.
-void purple_markup_html_to_xhtml(const char *html, char **dest_xhtml,
- * Strips HTML tags from a string.
- * @param str The string to strip HTML from.
- * @return The new string without HTML. You must g_free this string
- * when finished with it.
-char *purple_markup_strip_html(const char *str);
- * Adds the necessary HTML code to turn URIs into HTML links in a string.
- * @param str The string to linkify.
- * @return The new string with all URIs surrounded in standard
- * HTML <a href="whatever"></a> tags. You must g_free this
- * string when finished with it.
-char *purple_markup_linkify(const char *str);
- * Unescapes HTML entities to their literal characters in the text.
- * For example "&" is replaced by '&' and so on. Also converts
- * numerical entities (e.g. "&" is also '&').
- * This function currently supports the following named entities:
- * "&", "<", ">", "©", """, "®", "'"
- * purple_unescape_html() is similar, but also converts "<br>" into "\n".
- * @param text The string in which to unescape any HTML entities
- * @return The text with HTML entities literalized. You must g_free
- * this string when finished with it.
- * @see purple_unescape_html()
-char *purple_unescape_text(const char *text);
- * Unescapes HTML entities to their literal characters and converts
- * "<br>" to "\n". See purple_unescape_text() for more details.
- * @param html The string in which to unescape any HTML entities
- * @return The text with HTML entities literalized. You must g_free
- * this string when finished with it.
- * @see purple_unescape_text()
-char *purple_unescape_html(const char *html);
- * Returns a newly allocated substring of the HTML UTF-8 string "str".
- * The markup is preserved such that the substring will have the same
- * formatting as original string, even though some tags may have been
- * opened before "x", or may close after "y". All open tags are closed
- * at the end of the returned string, in the proper order.
- * Note that x and y are in character offsets, not byte offsets, and
- * are offsets into an unformatted version of str. Because of this,
- * this function may be sensitive to changes in GtkIMHtml and may break
- * when used with other UI's. libpurple users are encouraged to report and
- * work out any problems encountered.
- * @param str The input NUL terminated, HTML, UTF-8 (or ASCII) string.
- * @param x The character offset into an unformatted version of str to
- * @param y The character offset (into an unformatted vesion of str) of
- * one past the last character to include in the slice.
- * @return The HTML slice of string, with all formatting retained.
-char *purple_markup_slice(const char *str, guint x, guint y);
- * Returns a newly allocated string containing the name of the tag
- * located at "tag". Tag is expected to point to a '<', and contain
- * a '>' sometime after that. If there is no '>' and the string is
- * not NUL terminated, this function can be expected to segfault.
- * @param tag The string starting a HTML tag.
- * @return A string containing the name of the tag.
-char *purple_markup_get_tag_name(const char *tag);
- * Returns a constant string of the character representation of the HTML
- * entity pointed to by @a text. For example, purple_markup_unescape_entity("&")
- * will return "&". The @a text variable is expected to point to an '&',
- * the first character of the entity. If given an unrecognized entity, the function
- * Note that this function, unlike purple_unescape_html(), does not search
- * the string for the entity, does not replace the entity, and does not
- * return a newly allocated string.
- * @param text A string containing an HTML entity.
- * @param length If not @c NULL, the string length of the entity is stored in this location.
- * @return A constant string containing the character representation of the given entity.
-const char * purple_markup_unescape_entity(const char *text, int *length);
- * Returns a newly allocated string containing the value of the CSS property specified
- * in opt. The @a style argument is expected to point to a HTML inline CSS.
- * The function will seek for the CSS property and return its value.
- * For example, purple_markup_get_css_property("direction:rtl;color:#dc4d1b;",
- * "color") would return "#dc4d1b".
- * On error or if the requested property was not found, the function returns
- * @param style A string containing the inline CSS text.
- * @param opt The requested CSS property.
- * @return The value of the requested CSS property.
-char * purple_markup_get_css_property(const gchar *style, const gchar *opt);
- * Check if the given HTML contains RTL text.
- * @param html The HTML text.
- * @return TRUE if the text contains RTL text, FALSE otherwise.
-gboolean purple_markup_is_rtl(const char *html);
-/**************************************************************************/
-/** @name Path/Filename Functions */
-/**************************************************************************/
- * Returns the user's home directory.
- * @return The user's home directory.
- * @see purple_user_dir()
-const gchar *purple_home_dir(void);
- * Returns the purple settings directory in the user's home directory.
- * This is usually ~/.purple
- * @return The purple settings directory.
- * @see purple_home_dir()
-const char *purple_user_dir(void);
- * Define a custom purple settings directory, overriding the default (user's home directory/.purple)
- * @param dir The custom settings directory
-void purple_util_set_user_dir(const char *dir);
- * Builds a complete path from the root, making any directories along
- * the path which do not already exist.
- * @param path The path you wish to create. Note that it must start
- * from the root or this function will fail.
- * @param mode Unix-style permissions for this directory.
- * @return 0 for success, nonzero on any error.
-int purple_build_dir(const char *path, int mode);
- * Write a string of data to a file of the given name in the Purple
- * user directory ($HOME/.purple by default). The data is typically
- * a serialized version of one of Purple's config files, such as
- * prefs.xml, accounts.xml, etc. And the string is typically
- * obtained using xmlnode_to_formatted_str. However, this function
- * should work fine for saving binary files as well.
- * @param filename The basename of the file to write in the purple_user_dir.
- * @param data A null-terminated string of data to write.
- * @param size The size of the data to save. If data is
- * null-terminated you can pass in -1.
- * @return TRUE if the file was written successfully. FALSE otherwise.
-gboolean purple_util_write_data_to_file(const char *filename, const char *data,
- * Write data to a file using the absolute path.
- * This exists for Glib backwards compatibility reasons.
- * @param filename_full Filename to write to
- * @param data A null-terminated string of data to write.
- * @param size The size of the data to save. If data is
- * null-terminated you can pass in -1.
- * @return TRUE if the file was written successfully. FALSE otherwise.
- * @todo Remove this function (use g_file_set_contents instead) when 3.0.0
- * @see purple_util_write_data_to_file()
-purple_util_write_data_to_file_absolute(const char *filename_full, const char *data, gssize size);
- * Read the contents of a given file and parse the results into an
- * xmlnode tree structure. This is intended to be used to read
- * Purple's configuration xml files (prefs.xml, pounces.xml, etc.)
- * @param filename The basename of the file to open in the purple_user_dir.
- * @param description A very short description of the contents of this
- * file. This is used in error messages shown to the
- * user when the file can not be opened. For example,
- * "preferences," or "buddy pounces."
- * @return An xmlnode tree of the contents of the given file. Or NULL, if
- * the file does not exist or there was an error reading the file.
-xmlnode *purple_util_read_xml_from_file(const char *filename,
- const char *description);
- * Creates a temporary file and returns a file pointer to it.
- * This is like mkstemp(), but returns a file pointer and uses a
- * pre-set template. It uses the semantics of tempnam() for the
- * directory to use and allocates the space for the file path.
- * The caller is responsible for closing the file and removing it when
- * done, as well as freeing the space pointed to by @a path with
- * @param path The returned path to the temp file.
- * @param binary Text or binary, for platforms where it matters.
- * @return A file pointer to the temporary file, or @c NULL on failure.
-FILE *purple_mkstemp(char **path, gboolean binary);
- * Returns an extension corresponding to the image data's file type.
- * @param data A pointer to the image data
- * @param len The length of the image data
- * @return The appropriate extension, or "icon" if unknown.
-purple_util_get_image_extension(gconstpointer data, size_t len);
- * Returns a SHA-1 hash string of the data passed in.
-char *purple_util_get_image_checksum(gconstpointer image_data, size_t image_len);
- * @return A hex encoded version of the SHA-1 hash of the data passed
- * in with the correct file extention appended. The file
- * extension is determined by calling
- * purple_util_get_image_extension(). This return value must
- * be g_freed by the caller.
-char *purple_util_get_image_filename(gconstpointer image_data, size_t image_len);
-/**************************************************************************/
-/** @name Environment Detection Functions */
-/**************************************************************************/
- * Checks if the given program name is valid and executable.
- * @param program The file name of the application.
- * @return TRUE if the program is runable.
-gboolean purple_program_is_valid(const char *program);
- * Check if running GNOME.
- * @return TRUE if running GNOME, FALSE otherwise.
-gboolean purple_running_gnome(void);
- * Check if running KDE.
- * @return TRUE if running KDE, FALSE otherwise.
-gboolean purple_running_kde(void);
- * Check if running OS X.
- * @return TRUE if running OS X, FALSE otherwise.
-gboolean purple_running_osx(void);
- * Returns the IP address from a socket file descriptor.
- * @param fd The socket file descriptor.
- * @return The IP address, or @c NULL on error.
-char *purple_fd_get_ip(int fd);
- * Returns the address family of a socket.
- * @param fd The socket file descriptor.
- * @return The address family of the socket (AF_INET, AF_INET6, etc) or -1
-int purple_socket_get_family(int fd);
- * Returns TRUE if a socket is capable of speaking IPv4.
- * This is the case for IPv4 sockets and, on some systems, IPv6 sockets
- * (due to the IPv4-mapped address functionality).
- * @param fd The socket file descriptor
- * @return TRUE if a socket can speak IPv4.
-gboolean purple_socket_speaks_ipv4(int fd);
-/**************************************************************************/
-/** @name String Functions */
-/**************************************************************************/
- * Tests two strings for equality.
- * Unlike strcmp(), this function will not crash if one or both of the
- * @param right A string to compare with left
- * @return @c TRUE if the strings are the same, else @c FALSE.
-gboolean purple_strequal(const gchar *left, const gchar *right);
- * Normalizes a string, so that it is suitable for comparison.
- * The returned string will point to a static buffer, so if the
- * string is intended to be kept long-term, you <i>must</i>
- * g_strdup() it. Also, calling normalize() twice in the same line
- * will lead to problems.
- * @param account The account the string belongs to, or NULL if you do
- * not know the account. If you use NULL, the string
- * will still be normalized, but if the PRPL uses a
- * custom normalization function then the string may
- * not be normalized correctly.
- * @param str The string to normalize.
- * @return A pointer to the normalized version stored in a static buffer.
-const char *purple_normalize(const PurpleAccount *account, const char *str);
- * Normalizes a string, so that it is suitable for comparison.
- * This is one possible implementation for the PRPL callback
- * function "normalize." It returns a lowercase and UTF-8
- * normalized version of the string.
- * @param account The account the string belongs to.
- * @param str The string to normalize.
- * @return A pointer to the normalized version stored in a static buffer.
-const char *purple_normalize_nocase(const PurpleAccount *account, const char *str);
- * Compares two strings to see if the first contains the second as
- * @param s The string to check.
- * @param p The prefix in question.
- * @return TRUE if p is a prefix of s, otherwise FALSE.
-gboolean purple_str_has_prefix(const char *s, const char *p);
- * Compares two strings to see if the second is a proper suffix
- * @param s The string to check.
- * @param x The suffix in question.
- * @return TRUE if x is a a suffix of s, otherwise FALSE.
-gboolean purple_str_has_suffix(const char *s, const char *x);
- * Duplicates a string and replaces all newline characters from the
- * source string with HTML linebreaks.
- * @param src The source string.
- * @return The new string. Must be g_free'd by the caller.
-gchar *purple_strdup_withhtml(const gchar *src);
- * Ensures that all linefeeds have a matching carriage return.
- * @param str The source string.
- * @return The string with carriage returns.
-char *purple_str_add_cr(const char *str);
- * Strips all instances of the given character from the
- * given string. The string is modified in place. This
- * is useful for stripping new line characters, for example.
- * purple_str_strip_char(my_dumb_string, '\n');
- * @param str The string to strip characters from.
- * @param thechar The character to strip from the given string.
-void purple_str_strip_char(char *str, char thechar);
- * Given a string, this replaces all instances of one character
- * with another. This happens inline (the original string IS
- * @param string The string from which to replace stuff.
- * @param delimiter The character you want replaced.
- * @param replacement The character you want inserted in place
- * of the delimiting character.
-void purple_util_chrreplace(char *string, char delimiter,
- * Given a string, this replaces one substring with another
- * and returns a newly allocated string.
- * @param string The string from which to replace stuff.
- * @param delimiter The substring you want replaced.
- * @param replacement The substring you want inserted in place
- * of the delimiting substring.
- * @return A new string, after performing the substitution.
- * free this with g_free().
-gchar *purple_strreplace(const char *string, const char *delimiter,
- const char *replacement);
- * Given a string, this replaces any utf-8 substrings in that string with
- * the corresponding numerical character reference, and returns a newly
- * @param in The string which might contain utf-8 substrings
- * @return A new string, with utf-8 replaced with numerical character
- * references, free this with g_free()
-char *purple_utf8_ncr_encode(const char *in);
- * Given a string, this replaces any numerical character references
- * in that string with the corresponding actual utf-8 substrings,
- * and returns a newly allocated string.
- * @param in The string which might contain numerical character references.
- * @return A new string, with numerical character references
- * replaced with actual utf-8, free this with g_free().
-char *purple_utf8_ncr_decode(const char *in);
- * Given a string, this replaces one substring with another
- * ignoring case and returns a newly allocated string.
- * @param string The string from which to replace stuff.
- * @param delimiter The substring you want replaced.
- * @param replacement The substring you want inserted in place
- * of the delimiting substring.
- * @return A new string, after performing the substitution.
- * free this with g_free().
-gchar *purple_strcasereplace(const char *string, const char *delimiter,
- const char *replacement);
- * This is like strstr, except that it ignores ASCII case in
- * searching for the substring.
- * @param haystack The string to search in.
- * @param needle The substring to find.
- * @return the location of the substring if found, or NULL if not
-const char *purple_strcasestr(const char *haystack, const char *needle);
- * Returns a string representing a filesize in the appropriate
- * units (MB, KB, GB, etc.)
- * @return The string in units form. This must be freed.
-char *purple_str_size_to_units(size_t size);
- * Converts seconds into a human-readable form.
- * @param sec The seconds.
- * @return A human-readable form, containing days, hours, minutes, and
-char *purple_str_seconds_to_string(guint sec);
- * Converts a binary string into a NUL terminated ascii string,
- * replacing nonascii characters and characters below SPACE (including
- * NUL) into \\xyy, where yy are two hex digits. Also backslashes are
- * changed into two backslashes (\\\\). The returned, newly allocated
- * string can be outputted to the console, and must be g_free()d.
- * @param binary A string of random data, possibly with embedded NULs
- * @param len The length in bytes of the input string. Must not be 0.
- * @return A newly allocated ASCIIZ string.
-char *purple_str_binary_to_ascii(const unsigned char *binary, guint len);
-/**************************************************************************/
-/** @name URI/URL Functions */
-/**************************************************************************/
-void purple_got_protocol_handler_uri(const char *uri);
- * Parses a URL, returning its host, port, file path, username and password.
- * The returned data must be freed.
- * @param url The URL to parse.
- * @param ret_host The returned host.
- * @param ret_port The returned port.
- * @param ret_path The returned path.
- * @param ret_user The returned username.
- * @param ret_passwd The returned password.
-gboolean purple_url_parse(const char *url, char **ret_host, int *ret_port,
- char **ret_path, char **ret_user, char **ret_passwd);
- * This is the signature used for functions that act as the callback
- * to purple_util_fetch_url() or purple_util_fetch_url_request().
- * @param url_data The same value that was returned when you called
- * purple_fetch_url() or purple_fetch_url_request().
- * @param user_data The user data that your code passed into either
- * purple_util_fetch_url() or purple_util_fetch_url_request().
- * @param url_text This will be NULL on error. Otherwise this
- * will contain the contents of the URL.
- * @param len 0 on error, otherwise this is the length of buf.
- * @param error_message If something went wrong then this will contain
- * a descriptive error message, and buf will be
- * NULL and len will be 0.
-typedef void (*PurpleUtilFetchUrlCallback)(PurpleUtilFetchUrlData *url_data, gpointer user_data, const gchar *url_text, gsize len, const gchar *error_message);
- * Fetches the data from a URL, and passes it to a callback function.
- * @param full TRUE if this is the full URL, or FALSE if it's a
- * @param user_agent The user agent field to use, or NULL.
- * @param http11 TRUE if HTTP/1.1 should be used to download the file.
- * @param cb The callback function.
- * @param data The user data to pass to the callback function.
-#define purple_util_fetch_url(url, full, user_agent, http11, cb, data) \
- purple_util_fetch_url_request(url, full, user_agent, http11, NULL, \
- * Fetches the data from a URL, and passes it to a callback function.
- * @param full TRUE if this is the full URL, or FALSE if it's a
- * @param user_agent The user agent field to use, or NULL.
- * @param http11 TRUE if HTTP/1.1 should be used to download the file.
- * @param max_len The maximum number of bytes to retrieve (-1 for unlimited)
- * @param cb The callback function.
- * @param data The user data to pass to the callback function.
- * @deprecated In 3.0.0, we'll rename this to "purple_util_fetch_url" and get rid of the old one
-#define purple_util_fetch_url_len(url, full, user_agent, http11, max_len, cb, data) \
- purple_util_fetch_url_request_len(url, full, user_agent, http11, NULL, \
- FALSE, max_len, cb, data);
- * Fetches the data from a URL, and passes it to a callback function.
- * @param full TRUE if this is the full URL, or FALSE if it's a
- * @param user_agent The user agent field to use, or NULL.
- * @param http11 TRUE if HTTP/1.1 should be used to download the file.
- * @param request A HTTP request to send to the server instead of the
- * @param include_headers
- * If TRUE, include the HTTP headers in the response.
- * @param callback The callback function.
- * @param data The user data to pass to the callback function.
-PurpleUtilFetchUrlData *purple_util_fetch_url_request(const gchar *url,
- gboolean full, const gchar *user_agent, gboolean http11,
- const gchar *request, gboolean include_headers,
- PurpleUtilFetchUrlCallback callback, gpointer data);
- * Fetches the data from a URL, and passes it to a callback function.
- * @param full TRUE if this is the full URL, or FALSE if it's a
- * @param user_agent The user agent field to use, or NULL.
- * @param http11 TRUE if HTTP/1.1 should be used to download the file.
- * @param request A HTTP request to send to the server instead of the
- * @param include_headers
- * If TRUE, include the HTTP headers in the response.
- * @param max_len The maximum number of bytes to retrieve (-1 for unlimited)
- * @param callback The callback function.
- * @param data The user data to pass to the callback function.
- * @deprecated In 3.0.0, this will go away.
-PurpleUtilFetchUrlData *purple_util_fetch_url_request_len(const gchar *url,
- gboolean full, const gchar *user_agent, gboolean http11,
- const gchar *request, gboolean include_headers, gssize max_len,
- PurpleUtilFetchUrlCallback callback, gpointer data);
- * Fetches the data from a URL, and passes it to a callback function.
- * @param account The account for which the request is needed, or NULL.
- * @param full TRUE if this is the full URL, or FALSE if it's a
- * @param user_agent The user agent field to use, or NULL.
- * @param http11 TRUE if HTTP/1.1 should be used to download the file.
- * @param request A HTTP request to send to the server instead of the
- * @param include_headers
- * If TRUE, include the HTTP headers in the response.
- * @param max_len The maximum number of bytes to retrieve (-1 for unlimited)
- * @param callback The callback function.
- * @param data The user data to pass to the callback function.
- * @deprecated In 3.0.0, we'll rename this to "purple_util_fetch_url_request" and get rid of the old one
-PurpleUtilFetchUrlData *purple_util_fetch_url_request_len_with_account(
- PurpleAccount *account, const gchar *url,
- gboolean full, const gchar *user_agent, gboolean http11,
- const gchar *request, gboolean include_headers, gssize max_len,
- PurpleUtilFetchUrlCallback callback, gpointer data);
- * Cancel a pending URL request started with either
- * purple_util_fetch_url_request() or purple_util_fetch_url().
- * @param url_data The data returned when you initiated the URL fetch.
-void purple_util_fetch_url_cancel(PurpleUtilFetchUrlData *url_data);
- * Decodes a URL into a plain string.
- * This will change hex codes and such to their ascii equivalents.
- * @param str The string to translate.
- * @return The resulting string.
-const char *purple_url_decode(const char *str);
- * Encodes a URL into an escaped string.
- * This will change non-alphanumeric characters to hex codes.
- * @param str The string to translate.
- * @return The resulting string.
-const char *purple_url_encode(const char *str);
- * Checks if the given email address is syntactically valid.
- * @param address The email address to validate.
- * @return True if the email address is syntactically correct.
-gboolean purple_email_is_valid(const char *address);
- * Checks if the given IP address is a syntactically valid IPv4 address.
- * @param ip The IP address to validate.
- * @return True if the IP address is syntactically correct.
- * @deprecated This function will be replaced with one that validates
- * as either IPv4 or IPv6 in 3.0.0. If you don't want this,
- * behavior, use one of the more specific functions.
-gboolean purple_ip_address_is_valid(const char *ip);
- * Checks if the given IP address is a syntactically valid IPv4 address.
- * @param ip The IP address to validate.
- * @return True if the IP address is syntactically correct.
-gboolean purple_ipv4_address_is_valid(const char *ip);
- * Checks if the given IP address is a syntactically valid IPv6 address.
- * @param ip The IP address to validate.
- * @return True if the IP address is syntactically correct.
-gboolean purple_ipv6_address_is_valid(const char *ip);
- * This function extracts a list of URIs from the a "text/uri-list"
- * string. It was "borrowed" from gnome_uri_list_extract_uris
- * @param uri_list An uri-list in the standard format.
- * @return A GList containing strings allocated with g_malloc
- * that have been splitted from uri-list.
-GList *purple_uri_list_extract_uris(const gchar *uri_list);
- * This function extracts a list of filenames from a
- * "text/uri-list" string. It was "borrowed" from
- * gnome_uri_list_extract_filenames
- * @param uri_list A uri-list in the standard format.
- * @return A GList containing strings allocated with g_malloc that
- * contain the filenames in the uri-list. Note that unlike
- * purple_uri_list_extract_uris() function, this will discard
- * any non-file uri from the result value.
-GList *purple_uri_list_extract_filenames(const gchar *uri_list);
-/**************************************************************************
- * UTF8 String Functions
- **************************************************************************/
- * Attempts to convert a string to UTF-8 from an unknown encoding.
- * This function checks the locale and tries sane defaults.
- * @param str The source string.
- * @return The UTF-8 string, or @c NULL if it could not be converted.
-gchar *purple_utf8_try_convert(const char *str);
- * Salvages the valid UTF-8 characters from a string, replacing any
- * invalid characters with a filler character (currently hardcoded to
- * @param str The source string.
- * @return A valid UTF-8 string.
-gchar *purple_utf8_salvage(const char *str);
- * Removes unprintable characters from a UTF-8 string. These characters
- * (in particular low-ASCII characters) are invalid in XML 1.0 and thus
- * are not allowed in XMPP and are rejected by libxml2 by default.
- * The returned string must be freed by the caller.
- * @param str A valid UTF-8 string.
- * @return A newly allocated UTF-8 string without the unprintable characters.
-gchar *purple_utf8_strip_unprintables(const gchar *str);
- * Return the UTF-8 version of gai_strerror(). It calls gai_strerror()
- * then converts the result to UTF-8. This function is analogous to
- * @param errnum The error code.
- * @return The UTF-8 error message.
-G_CONST_RETURN gchar *purple_gai_strerror(gint errnum);
- * Compares two UTF-8 strings case-insensitively. This comparison is
- * more expensive than a simple g_utf8_collate() comparison because
- * it calls g_utf8_casefold() on each string, which allocates new
- * @param a The first string.
- * @param b The second string.
- * @return -1 if @a is less than @a b.
- * 0 if @a is equal to @a b.
- * 1 if @a is greater than @a b.
-int purple_utf8_strcasecmp(const char *a, const char *b);
- * Case insensitive search for a word in a string. The needle string
- * must be contained in the haystack string and not be immediately
- * preceded or immediately followed by another alpha-numeric character.
- * @param haystack The string to search in.
- * @param needle The substring to find.
- * @return TRUE if haystack has the word, otherwise FALSE
-gboolean purple_utf8_has_word(const char *haystack, const char *needle);
- * Prints a UTF-8 message to the given file stream. The function
- * tries to convert the UTF-8 message to user's locale. If this
- * is not possible, the original UTF-8 text will be printed.
- * @param filestream The file stream (e.g. STDOUT or STDERR)
- * @param message The message to print.
-void purple_print_utf8_to_console(FILE *filestream, char *message);
- * Checks for messages starting (post-HTML) with "/me ", including the space.
- * @param message The message to check
- * @param len The message length, or -1
- * @return TRUE if it starts with "/me ", and it has been removed, otherwise
-gboolean purple_message_meify(char *message, gssize len);
- * Removes the underscore characters from a string used identify the mnemonic
- * @param in The string to strip
- * @return The stripped string
-char *purple_text_strip_mnemonic(const char *in);
- * @param x The number to add 8 to.
-#define purple_add_eight(x) ((x)+8)
- * Does the reverse of purple_escape_filename
- * This will change hex codes and such to their ascii equivalents.
- * @param str The string to translate.
- * @return The resulting string.
-const char *purple_unescape_filename(const char *str);
- * Escapes filesystem-unfriendly characters from a filename
- * @param str The string to translate.
- * @return The resulting string.
-const char *purple_escape_filename(const char *str);
- * This is added temporarily to assist the split of oscar into aim and icq.
- * This should not be used by plugins.
- * @deprecated This function should not be used in new code and should be
- * removed in 3.0.0. The aim/icq prpl split happened a long
- * time ago, and we don't need to keep migrating old data.
-const char *_purple_oscar_convert(const char *act, const char *protocol);
- * Restore default signal handlers for signals which might reasonably have
- * handlers. This should be called by a fork()'d child process, since child processes
- * inherit the handlers of the parent.
-void purple_restore_default_signal_handlers(void);
- * Gets the host name of the machine. If it not possible to determine the
- * host name, "localhost" is returned
- * @constreturn The hostname
-const gchar *purple_get_host_name(void);
- * Returns a type 4 (random) UUID
- * @return A UUID, caller is responsible for freeing it
-gchar *purple_uuid_random(void);
-#endif /* _PURPLE_UTIL_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/valgrind.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3924 +0,0 @@
- ----------------------------------------------------------------
- Notice that the following BSD-style license applies to this one
- file (valgrind.h) only. The rest of Valgrind is licensed under the
- terms of the GNU General Public License, version 2, unless
- otherwise indicated. See the COPYING file in the source
- distribution for details.
- ----------------------------------------------------------------
- This file is part of Valgrind, a dynamic binary instrumentation
- Copyright (C) 2000-2008 Julian Seward. All rights reserved.
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. The origin of this software must not be misrepresented; you must
- not claim that you wrote the original software. If you use this
- software in a product, an acknowledgment in the product
- documentation would be appreciated but is not required.
- 3. Altered source versions must be plainly marked as such, and must
- not be misrepresented as being the original software.
- 4. The name of the author may not be used to endorse or promote
- products derived from this software without specific prior written
- THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
- OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- ----------------------------------------------------------------
- Notice that the above BSD-style license applies to this one file
- (valgrind.h) only. The entire rest of Valgrind is licensed under
- the terms of the GNU General Public License, version 2. See the
- COPYING file in the source distribution for details.
- ----------------------------------------------------------------
-/* This file is for inclusion into client (your!) code.
- You can use these macros to manipulate and query Valgrind's
- execution inside your own programs.
- The resulting executables will still run without Valgrind, just a
- little bit more slowly than they otherwise would, but otherwise
- unchanged. When not running on valgrind, each client request
- consumes very few (eg. 7) instructions, so the resulting performance
- loss is negligible unless you plan to execute client requests
- millions of times per second. Nevertheless, if that is still a
- problem, you can compile with the NVALGRIND symbol defined (gcc
- -DNVALGRIND) so that client requests are not even compiled in. */
-/* Nb: this file might be included in a file compiled with -ansi. So
- we can't use C++ style "//" comments nor the "asm" keyword (instead
-/* Derive some tags indicating what the target platform is. Note
- that in this file we're using the compiler's CPP symbols for
- identifying architectures, which are different to the ones we use
- within the rest of Valgrind. Note, __powerpc__ is active for both
- 32 and 64-bit PPC, whereas __powerpc64__ is only active for the
- latter (on Linux, that is). */
-#if !defined(_AIX) && defined(__i386__)
-# define PLAT_x86_linux 1
-#elif !defined(_AIX) && defined(__x86_64__)
-# define PLAT_amd64_linux 1
-#elif !defined(_AIX) && defined(__powerpc__) && !defined(__powerpc64__)
-# define PLAT_ppc32_linux 1
-#elif !defined(_AIX) && defined(__powerpc__) && defined(__powerpc64__)
-# define PLAT_ppc64_linux 1
-#elif defined(_AIX) && defined(__64BIT__)
-# define PLAT_ppc64_aix5 1
-#elif defined(_AIX) && !defined(__64BIT__)
-# define PLAT_ppc32_aix5 1
-/* If we're not compiling for our target platform, don't generate
-#if !defined(PLAT_x86_linux) && !defined(PLAT_amd64_linux) \
- && !defined(PLAT_ppc32_linux) && !defined(PLAT_ppc64_linux) \
- && !defined(PLAT_ppc32_aix5) && !defined(PLAT_ppc64_aix5)
-# if !defined(NVALGRIND)
-/* ------------------------------------------------------------------ */
-/* ARCHITECTURE SPECIFICS for SPECIAL INSTRUCTIONS. There is nothing */
-/* in here of use to end-users -- skip to the next section. */
-/* ------------------------------------------------------------------ */
-/* Define NVALGRIND to completely remove the Valgrind magic sequence
- from the compiled code (analogous to NDEBUG's effects on
-#define VALGRIND_DO_CLIENT_REQUEST( \
- _zzq_rlval, _zzq_default, _zzq_request, \
- _zzq_arg1, _zzq_arg2, _zzq_arg3, _zzq_arg4, _zzq_arg5) \
- (_zzq_rlval) = (_zzq_default); \
-/* The following defines the magic code sequences which the JITter
- spots and handles magically. Don't look too closely at them as
- they will rot your brain.
- The assembly code sequences for all architectures is in this one
- file. This is because this file must be stand-alone, and we don't
- want to have multiple files.
- For VALGRIND_DO_CLIENT_REQUEST, we must ensure that the default
- value gets put in the return slot, so that everything works when
- this is executed not under Valgrind. Args are passed in a memory
- block, and so there's no intrinsic limit to the number that could
- be passed, but it's currently five.
- _zzq_rlval result lvalue
- _zzq_default default value (result returned when running on real CPU)
- _zzq_request request code
- _zzq_arg1..5 request params
- The other two macros are used to support function wrapping, and are
- a lot simpler. VALGRIND_GET_NR_CONTEXT returns the value of the
- guest's NRADDR pseudo-register and whatever other information is
- needed to safely run the call original from the wrapper: on
- ppc64-linux, the R2 value at the divert point is also needed. This
- information is abstracted into a user-visible type, OrigFn.
- VALGRIND_CALL_NOREDIR_* behaves the same as the following on the
- guest, but guarantees that the branch instruction will not be
- redirected: x86: call *%eax, amd64: call *%rax, ppc32/ppc64:
- branch-and-link-to-r11. VALGRIND_CALL_NOREDIR is just text, not a
- complete inline asm, since it needs to be combined with more magic
- inline asm stuff to be useful.
-/* ------------------------- x86-linux ------------------------- */
-#if defined(PLAT_x86_linux)
- unsigned int nraddr; /* where's the code? */
-#define __SPECIAL_INSTRUCTION_PREAMBLE \
- "roll $3, %%edi ; roll $13, %%edi\n\t" \
- "roll $29, %%edi ; roll $19, %%edi\n\t"
-#define VALGRIND_DO_CLIENT_REQUEST( \
- _zzq_rlval, _zzq_default, _zzq_request, \
- _zzq_arg1, _zzq_arg2, _zzq_arg3, _zzq_arg4, _zzq_arg5) \
- { volatile unsigned int _zzq_args[6]; \
- volatile unsigned int _zzq_result; \
- _zzq_args[0] = (unsigned int)(_zzq_request); \
- _zzq_args[1] = (unsigned int)(_zzq_arg1); \
- _zzq_args[2] = (unsigned int)(_zzq_arg2); \
- _zzq_args[3] = (unsigned int)(_zzq_arg3); \
- _zzq_args[4] = (unsigned int)(_zzq_arg4); \
- _zzq_args[5] = (unsigned int)(_zzq_arg5); \
- __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \
- /* %EDX = client_request ( %EAX ) */ \
- : "a" (&_zzq_args[0]), "0" (_zzq_default) \
- _zzq_rlval = _zzq_result; \
-#define VALGRIND_GET_NR_CONTEXT(_zzq_rlval) \
- { volatile OrigFn* _zzq_orig = &(_zzq_rlval); \
- volatile unsigned int __addr; \
- __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \
- /* %EAX = guest_NRADDR */ \
- _zzq_orig->nraddr = __addr; \
-#define VALGRIND_CALL_NOREDIR_EAX \
- __SPECIAL_INSTRUCTION_PREAMBLE \
- /* call-noredir *%EAX */ \
- "xchgl %%edx,%%edx\n\t"
-#endif /* PLAT_x86_linux */
-/* ------------------------ amd64-linux ------------------------ */
-#if defined(PLAT_amd64_linux)
- unsigned long long int nraddr; /* where's the code? */
-#define __SPECIAL_INSTRUCTION_PREAMBLE \
- "rolq $3, %%rdi ; rolq $13, %%rdi\n\t" \
- "rolq $61, %%rdi ; rolq $51, %%rdi\n\t"
-#define VALGRIND_DO_CLIENT_REQUEST( \
- _zzq_rlval, _zzq_default, _zzq_request, \
- _zzq_arg1, _zzq_arg2, _zzq_arg3, _zzq_arg4, _zzq_arg5) \
- { volatile unsigned long long int _zzq_args[6]; \
- volatile unsigned long long int _zzq_result; \
- _zzq_args[0] = (unsigned long long int)(_zzq_request); \
- _zzq_args[1] = (unsigned long long int)(_zzq_arg1); \
- _zzq_args[2] = (unsigned long long int)(_zzq_arg2); \
- _zzq_args[3] = (unsigned long long int)(_zzq_arg3); \
- _zzq_args[4] = (unsigned long long int)(_zzq_arg4); \
- _zzq_args[5] = (unsigned long long int)(_zzq_arg5); \
- __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \
- /* %RDX = client_request ( %RAX ) */ \
- : "a" (&_zzq_args[0]), "0" (_zzq_default) \
- _zzq_rlval = _zzq_result; \
-#define VALGRIND_GET_NR_CONTEXT(_zzq_rlval) \
- { volatile OrigFn* _zzq_orig = &(_zzq_rlval); \
- volatile unsigned long long int __addr; \
- __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \
- /* %RAX = guest_NRADDR */ \
- _zzq_orig->nraddr = __addr; \
-#define VALGRIND_CALL_NOREDIR_RAX \
- __SPECIAL_INSTRUCTION_PREAMBLE \
- /* call-noredir *%RAX */ \
- "xchgq %%rdx,%%rdx\n\t"
-#endif /* PLAT_amd64_linux */
-/* ------------------------ ppc32-linux ------------------------ */
-#if defined(PLAT_ppc32_linux)
- unsigned int nraddr; /* where's the code? */
-#define __SPECIAL_INSTRUCTION_PREAMBLE \
- "rlwinm 0,0,3,0,0 ; rlwinm 0,0,13,0,0\n\t" \
- "rlwinm 0,0,29,0,0 ; rlwinm 0,0,19,0,0\n\t"
-#define VALGRIND_DO_CLIENT_REQUEST( \
- _zzq_rlval, _zzq_default, _zzq_request, \
- _zzq_arg1, _zzq_arg2, _zzq_arg3, _zzq_arg4, _zzq_arg5) \
- { unsigned int _zzq_args[6]; \
- unsigned int _zzq_result; \
- unsigned int* _zzq_ptr; \
- _zzq_args[0] = (unsigned int)(_zzq_request); \
- _zzq_args[1] = (unsigned int)(_zzq_arg1); \
- _zzq_args[2] = (unsigned int)(_zzq_arg2); \
- _zzq_args[3] = (unsigned int)(_zzq_arg3); \
- _zzq_args[4] = (unsigned int)(_zzq_arg4); \
- _zzq_args[5] = (unsigned int)(_zzq_arg5); \
- _zzq_ptr = _zzq_args; \
- __asm__ volatile("mr 3,%1\n\t" /*default*/ \
- "mr 4,%2\n\t" /*ptr*/ \
- __SPECIAL_INSTRUCTION_PREAMBLE \
- /* %R3 = client_request ( %R4 ) */ \
- : "b" (_zzq_default), "b" (_zzq_ptr) \
- : "cc", "memory", "r3", "r4"); \
- _zzq_rlval = _zzq_result; \
-#define VALGRIND_GET_NR_CONTEXT(_zzq_rlval) \
- { volatile OrigFn* _zzq_orig = &(_zzq_rlval); \
- __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \
- /* %R3 = guest_NRADDR */ \
- : "cc", "memory", "r3" \
- _zzq_orig->nraddr = __addr; \
-#define VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- __SPECIAL_INSTRUCTION_PREAMBLE \
- /* branch-and-link-to-noredir *%R11 */ \
-#endif /* PLAT_ppc32_linux */
-/* ------------------------ ppc64-linux ------------------------ */
-#if defined(PLAT_ppc64_linux)
- unsigned long long int nraddr; /* where's the code? */
- unsigned long long int r2; /* what tocptr do we need? */
-#define __SPECIAL_INSTRUCTION_PREAMBLE \
- "rotldi 0,0,3 ; rotldi 0,0,13\n\t" \
- "rotldi 0,0,61 ; rotldi 0,0,51\n\t"
-#define VALGRIND_DO_CLIENT_REQUEST( \
- _zzq_rlval, _zzq_default, _zzq_request, \
- _zzq_arg1, _zzq_arg2, _zzq_arg3, _zzq_arg4, _zzq_arg5) \
- { unsigned long long int _zzq_args[6]; \
- register unsigned long long int _zzq_result __asm__("r3"); \
- register unsigned long long int* _zzq_ptr __asm__("r4"); \
- _zzq_args[0] = (unsigned long long int)(_zzq_request); \
- _zzq_args[1] = (unsigned long long int)(_zzq_arg1); \
- _zzq_args[2] = (unsigned long long int)(_zzq_arg2); \
- _zzq_args[3] = (unsigned long long int)(_zzq_arg3); \
- _zzq_args[4] = (unsigned long long int)(_zzq_arg4); \
- _zzq_args[5] = (unsigned long long int)(_zzq_arg5); \
- _zzq_ptr = _zzq_args; \
- __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \
- /* %R3 = client_request ( %R4 ) */ \
- : "0" (_zzq_default), "r" (_zzq_ptr) \
- _zzq_rlval = _zzq_result; \
-#define VALGRIND_GET_NR_CONTEXT(_zzq_rlval) \
- { volatile OrigFn* _zzq_orig = &(_zzq_rlval); \
- register unsigned long long int __addr __asm__("r3"); \
- __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \
- /* %R3 = guest_NRADDR */ \
- _zzq_orig->nraddr = __addr; \
- __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \
- /* %R3 = guest_NRADDR_GPR2 */ \
- _zzq_orig->r2 = __addr; \
-#define VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- __SPECIAL_INSTRUCTION_PREAMBLE \
- /* branch-and-link-to-noredir *%R11 */ \
-#endif /* PLAT_ppc64_linux */
-/* ------------------------ ppc32-aix5 ------------------------- */
-#if defined(PLAT_ppc32_aix5)
- unsigned int nraddr; /* where's the code? */
- unsigned int r2; /* what tocptr do we need? */
-#define __SPECIAL_INSTRUCTION_PREAMBLE \
- "rlwinm 0,0,3,0,0 ; rlwinm 0,0,13,0,0\n\t" \
- "rlwinm 0,0,29,0,0 ; rlwinm 0,0,19,0,0\n\t"
-#define VALGRIND_DO_CLIENT_REQUEST( \
- _zzq_rlval, _zzq_default, _zzq_request, \
- _zzq_arg1, _zzq_arg2, _zzq_arg3, _zzq_arg4, _zzq_arg5) \
- { unsigned int _zzq_args[7]; \
- register unsigned int _zzq_result; \
- register unsigned int* _zzq_ptr; \
- _zzq_args[0] = (unsigned int)(_zzq_request); \
- _zzq_args[1] = (unsigned int)(_zzq_arg1); \
- _zzq_args[2] = (unsigned int)(_zzq_arg2); \
- _zzq_args[3] = (unsigned int)(_zzq_arg3); \
- _zzq_args[4] = (unsigned int)(_zzq_arg4); \
- _zzq_args[5] = (unsigned int)(_zzq_arg5); \
- _zzq_args[6] = (unsigned int)(_zzq_default); \
- _zzq_ptr = _zzq_args; \
- __asm__ volatile("mr 4,%1\n\t" \
- __SPECIAL_INSTRUCTION_PREAMBLE \
- /* %R3 = client_request ( %R4 ) */ \
- : "r3", "r4", "cc", "memory"); \
- _zzq_rlval = _zzq_result; \
-#define VALGRIND_GET_NR_CONTEXT(_zzq_rlval) \
- { volatile OrigFn* _zzq_orig = &(_zzq_rlval); \
- register unsigned int __addr; \
- __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \
- /* %R3 = guest_NRADDR */ \
- : "r3", "cc", "memory" \
- _zzq_orig->nraddr = __addr; \
- __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \
- /* %R3 = guest_NRADDR_GPR2 */ \
- : "r3", "cc", "memory" \
- _zzq_orig->r2 = __addr; \
-#define VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- __SPECIAL_INSTRUCTION_PREAMBLE \
- /* branch-and-link-to-noredir *%R11 */ \
-#endif /* PLAT_ppc32_aix5 */
-/* ------------------------ ppc64-aix5 ------------------------- */
-#if defined(PLAT_ppc64_aix5)
- unsigned long long int nraddr; /* where's the code? */
- unsigned long long int r2; /* what tocptr do we need? */
-#define __SPECIAL_INSTRUCTION_PREAMBLE \
- "rotldi 0,0,3 ; rotldi 0,0,13\n\t" \
- "rotldi 0,0,61 ; rotldi 0,0,51\n\t"
-#define VALGRIND_DO_CLIENT_REQUEST( \
- _zzq_rlval, _zzq_default, _zzq_request, \
- _zzq_arg1, _zzq_arg2, _zzq_arg3, _zzq_arg4, _zzq_arg5) \
- { unsigned long long int _zzq_args[7]; \
- register unsigned long long int _zzq_result; \
- register unsigned long long int* _zzq_ptr; \
- _zzq_args[0] = (unsigned int long long)(_zzq_request); \
- _zzq_args[1] = (unsigned int long long)(_zzq_arg1); \
- _zzq_args[2] = (unsigned int long long)(_zzq_arg2); \
- _zzq_args[3] = (unsigned int long long)(_zzq_arg3); \
- _zzq_args[4] = (unsigned int long long)(_zzq_arg4); \
- _zzq_args[5] = (unsigned int long long)(_zzq_arg5); \
- _zzq_args[6] = (unsigned int long long)(_zzq_default); \
- _zzq_ptr = _zzq_args; \
- __asm__ volatile("mr 4,%1\n\t" \
- __SPECIAL_INSTRUCTION_PREAMBLE \
- /* %R3 = client_request ( %R4 ) */ \
- : "r3", "r4", "cc", "memory"); \
- _zzq_rlval = _zzq_result; \
-#define VALGRIND_GET_NR_CONTEXT(_zzq_rlval) \
- { volatile OrigFn* _zzq_orig = &(_zzq_rlval); \
- register unsigned long long int __addr; \
- __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \
- /* %R3 = guest_NRADDR */ \
- : "r3", "cc", "memory" \
- _zzq_orig->nraddr = __addr; \
- __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \
- /* %R3 = guest_NRADDR_GPR2 */ \
- : "r3", "cc", "memory" \
- _zzq_orig->r2 = __addr; \
-#define VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- __SPECIAL_INSTRUCTION_PREAMBLE \
- /* branch-and-link-to-noredir *%R11 */ \
-#endif /* PLAT_ppc64_aix5 */
-/* Insert assembly code for other platforms here... */
-/* ------------------------------------------------------------------ */
-/* PLATFORM SPECIFICS for FUNCTION WRAPPING. This is all very */
-/* ugly. It's the least-worst tradeoff I can think of. */
-/* ------------------------------------------------------------------ */
-/* This section defines magic (a.k.a appalling-hack) macros for doing
- guaranteed-no-redirection macros, so as to get from function
- wrappers to the functions they are wrapping. The whole point is to
- construct standard call sequences, but to do the call itself with a
- special no-redirect call pseudo-instruction that the JIT
- understands and handles specially. This section is long and
- repetitious, and I can't see a way to make it shorter.
- The naming scheme is as follows:
- CALL_FN_{W,v}_{v,W,WW,WWW,WWWW,5W,6W,7W,etc}
- 'W' stands for "word" and 'v' for "void". Hence there are
- different macros for calling arity 0, 1, 2, 3, 4, etc, functions,
- and for each, the possibility of returning a word-typed result, or
-/* Use these to write the name of your wrapper. NOTE: duplicates
- VG_WRAP_FUNCTION_Z{U,Z} in pub_tool_redir.h. */
-#define I_WRAP_SONAME_FNNAME_ZU(soname,fnname) \
- _vgwZU_##soname##_##fnname
-#define I_WRAP_SONAME_FNNAME_ZZ(soname,fnname) \
- _vgwZZ_##soname##_##fnname
-/* Use this macro from within a wrapper function to collect the
- context (address and possibly other info) of the original function.
- Once you have that you can then use it in one of the CALL_FN_
- macros. The type of the argument _lval is OrigFn. */
-#define VALGRIND_GET_ORIG_FN(_lval) VALGRIND_GET_NR_CONTEXT(_lval)
-/* Derivatives of the main macros below, for calling functions
-#define CALL_FN_v_v(fnptr) \
- do { volatile unsigned long _junk; \
- CALL_FN_W_v(_junk,fnptr); } while (0)
-#define CALL_FN_v_W(fnptr, arg1) \
- do { volatile unsigned long _junk; \
- CALL_FN_W_W(_junk,fnptr,arg1); } while (0)
-#define CALL_FN_v_WW(fnptr, arg1,arg2) \
- do { volatile unsigned long _junk; \
- CALL_FN_W_WW(_junk,fnptr,arg1,arg2); } while (0)
-#define CALL_FN_v_WWW(fnptr, arg1,arg2,arg3) \
- do { volatile unsigned long _junk; \
- CALL_FN_W_WWW(_junk,fnptr,arg1,arg2,arg3); } while (0)
-/* ------------------------- x86-linux ------------------------- */
-#if defined(PLAT_x86_linux)
-/* These regs are trashed by the hidden call. No need to mention eax
- as gcc can already see that, plus causes gcc to bomb. */
-#define __CALLER_SAVED_REGS /*"eax"*/ "ecx", "edx"
-/* These CALL_FN_ macros assume that on x86-linux, sizeof(unsigned
-#define CALL_FN_W_v(lval, orig) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[1]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- "movl (%%eax), %%eax\n\t" /* target->%eax */ \
- VALGRIND_CALL_NOREDIR_EAX \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_W(lval, orig, arg1) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[2]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- "movl (%%eax), %%eax\n\t" /* target->%eax */ \
- VALGRIND_CALL_NOREDIR_EAX \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_WW(lval, orig, arg1,arg2) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- "movl (%%eax), %%eax\n\t" /* target->%eax */ \
- VALGRIND_CALL_NOREDIR_EAX \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_WWW(lval, orig, arg1,arg2,arg3) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[4]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- "pushl 12(%%eax)\n\t" \
- "movl (%%eax), %%eax\n\t" /* target->%eax */ \
- VALGRIND_CALL_NOREDIR_EAX \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_WWWW(lval, orig, arg1,arg2,arg3,arg4) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[5]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- _argvec[4] = (unsigned long)(arg4); \
- "pushl 16(%%eax)\n\t" \
- "pushl 12(%%eax)\n\t" \
- "movl (%%eax), %%eax\n\t" /* target->%eax */ \
- VALGRIND_CALL_NOREDIR_EAX \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_5W(lval, orig, arg1,arg2,arg3,arg4,arg5) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[6]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- _argvec[4] = (unsigned long)(arg4); \
- _argvec[5] = (unsigned long)(arg5); \
- "pushl 20(%%eax)\n\t" \
- "pushl 16(%%eax)\n\t" \
- "pushl 12(%%eax)\n\t" \
- "movl (%%eax), %%eax\n\t" /* target->%eax */ \
- VALGRIND_CALL_NOREDIR_EAX \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_6W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[7]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- _argvec[4] = (unsigned long)(arg4); \
- _argvec[5] = (unsigned long)(arg5); \
- _argvec[6] = (unsigned long)(arg6); \
- "pushl 24(%%eax)\n\t" \
- "pushl 20(%%eax)\n\t" \
- "pushl 16(%%eax)\n\t" \
- "pushl 12(%%eax)\n\t" \
- "movl (%%eax), %%eax\n\t" /* target->%eax */ \
- VALGRIND_CALL_NOREDIR_EAX \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_7W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[8]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- _argvec[4] = (unsigned long)(arg4); \
- _argvec[5] = (unsigned long)(arg5); \
- _argvec[6] = (unsigned long)(arg6); \
- _argvec[7] = (unsigned long)(arg7); \
- "pushl 28(%%eax)\n\t" \
- "pushl 24(%%eax)\n\t" \
- "pushl 20(%%eax)\n\t" \
- "pushl 16(%%eax)\n\t" \
- "pushl 12(%%eax)\n\t" \
- "movl (%%eax), %%eax\n\t" /* target->%eax */ \
- VALGRIND_CALL_NOREDIR_EAX \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_8W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[9]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- _argvec[4] = (unsigned long)(arg4); \
- _argvec[5] = (unsigned long)(arg5); \
- _argvec[6] = (unsigned long)(arg6); \
- _argvec[7] = (unsigned long)(arg7); \
- _argvec[8] = (unsigned long)(arg8); \
- "pushl 32(%%eax)\n\t" \
- "pushl 28(%%eax)\n\t" \
- "pushl 24(%%eax)\n\t" \
- "pushl 20(%%eax)\n\t" \
- "pushl 16(%%eax)\n\t" \
- "pushl 12(%%eax)\n\t" \
- "movl (%%eax), %%eax\n\t" /* target->%eax */ \
- VALGRIND_CALL_NOREDIR_EAX \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_9W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[10]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- _argvec[4] = (unsigned long)(arg4); \
- _argvec[5] = (unsigned long)(arg5); \
- _argvec[6] = (unsigned long)(arg6); \
- _argvec[7] = (unsigned long)(arg7); \
- _argvec[8] = (unsigned long)(arg8); \
- _argvec[9] = (unsigned long)(arg9); \
- "pushl 36(%%eax)\n\t" \
- "pushl 32(%%eax)\n\t" \
- "pushl 28(%%eax)\n\t" \
- "pushl 24(%%eax)\n\t" \
- "pushl 20(%%eax)\n\t" \
- "pushl 16(%%eax)\n\t" \
- "pushl 12(%%eax)\n\t" \
- "movl (%%eax), %%eax\n\t" /* target->%eax */ \
- VALGRIND_CALL_NOREDIR_EAX \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_10W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- arg7,arg8,arg9,arg10) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[11]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- _argvec[4] = (unsigned long)(arg4); \
- _argvec[5] = (unsigned long)(arg5); \
- _argvec[6] = (unsigned long)(arg6); \
- _argvec[7] = (unsigned long)(arg7); \
- _argvec[8] = (unsigned long)(arg8); \
- _argvec[9] = (unsigned long)(arg9); \
- _argvec[10] = (unsigned long)(arg10); \
- "pushl 40(%%eax)\n\t" \
- "pushl 36(%%eax)\n\t" \
- "pushl 32(%%eax)\n\t" \
- "pushl 28(%%eax)\n\t" \
- "pushl 24(%%eax)\n\t" \
- "pushl 20(%%eax)\n\t" \
- "pushl 16(%%eax)\n\t" \
- "pushl 12(%%eax)\n\t" \
- "movl (%%eax), %%eax\n\t" /* target->%eax */ \
- VALGRIND_CALL_NOREDIR_EAX \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_11W(lval, orig, arg1,arg2,arg3,arg4,arg5, \
- arg6,arg7,arg8,arg9,arg10, \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[12]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- _argvec[4] = (unsigned long)(arg4); \
- _argvec[5] = (unsigned long)(arg5); \
- _argvec[6] = (unsigned long)(arg6); \
- _argvec[7] = (unsigned long)(arg7); \
- _argvec[8] = (unsigned long)(arg8); \
- _argvec[9] = (unsigned long)(arg9); \
- _argvec[10] = (unsigned long)(arg10); \
- _argvec[11] = (unsigned long)(arg11); \
- "pushl 44(%%eax)\n\t" \
- "pushl 40(%%eax)\n\t" \
- "pushl 36(%%eax)\n\t" \
- "pushl 32(%%eax)\n\t" \
- "pushl 28(%%eax)\n\t" \
- "pushl 24(%%eax)\n\t" \
- "pushl 20(%%eax)\n\t" \
- "pushl 16(%%eax)\n\t" \
- "pushl 12(%%eax)\n\t" \
- "movl (%%eax), %%eax\n\t" /* target->%eax */ \
- VALGRIND_CALL_NOREDIR_EAX \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_12W(lval, orig, arg1,arg2,arg3,arg4,arg5, \
- arg6,arg7,arg8,arg9,arg10, \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[13]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- _argvec[4] = (unsigned long)(arg4); \
- _argvec[5] = (unsigned long)(arg5); \
- _argvec[6] = (unsigned long)(arg6); \
- _argvec[7] = (unsigned long)(arg7); \
- _argvec[8] = (unsigned long)(arg8); \
- _argvec[9] = (unsigned long)(arg9); \
- _argvec[10] = (unsigned long)(arg10); \
- _argvec[11] = (unsigned long)(arg11); \
- _argvec[12] = (unsigned long)(arg12); \
- "pushl 48(%%eax)\n\t" \
- "pushl 44(%%eax)\n\t" \
- "pushl 40(%%eax)\n\t" \
- "pushl 36(%%eax)\n\t" \
- "pushl 32(%%eax)\n\t" \
- "pushl 28(%%eax)\n\t" \
- "pushl 24(%%eax)\n\t" \
- "pushl 20(%%eax)\n\t" \
- "pushl 16(%%eax)\n\t" \
- "pushl 12(%%eax)\n\t" \
- "movl (%%eax), %%eax\n\t" /* target->%eax */ \
- VALGRIND_CALL_NOREDIR_EAX \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#endif /* PLAT_x86_linux */
-/* ------------------------ amd64-linux ------------------------ */
-#if defined(PLAT_amd64_linux)
-/* ARGREGS: rdi rsi rdx rcx r8 r9 (the rest on stack in R-to-L order) */
-/* These regs are trashed by the hidden call. */
-#define __CALLER_SAVED_REGS /*"rax",*/ "rcx", "rdx", "rsi", \
- "rdi", "r8", "r9", "r10", "r11"
-/* These CALL_FN_ macros assume that on amd64-linux, sizeof(unsigned
-/* NB 9 Sept 07. There is a nasty kludge here in all these CALL_FN_
- macros. In order not to trash the stack redzone, we need to drop
- %rsp by 128 before the hidden call, and restore afterwards. The
- nastyness is that it is only by luck that the stack still appears
- to be unwindable during the hidden call - since then the behaviour
- of any routine using this macro does not match what the CFI data
- Why is this important? Imagine that a wrapper has a stack
- allocated local, and passes to the hidden call, a pointer to it.
- Because gcc does not know about the hidden call, it may allocate
- that local in the redzone. Unfortunately the hidden call may then
- trash it before it comes to use it. So we must step clear of the
- redzone, for the duration of the hidden call, to make it safe.
- Probably the same problem afflicts the other redzone-style ABIs too
- (ppc64-linux, ppc32-aix5, ppc64-aix5); but for those, the stack is
- self describing (none of this CFI nonsense) so at least messing
- with the stack pointer doesn't give a danger of non-unwindable
-#define CALL_FN_W_v(lval, orig) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[1]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- "subq $128,%%rsp\n\t" \
- "movq (%%rax), %%rax\n\t" /* target->%rax */ \
- VALGRIND_CALL_NOREDIR_RAX \
- "addq $128,%%rsp\n\t" \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_W(lval, orig, arg1) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[2]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- "subq $128,%%rsp\n\t" \
- "movq 8(%%rax), %%rdi\n\t" \
- "movq (%%rax), %%rax\n\t" /* target->%rax */ \
- VALGRIND_CALL_NOREDIR_RAX \
- "addq $128,%%rsp\n\t" \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_WW(lval, orig, arg1,arg2) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- "subq $128,%%rsp\n\t" \
- "movq 16(%%rax), %%rsi\n\t" \
- "movq 8(%%rax), %%rdi\n\t" \
- "movq (%%rax), %%rax\n\t" /* target->%rax */ \
- VALGRIND_CALL_NOREDIR_RAX \
- "addq $128,%%rsp\n\t" \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_WWW(lval, orig, arg1,arg2,arg3) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[4]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- "subq $128,%%rsp\n\t" \
- "movq 24(%%rax), %%rdx\n\t" \
- "movq 16(%%rax), %%rsi\n\t" \
- "movq 8(%%rax), %%rdi\n\t" \
- "movq (%%rax), %%rax\n\t" /* target->%rax */ \
- VALGRIND_CALL_NOREDIR_RAX \
- "addq $128,%%rsp\n\t" \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_WWWW(lval, orig, arg1,arg2,arg3,arg4) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[5]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- _argvec[4] = (unsigned long)(arg4); \
- "subq $128,%%rsp\n\t" \
- "movq 32(%%rax), %%rcx\n\t" \
- "movq 24(%%rax), %%rdx\n\t" \
- "movq 16(%%rax), %%rsi\n\t" \
- "movq 8(%%rax), %%rdi\n\t" \
- "movq (%%rax), %%rax\n\t" /* target->%rax */ \
- VALGRIND_CALL_NOREDIR_RAX \
- "addq $128,%%rsp\n\t" \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_5W(lval, orig, arg1,arg2,arg3,arg4,arg5) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[6]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- _argvec[4] = (unsigned long)(arg4); \
- _argvec[5] = (unsigned long)(arg5); \
- "subq $128,%%rsp\n\t" \
- "movq 40(%%rax), %%r8\n\t" \
- "movq 32(%%rax), %%rcx\n\t" \
- "movq 24(%%rax), %%rdx\n\t" \
- "movq 16(%%rax), %%rsi\n\t" \
- "movq 8(%%rax), %%rdi\n\t" \
- "movq (%%rax), %%rax\n\t" /* target->%rax */ \
- VALGRIND_CALL_NOREDIR_RAX \
- "addq $128,%%rsp\n\t" \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_6W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[7]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- _argvec[4] = (unsigned long)(arg4); \
- _argvec[5] = (unsigned long)(arg5); \
- _argvec[6] = (unsigned long)(arg6); \
- "subq $128,%%rsp\n\t" \
- "movq 48(%%rax), %%r9\n\t" \
- "movq 40(%%rax), %%r8\n\t" \
- "movq 32(%%rax), %%rcx\n\t" \
- "movq 24(%%rax), %%rdx\n\t" \
- "movq 16(%%rax), %%rsi\n\t" \
- "movq 8(%%rax), %%rdi\n\t" \
- "movq (%%rax), %%rax\n\t" /* target->%rax */ \
- "addq $128,%%rsp\n\t" \
- VALGRIND_CALL_NOREDIR_RAX \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_7W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[8]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- _argvec[4] = (unsigned long)(arg4); \
- _argvec[5] = (unsigned long)(arg5); \
- _argvec[6] = (unsigned long)(arg6); \
- _argvec[7] = (unsigned long)(arg7); \
- "subq $128,%%rsp\n\t" \
- "pushq 56(%%rax)\n\t" \
- "movq 48(%%rax), %%r9\n\t" \
- "movq 40(%%rax), %%r8\n\t" \
- "movq 32(%%rax), %%rcx\n\t" \
- "movq 24(%%rax), %%rdx\n\t" \
- "movq 16(%%rax), %%rsi\n\t" \
- "movq 8(%%rax), %%rdi\n\t" \
- "movq (%%rax), %%rax\n\t" /* target->%rax */ \
- VALGRIND_CALL_NOREDIR_RAX \
- "addq $128,%%rsp\n\t" \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_8W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[9]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- _argvec[4] = (unsigned long)(arg4); \
- _argvec[5] = (unsigned long)(arg5); \
- _argvec[6] = (unsigned long)(arg6); \
- _argvec[7] = (unsigned long)(arg7); \
- _argvec[8] = (unsigned long)(arg8); \
- "subq $128,%%rsp\n\t" \
- "pushq 64(%%rax)\n\t" \
- "pushq 56(%%rax)\n\t" \
- "movq 48(%%rax), %%r9\n\t" \
- "movq 40(%%rax), %%r8\n\t" \
- "movq 32(%%rax), %%rcx\n\t" \
- "movq 24(%%rax), %%rdx\n\t" \
- "movq 16(%%rax), %%rsi\n\t" \
- "movq 8(%%rax), %%rdi\n\t" \
- "movq (%%rax), %%rax\n\t" /* target->%rax */ \
- VALGRIND_CALL_NOREDIR_RAX \
- "addq $128,%%rsp\n\t" \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_9W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[10]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- _argvec[4] = (unsigned long)(arg4); \
- _argvec[5] = (unsigned long)(arg5); \
- _argvec[6] = (unsigned long)(arg6); \
- _argvec[7] = (unsigned long)(arg7); \
- _argvec[8] = (unsigned long)(arg8); \
- _argvec[9] = (unsigned long)(arg9); \
- "subq $128,%%rsp\n\t" \
- "pushq 72(%%rax)\n\t" \
- "pushq 64(%%rax)\n\t" \
- "pushq 56(%%rax)\n\t" \
- "movq 48(%%rax), %%r9\n\t" \
- "movq 40(%%rax), %%r8\n\t" \
- "movq 32(%%rax), %%rcx\n\t" \
- "movq 24(%%rax), %%rdx\n\t" \
- "movq 16(%%rax), %%rsi\n\t" \
- "movq 8(%%rax), %%rdi\n\t" \
- "movq (%%rax), %%rax\n\t" /* target->%rax */ \
- VALGRIND_CALL_NOREDIR_RAX \
- "addq $128,%%rsp\n\t" \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_10W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- arg7,arg8,arg9,arg10) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[11]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- _argvec[4] = (unsigned long)(arg4); \
- _argvec[5] = (unsigned long)(arg5); \
- _argvec[6] = (unsigned long)(arg6); \
- _argvec[7] = (unsigned long)(arg7); \
- _argvec[8] = (unsigned long)(arg8); \
- _argvec[9] = (unsigned long)(arg9); \
- _argvec[10] = (unsigned long)(arg10); \
- "subq $128,%%rsp\n\t" \
- "pushq 80(%%rax)\n\t" \
- "pushq 72(%%rax)\n\t" \
- "pushq 64(%%rax)\n\t" \
- "pushq 56(%%rax)\n\t" \
- "movq 48(%%rax), %%r9\n\t" \
- "movq 40(%%rax), %%r8\n\t" \
- "movq 32(%%rax), %%rcx\n\t" \
- "movq 24(%%rax), %%rdx\n\t" \
- "movq 16(%%rax), %%rsi\n\t" \
- "movq 8(%%rax), %%rdi\n\t" \
- "movq (%%rax), %%rax\n\t" /* target->%rax */ \
- VALGRIND_CALL_NOREDIR_RAX \
- "addq $128,%%rsp\n\t" \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_11W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- arg7,arg8,arg9,arg10,arg11) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[12]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- _argvec[4] = (unsigned long)(arg4); \
- _argvec[5] = (unsigned long)(arg5); \
- _argvec[6] = (unsigned long)(arg6); \
- _argvec[7] = (unsigned long)(arg7); \
- _argvec[8] = (unsigned long)(arg8); \
- _argvec[9] = (unsigned long)(arg9); \
- _argvec[10] = (unsigned long)(arg10); \
- _argvec[11] = (unsigned long)(arg11); \
- "subq $128,%%rsp\n\t" \
- "pushq 88(%%rax)\n\t" \
- "pushq 80(%%rax)\n\t" \
- "pushq 72(%%rax)\n\t" \
- "pushq 64(%%rax)\n\t" \
- "pushq 56(%%rax)\n\t" \
- "movq 48(%%rax), %%r9\n\t" \
- "movq 40(%%rax), %%r8\n\t" \
- "movq 32(%%rax), %%rcx\n\t" \
- "movq 24(%%rax), %%rdx\n\t" \
- "movq 16(%%rax), %%rsi\n\t" \
- "movq 8(%%rax), %%rdi\n\t" \
- "movq (%%rax), %%rax\n\t" /* target->%rax */ \
- VALGRIND_CALL_NOREDIR_RAX \
- "addq $128,%%rsp\n\t" \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_12W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- arg7,arg8,arg9,arg10,arg11,arg12) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[13]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- _argvec[4] = (unsigned long)(arg4); \
- _argvec[5] = (unsigned long)(arg5); \
- _argvec[6] = (unsigned long)(arg6); \
- _argvec[7] = (unsigned long)(arg7); \
- _argvec[8] = (unsigned long)(arg8); \
- _argvec[9] = (unsigned long)(arg9); \
- _argvec[10] = (unsigned long)(arg10); \
- _argvec[11] = (unsigned long)(arg11); \
- _argvec[12] = (unsigned long)(arg12); \
- "subq $128,%%rsp\n\t" \
- "pushq 96(%%rax)\n\t" \
- "pushq 88(%%rax)\n\t" \
- "pushq 80(%%rax)\n\t" \
- "pushq 72(%%rax)\n\t" \
- "pushq 64(%%rax)\n\t" \
- "pushq 56(%%rax)\n\t" \
- "movq 48(%%rax), %%r9\n\t" \
- "movq 40(%%rax), %%r8\n\t" \
- "movq 32(%%rax), %%rcx\n\t" \
- "movq 24(%%rax), %%rdx\n\t" \
- "movq 16(%%rax), %%rsi\n\t" \
- "movq 8(%%rax), %%rdi\n\t" \
- "movq (%%rax), %%rax\n\t" /* target->%rax */ \
- VALGRIND_CALL_NOREDIR_RAX \
- "addq $128,%%rsp\n\t" \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#endif /* PLAT_amd64_linux */
-/* ------------------------ ppc32-linux ------------------------ */
-#if defined(PLAT_ppc32_linux)
-/* This is useful for finding out about the on-stack stuff:
- extern int f9 ( int,int,int,int,int,int,int,int,int );
- extern int f10 ( int,int,int,int,int,int,int,int,int,int );
- extern int f11 ( int,int,int,int,int,int,int,int,int,int,int );
- extern int f12 ( int,int,int,int,int,int,int,int,int,int,int,int );
- return f9(11,22,33,44,55,66,77,88,99);
- return f10(11,22,33,44,55,66,77,88,99,110);
- return f11(11,22,33,44,55,66,77,88,99,110,121);
- return f12(11,22,33,44,55,66,77,88,99,110,121,132);
-/* ARGREGS: r3 r4 r5 r6 r7 r8 r9 r10 (the rest on stack somewhere) */
-/* These regs are trashed by the hidden call. */
-#define __CALLER_SAVED_REGS \
- "cr0", "cr1", "cr2", "cr3", "cr4", "cr5", "cr6", "cr7", \
- "r0", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", \
-/* These CALL_FN_ macros assume that on ppc32-linux,
- sizeof(unsigned long) == 4. */
-#define CALL_FN_W_v(lval, orig) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[1]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- "lwz 11,0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_W(lval, orig, arg1) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[2]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)arg1; \
- "lwz 3,4(11)\n\t" /* arg1->r3 */ \
- "lwz 11,0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_WW(lval, orig, arg1,arg2) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)arg1; \
- _argvec[2] = (unsigned long)arg2; \
- "lwz 3,4(11)\n\t" /* arg1->r3 */ \
- "lwz 11,0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_WWW(lval, orig, arg1,arg2,arg3) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[4]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)arg1; \
- _argvec[2] = (unsigned long)arg2; \
- _argvec[3] = (unsigned long)arg3; \
- "lwz 3,4(11)\n\t" /* arg1->r3 */ \
- "lwz 11,0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_WWWW(lval, orig, arg1,arg2,arg3,arg4) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[5]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)arg1; \
- _argvec[2] = (unsigned long)arg2; \
- _argvec[3] = (unsigned long)arg3; \
- _argvec[4] = (unsigned long)arg4; \
- "lwz 3,4(11)\n\t" /* arg1->r3 */ \
- "lwz 6,16(11)\n\t" /* arg4->r6 */ \
- "lwz 11,0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_5W(lval, orig, arg1,arg2,arg3,arg4,arg5) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[6]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)arg1; \
- _argvec[2] = (unsigned long)arg2; \
- _argvec[3] = (unsigned long)arg3; \
- _argvec[4] = (unsigned long)arg4; \
- _argvec[5] = (unsigned long)arg5; \
- "lwz 3,4(11)\n\t" /* arg1->r3 */ \
- "lwz 6,16(11)\n\t" /* arg4->r6 */ \
- "lwz 11,0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_6W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[7]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)arg1; \
- _argvec[2] = (unsigned long)arg2; \
- _argvec[3] = (unsigned long)arg3; \
- _argvec[4] = (unsigned long)arg4; \
- _argvec[5] = (unsigned long)arg5; \
- _argvec[6] = (unsigned long)arg6; \
- "lwz 3,4(11)\n\t" /* arg1->r3 */ \
- "lwz 6,16(11)\n\t" /* arg4->r6 */ \
- "lwz 11,0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_7W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[8]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)arg1; \
- _argvec[2] = (unsigned long)arg2; \
- _argvec[3] = (unsigned long)arg3; \
- _argvec[4] = (unsigned long)arg4; \
- _argvec[5] = (unsigned long)arg5; \
- _argvec[6] = (unsigned long)arg6; \
- _argvec[7] = (unsigned long)arg7; \
- "lwz 3,4(11)\n\t" /* arg1->r3 */ \
- "lwz 6,16(11)\n\t" /* arg4->r6 */ \
- "lwz 11,0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_8W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[9]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)arg1; \
- _argvec[2] = (unsigned long)arg2; \
- _argvec[3] = (unsigned long)arg3; \
- _argvec[4] = (unsigned long)arg4; \
- _argvec[5] = (unsigned long)arg5; \
- _argvec[6] = (unsigned long)arg6; \
- _argvec[7] = (unsigned long)arg7; \
- _argvec[8] = (unsigned long)arg8; \
- "lwz 3,4(11)\n\t" /* arg1->r3 */ \
- "lwz 6,16(11)\n\t" /* arg4->r6 */ \
- "lwz 10,32(11)\n\t" /* arg8->r10 */ \
- "lwz 11,0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_9W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[10]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)arg1; \
- _argvec[2] = (unsigned long)arg2; \
- _argvec[3] = (unsigned long)arg3; \
- _argvec[4] = (unsigned long)arg4; \
- _argvec[5] = (unsigned long)arg5; \
- _argvec[6] = (unsigned long)arg6; \
- _argvec[7] = (unsigned long)arg7; \
- _argvec[8] = (unsigned long)arg8; \
- _argvec[9] = (unsigned long)arg9; \
- "lwz 3,4(11)\n\t" /* arg1->r3 */ \
- "lwz 6,16(11)\n\t" /* arg4->r6 */ \
- "lwz 10,32(11)\n\t" /* arg8->r10 */ \
- "lwz 11,0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_10W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- arg7,arg8,arg9,arg10) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[11]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)arg1; \
- _argvec[2] = (unsigned long)arg2; \
- _argvec[3] = (unsigned long)arg3; \
- _argvec[4] = (unsigned long)arg4; \
- _argvec[5] = (unsigned long)arg5; \
- _argvec[6] = (unsigned long)arg6; \
- _argvec[7] = (unsigned long)arg7; \
- _argvec[8] = (unsigned long)arg8; \
- _argvec[9] = (unsigned long)arg9; \
- _argvec[10] = (unsigned long)arg10; \
- "lwz 3,4(11)\n\t" /* arg1->r3 */ \
- "lwz 6,16(11)\n\t" /* arg4->r6 */ \
- "lwz 10,32(11)\n\t" /* arg8->r10 */ \
- "lwz 11,0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_11W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- arg7,arg8,arg9,arg10,arg11) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[12]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)arg1; \
- _argvec[2] = (unsigned long)arg2; \
- _argvec[3] = (unsigned long)arg3; \
- _argvec[4] = (unsigned long)arg4; \
- _argvec[5] = (unsigned long)arg5; \
- _argvec[6] = (unsigned long)arg6; \
- _argvec[7] = (unsigned long)arg7; \
- _argvec[8] = (unsigned long)arg8; \
- _argvec[9] = (unsigned long)arg9; \
- _argvec[10] = (unsigned long)arg10; \
- _argvec[11] = (unsigned long)arg11; \
- "lwz 3,4(11)\n\t" /* arg1->r3 */ \
- "lwz 6,16(11)\n\t" /* arg4->r6 */ \
- "lwz 10,32(11)\n\t" /* arg8->r10 */ \
- "lwz 11,0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_12W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- arg7,arg8,arg9,arg10,arg11,arg12) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[13]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)arg1; \
- _argvec[2] = (unsigned long)arg2; \
- _argvec[3] = (unsigned long)arg3; \
- _argvec[4] = (unsigned long)arg4; \
- _argvec[5] = (unsigned long)arg5; \
- _argvec[6] = (unsigned long)arg6; \
- _argvec[7] = (unsigned long)arg7; \
- _argvec[8] = (unsigned long)arg8; \
- _argvec[9] = (unsigned long)arg9; \
- _argvec[10] = (unsigned long)arg10; \
- _argvec[11] = (unsigned long)arg11; \
- _argvec[12] = (unsigned long)arg12; \
- "lwz 3,4(11)\n\t" /* arg1->r3 */ \
- "lwz 6,16(11)\n\t" /* arg4->r6 */ \
- "lwz 10,32(11)\n\t" /* arg8->r10 */ \
- "lwz 11,0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#endif /* PLAT_ppc32_linux */
-/* ------------------------ ppc64-linux ------------------------ */
-#if defined(PLAT_ppc64_linux)
-/* ARGREGS: r3 r4 r5 r6 r7 r8 r9 r10 (the rest on stack somewhere) */
-/* These regs are trashed by the hidden call. */
-#define __CALLER_SAVED_REGS \
- "cr0", "cr1", "cr2", "cr3", "cr4", "cr5", "cr6", "cr7", \
- "r0", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", \
-/* These CALL_FN_ macros assume that on ppc64-linux, sizeof(unsigned
-#define CALL_FN_W_v(lval, orig) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+0]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)" /* restore tocptr */ \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_W(lval, orig, arg1) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+1]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- "ld 3, 8(11)\n\t" /* arg1->r3 */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)" /* restore tocptr */ \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_WW(lval, orig, arg1,arg2) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+2]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- "ld 3, 8(11)\n\t" /* arg1->r3 */ \
- "ld 4, 16(11)\n\t" /* arg2->r4 */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)" /* restore tocptr */ \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_WWW(lval, orig, arg1,arg2,arg3) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+3]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- "ld 3, 8(11)\n\t" /* arg1->r3 */ \
- "ld 4, 16(11)\n\t" /* arg2->r4 */ \
- "ld 5, 24(11)\n\t" /* arg3->r5 */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)" /* restore tocptr */ \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_WWWW(lval, orig, arg1,arg2,arg3,arg4) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+4]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- "ld 3, 8(11)\n\t" /* arg1->r3 */ \
- "ld 4, 16(11)\n\t" /* arg2->r4 */ \
- "ld 5, 24(11)\n\t" /* arg3->r5 */ \
- "ld 6, 32(11)\n\t" /* arg4->r6 */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)" /* restore tocptr */ \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_5W(lval, orig, arg1,arg2,arg3,arg4,arg5) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+5]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- _argvec[2+5] = (unsigned long)arg5; \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- "ld 3, 8(11)\n\t" /* arg1->r3 */ \
- "ld 4, 16(11)\n\t" /* arg2->r4 */ \
- "ld 5, 24(11)\n\t" /* arg3->r5 */ \
- "ld 6, 32(11)\n\t" /* arg4->r6 */ \
- "ld 7, 40(11)\n\t" /* arg5->r7 */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)" /* restore tocptr */ \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_6W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+6]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- _argvec[2+5] = (unsigned long)arg5; \
- _argvec[2+6] = (unsigned long)arg6; \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- "ld 3, 8(11)\n\t" /* arg1->r3 */ \
- "ld 4, 16(11)\n\t" /* arg2->r4 */ \
- "ld 5, 24(11)\n\t" /* arg3->r5 */ \
- "ld 6, 32(11)\n\t" /* arg4->r6 */ \
- "ld 7, 40(11)\n\t" /* arg5->r7 */ \
- "ld 8, 48(11)\n\t" /* arg6->r8 */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)" /* restore tocptr */ \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_7W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+7]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- _argvec[2+5] = (unsigned long)arg5; \
- _argvec[2+6] = (unsigned long)arg6; \
- _argvec[2+7] = (unsigned long)arg7; \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- "ld 3, 8(11)\n\t" /* arg1->r3 */ \
- "ld 4, 16(11)\n\t" /* arg2->r4 */ \
- "ld 5, 24(11)\n\t" /* arg3->r5 */ \
- "ld 6, 32(11)\n\t" /* arg4->r6 */ \
- "ld 7, 40(11)\n\t" /* arg5->r7 */ \
- "ld 8, 48(11)\n\t" /* arg6->r8 */ \
- "ld 9, 56(11)\n\t" /* arg7->r9 */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)" /* restore tocptr */ \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_8W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+8]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- _argvec[2+5] = (unsigned long)arg5; \
- _argvec[2+6] = (unsigned long)arg6; \
- _argvec[2+7] = (unsigned long)arg7; \
- _argvec[2+8] = (unsigned long)arg8; \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- "ld 3, 8(11)\n\t" /* arg1->r3 */ \
- "ld 4, 16(11)\n\t" /* arg2->r4 */ \
- "ld 5, 24(11)\n\t" /* arg3->r5 */ \
- "ld 6, 32(11)\n\t" /* arg4->r6 */ \
- "ld 7, 40(11)\n\t" /* arg5->r7 */ \
- "ld 8, 48(11)\n\t" /* arg6->r8 */ \
- "ld 9, 56(11)\n\t" /* arg7->r9 */ \
- "ld 10, 64(11)\n\t" /* arg8->r10 */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)" /* restore tocptr */ \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_9W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+9]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- _argvec[2+5] = (unsigned long)arg5; \
- _argvec[2+6] = (unsigned long)arg6; \
- _argvec[2+7] = (unsigned long)arg7; \
- _argvec[2+8] = (unsigned long)arg8; \
- _argvec[2+9] = (unsigned long)arg9; \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- "addi 1,1,-128\n\t" /* expand stack frame */ \
- "ld 3, 8(11)\n\t" /* arg1->r3 */ \
- "ld 4, 16(11)\n\t" /* arg2->r4 */ \
- "ld 5, 24(11)\n\t" /* arg3->r5 */ \
- "ld 6, 32(11)\n\t" /* arg4->r6 */ \
- "ld 7, 40(11)\n\t" /* arg5->r7 */ \
- "ld 8, 48(11)\n\t" /* arg6->r8 */ \
- "ld 9, 56(11)\n\t" /* arg7->r9 */ \
- "ld 10, 64(11)\n\t" /* arg8->r10 */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)\n\t" /* restore tocptr */ \
- "addi 1,1,128" /* restore frame */ \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_10W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- arg7,arg8,arg9,arg10) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+10]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- _argvec[2+5] = (unsigned long)arg5; \
- _argvec[2+6] = (unsigned long)arg6; \
- _argvec[2+7] = (unsigned long)arg7; \
- _argvec[2+8] = (unsigned long)arg8; \
- _argvec[2+9] = (unsigned long)arg9; \
- _argvec[2+10] = (unsigned long)arg10; \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- "addi 1,1,-128\n\t" /* expand stack frame */ \
- "ld 3, 8(11)\n\t" /* arg1->r3 */ \
- "ld 4, 16(11)\n\t" /* arg2->r4 */ \
- "ld 5, 24(11)\n\t" /* arg3->r5 */ \
- "ld 6, 32(11)\n\t" /* arg4->r6 */ \
- "ld 7, 40(11)\n\t" /* arg5->r7 */ \
- "ld 8, 48(11)\n\t" /* arg6->r8 */ \
- "ld 9, 56(11)\n\t" /* arg7->r9 */ \
- "ld 10, 64(11)\n\t" /* arg8->r10 */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)\n\t" /* restore tocptr */ \
- "addi 1,1,128" /* restore frame */ \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_11W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- arg7,arg8,arg9,arg10,arg11) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+11]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- _argvec[2+5] = (unsigned long)arg5; \
- _argvec[2+6] = (unsigned long)arg6; \
- _argvec[2+7] = (unsigned long)arg7; \
- _argvec[2+8] = (unsigned long)arg8; \
- _argvec[2+9] = (unsigned long)arg9; \
- _argvec[2+10] = (unsigned long)arg10; \
- _argvec[2+11] = (unsigned long)arg11; \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- "addi 1,1,-144\n\t" /* expand stack frame */ \
- "ld 3, 8(11)\n\t" /* arg1->r3 */ \
- "ld 4, 16(11)\n\t" /* arg2->r4 */ \
- "ld 5, 24(11)\n\t" /* arg3->r5 */ \
- "ld 6, 32(11)\n\t" /* arg4->r6 */ \
- "ld 7, 40(11)\n\t" /* arg5->r7 */ \
- "ld 8, 48(11)\n\t" /* arg6->r8 */ \
- "ld 9, 56(11)\n\t" /* arg7->r9 */ \
- "ld 10, 64(11)\n\t" /* arg8->r10 */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)\n\t" /* restore tocptr */ \
- "addi 1,1,144" /* restore frame */ \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_12W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- arg7,arg8,arg9,arg10,arg11,arg12) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+12]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- _argvec[2+5] = (unsigned long)arg5; \
- _argvec[2+6] = (unsigned long)arg6; \
- _argvec[2+7] = (unsigned long)arg7; \
- _argvec[2+8] = (unsigned long)arg8; \
- _argvec[2+9] = (unsigned long)arg9; \
- _argvec[2+10] = (unsigned long)arg10; \
- _argvec[2+11] = (unsigned long)arg11; \
- _argvec[2+12] = (unsigned long)arg12; \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- "addi 1,1,-144\n\t" /* expand stack frame */ \
- "ld 3, 8(11)\n\t" /* arg1->r3 */ \
- "ld 4, 16(11)\n\t" /* arg2->r4 */ \
- "ld 5, 24(11)\n\t" /* arg3->r5 */ \
- "ld 6, 32(11)\n\t" /* arg4->r6 */ \
- "ld 7, 40(11)\n\t" /* arg5->r7 */ \
- "ld 8, 48(11)\n\t" /* arg6->r8 */ \
- "ld 9, 56(11)\n\t" /* arg7->r9 */ \
- "ld 10, 64(11)\n\t" /* arg8->r10 */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)\n\t" /* restore tocptr */ \
- "addi 1,1,144" /* restore frame */ \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#endif /* PLAT_ppc64_linux */
-/* ------------------------ ppc32-aix5 ------------------------- */
-#if defined(PLAT_ppc32_aix5)
-/* ARGREGS: r3 r4 r5 r6 r7 r8 r9 r10 (the rest on stack somewhere) */
-/* These regs are trashed by the hidden call. */
-#define __CALLER_SAVED_REGS \
- "cr0", "cr1", "cr2", "cr3", "cr4", "cr5", "cr6", "cr7", \
- "r0", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", \
-/* Expand the stack frame, copying enough info that unwinding
- still works. Trashes r3. */
-#define VG_EXPAND_FRAME_BY_trashes_r3(_n_fr) \
- "addi 1,1,-" #_n_fr "\n\t" \
- "lwz 3," #_n_fr "(1)\n\t" \
-#define VG_CONTRACT_FRAME_BY(_n_fr) \
- "addi 1,1," #_n_fr "\n\t"
-/* These CALL_FN_ macros assume that on ppc32-aix5, sizeof(unsigned
-#define CALL_FN_W_v(lval, orig) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+0]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "stw 2,-8(11)\n\t" /* save tocptr */ \
- "lwz 2,-4(11)\n\t" /* use nraddr's tocptr */ \
- "lwz 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "lwz 2,-8(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_W(lval, orig, arg1) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+1]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "stw 2,-8(11)\n\t" /* save tocptr */ \
- "lwz 2,-4(11)\n\t" /* use nraddr's tocptr */ \
- "lwz 3, 4(11)\n\t" /* arg1->r3 */ \
- "lwz 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "lwz 2,-8(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_WW(lval, orig, arg1,arg2) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+2]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "stw 2,-8(11)\n\t" /* save tocptr */ \
- "lwz 2,-4(11)\n\t" /* use nraddr's tocptr */ \
- "lwz 3, 4(11)\n\t" /* arg1->r3 */ \
- "lwz 4, 8(11)\n\t" /* arg2->r4 */ \
- "lwz 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "lwz 2,-8(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_WWW(lval, orig, arg1,arg2,arg3) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+3]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "stw 2,-8(11)\n\t" /* save tocptr */ \
- "lwz 2,-4(11)\n\t" /* use nraddr's tocptr */ \
- "lwz 3, 4(11)\n\t" /* arg1->r3 */ \
- "lwz 4, 8(11)\n\t" /* arg2->r4 */ \
- "lwz 5, 12(11)\n\t" /* arg3->r5 */ \
- "lwz 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "lwz 2,-8(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_WWWW(lval, orig, arg1,arg2,arg3,arg4) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+4]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "stw 2,-8(11)\n\t" /* save tocptr */ \
- "lwz 2,-4(11)\n\t" /* use nraddr's tocptr */ \
- "lwz 3, 4(11)\n\t" /* arg1->r3 */ \
- "lwz 4, 8(11)\n\t" /* arg2->r4 */ \
- "lwz 5, 12(11)\n\t" /* arg3->r5 */ \
- "lwz 6, 16(11)\n\t" /* arg4->r6 */ \
- "lwz 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "lwz 2,-8(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_5W(lval, orig, arg1,arg2,arg3,arg4,arg5) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+5]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- _argvec[2+5] = (unsigned long)arg5; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "stw 2,-8(11)\n\t" /* save tocptr */ \
- "lwz 2,-4(11)\n\t" /* use nraddr's tocptr */ \
- "lwz 3, 4(11)\n\t" /* arg1->r3 */ \
- "lwz 4, 8(11)\n\t" /* arg2->r4 */ \
- "lwz 5, 12(11)\n\t" /* arg3->r5 */ \
- "lwz 6, 16(11)\n\t" /* arg4->r6 */ \
- "lwz 7, 20(11)\n\t" /* arg5->r7 */ \
- "lwz 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "lwz 2,-8(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_6W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+6]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- _argvec[2+5] = (unsigned long)arg5; \
- _argvec[2+6] = (unsigned long)arg6; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "stw 2,-8(11)\n\t" /* save tocptr */ \
- "lwz 2,-4(11)\n\t" /* use nraddr's tocptr */ \
- "lwz 3, 4(11)\n\t" /* arg1->r3 */ \
- "lwz 4, 8(11)\n\t" /* arg2->r4 */ \
- "lwz 5, 12(11)\n\t" /* arg3->r5 */ \
- "lwz 6, 16(11)\n\t" /* arg4->r6 */ \
- "lwz 7, 20(11)\n\t" /* arg5->r7 */ \
- "lwz 8, 24(11)\n\t" /* arg6->r8 */ \
- "lwz 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "lwz 2,-8(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_7W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+7]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- _argvec[2+5] = (unsigned long)arg5; \
- _argvec[2+6] = (unsigned long)arg6; \
- _argvec[2+7] = (unsigned long)arg7; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "stw 2,-8(11)\n\t" /* save tocptr */ \
- "lwz 2,-4(11)\n\t" /* use nraddr's tocptr */ \
- "lwz 3, 4(11)\n\t" /* arg1->r3 */ \
- "lwz 4, 8(11)\n\t" /* arg2->r4 */ \
- "lwz 5, 12(11)\n\t" /* arg3->r5 */ \
- "lwz 6, 16(11)\n\t" /* arg4->r6 */ \
- "lwz 7, 20(11)\n\t" /* arg5->r7 */ \
- "lwz 8, 24(11)\n\t" /* arg6->r8 */ \
- "lwz 9, 28(11)\n\t" /* arg7->r9 */ \
- "lwz 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "lwz 2,-8(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_8W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+8]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- _argvec[2+5] = (unsigned long)arg5; \
- _argvec[2+6] = (unsigned long)arg6; \
- _argvec[2+7] = (unsigned long)arg7; \
- _argvec[2+8] = (unsigned long)arg8; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "stw 2,-8(11)\n\t" /* save tocptr */ \
- "lwz 2,-4(11)\n\t" /* use nraddr's tocptr */ \
- "lwz 3, 4(11)\n\t" /* arg1->r3 */ \
- "lwz 4, 8(11)\n\t" /* arg2->r4 */ \
- "lwz 5, 12(11)\n\t" /* arg3->r5 */ \
- "lwz 6, 16(11)\n\t" /* arg4->r6 */ \
- "lwz 7, 20(11)\n\t" /* arg5->r7 */ \
- "lwz 8, 24(11)\n\t" /* arg6->r8 */ \
- "lwz 9, 28(11)\n\t" /* arg7->r9 */ \
- "lwz 10, 32(11)\n\t" /* arg8->r10 */ \
- "lwz 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "lwz 2,-8(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_9W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+9]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- _argvec[2+5] = (unsigned long)arg5; \
- _argvec[2+6] = (unsigned long)arg6; \
- _argvec[2+7] = (unsigned long)arg7; \
- _argvec[2+8] = (unsigned long)arg8; \
- _argvec[2+9] = (unsigned long)arg9; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "stw 2,-8(11)\n\t" /* save tocptr */ \
- "lwz 2,-4(11)\n\t" /* use nraddr's tocptr */ \
- VG_EXPAND_FRAME_BY_trashes_r3(64) \
- "lwz 3, 4(11)\n\t" /* arg1->r3 */ \
- "lwz 4, 8(11)\n\t" /* arg2->r4 */ \
- "lwz 5, 12(11)\n\t" /* arg3->r5 */ \
- "lwz 6, 16(11)\n\t" /* arg4->r6 */ \
- "lwz 7, 20(11)\n\t" /* arg5->r7 */ \
- "lwz 8, 24(11)\n\t" /* arg6->r8 */ \
- "lwz 9, 28(11)\n\t" /* arg7->r9 */ \
- "lwz 10, 32(11)\n\t" /* arg8->r10 */ \
- "lwz 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "lwz 2,-8(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(64) \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_10W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- arg7,arg8,arg9,arg10) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+10]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- _argvec[2+5] = (unsigned long)arg5; \
- _argvec[2+6] = (unsigned long)arg6; \
- _argvec[2+7] = (unsigned long)arg7; \
- _argvec[2+8] = (unsigned long)arg8; \
- _argvec[2+9] = (unsigned long)arg9; \
- _argvec[2+10] = (unsigned long)arg10; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "stw 2,-8(11)\n\t" /* save tocptr */ \
- "lwz 2,-4(11)\n\t" /* use nraddr's tocptr */ \
- VG_EXPAND_FRAME_BY_trashes_r3(64) \
- "lwz 3, 4(11)\n\t" /* arg1->r3 */ \
- "lwz 4, 8(11)\n\t" /* arg2->r4 */ \
- "lwz 5, 12(11)\n\t" /* arg3->r5 */ \
- "lwz 6, 16(11)\n\t" /* arg4->r6 */ \
- "lwz 7, 20(11)\n\t" /* arg5->r7 */ \
- "lwz 8, 24(11)\n\t" /* arg6->r8 */ \
- "lwz 9, 28(11)\n\t" /* arg7->r9 */ \
- "lwz 10, 32(11)\n\t" /* arg8->r10 */ \
- "lwz 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "lwz 2,-8(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(64) \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_11W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- arg7,arg8,arg9,arg10,arg11) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+11]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- _argvec[2+5] = (unsigned long)arg5; \
- _argvec[2+6] = (unsigned long)arg6; \
- _argvec[2+7] = (unsigned long)arg7; \
- _argvec[2+8] = (unsigned long)arg8; \
- _argvec[2+9] = (unsigned long)arg9; \
- _argvec[2+10] = (unsigned long)arg10; \
- _argvec[2+11] = (unsigned long)arg11; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "stw 2,-8(11)\n\t" /* save tocptr */ \
- "lwz 2,-4(11)\n\t" /* use nraddr's tocptr */ \
- VG_EXPAND_FRAME_BY_trashes_r3(72) \
- "lwz 3, 4(11)\n\t" /* arg1->r3 */ \
- "lwz 4, 8(11)\n\t" /* arg2->r4 */ \
- "lwz 5, 12(11)\n\t" /* arg3->r5 */ \
- "lwz 6, 16(11)\n\t" /* arg4->r6 */ \
- "lwz 7, 20(11)\n\t" /* arg5->r7 */ \
- "lwz 8, 24(11)\n\t" /* arg6->r8 */ \
- "lwz 9, 28(11)\n\t" /* arg7->r9 */ \
- "lwz 10, 32(11)\n\t" /* arg8->r10 */ \
- "lwz 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "lwz 2,-8(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(72) \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_12W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- arg7,arg8,arg9,arg10,arg11,arg12) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+12]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- _argvec[2+5] = (unsigned long)arg5; \
- _argvec[2+6] = (unsigned long)arg6; \
- _argvec[2+7] = (unsigned long)arg7; \
- _argvec[2+8] = (unsigned long)arg8; \
- _argvec[2+9] = (unsigned long)arg9; \
- _argvec[2+10] = (unsigned long)arg10; \
- _argvec[2+11] = (unsigned long)arg11; \
- _argvec[2+12] = (unsigned long)arg12; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "stw 2,-8(11)\n\t" /* save tocptr */ \
- "lwz 2,-4(11)\n\t" /* use nraddr's tocptr */ \
- VG_EXPAND_FRAME_BY_trashes_r3(72) \
- "lwz 3, 4(11)\n\t" /* arg1->r3 */ \
- "lwz 4, 8(11)\n\t" /* arg2->r4 */ \
- "lwz 5, 12(11)\n\t" /* arg3->r5 */ \
- "lwz 6, 16(11)\n\t" /* arg4->r6 */ \
- "lwz 7, 20(11)\n\t" /* arg5->r7 */ \
- "lwz 8, 24(11)\n\t" /* arg6->r8 */ \
- "lwz 9, 28(11)\n\t" /* arg7->r9 */ \
- "lwz 10, 32(11)\n\t" /* arg8->r10 */ \
- "lwz 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "lwz 2,-8(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(72) \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#endif /* PLAT_ppc32_aix5 */
-/* ------------------------ ppc64-aix5 ------------------------- */
-#if defined(PLAT_ppc64_aix5)
-/* ARGREGS: r3 r4 r5 r6 r7 r8 r9 r10 (the rest on stack somewhere) */
-/* These regs are trashed by the hidden call. */
-#define __CALLER_SAVED_REGS \
- "cr0", "cr1", "cr2", "cr3", "cr4", "cr5", "cr6", "cr7", \
- "r0", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", \
-/* Expand the stack frame, copying enough info that unwinding
- still works. Trashes r3. */
-#define VG_EXPAND_FRAME_BY_trashes_r3(_n_fr) \
- "addi 1,1,-" #_n_fr "\n\t" \
- "ld 3," #_n_fr "(1)\n\t" \
-#define VG_CONTRACT_FRAME_BY(_n_fr) \
- "addi 1,1," #_n_fr "\n\t"
-/* These CALL_FN_ macros assume that on ppc64-aix5, sizeof(unsigned
-#define CALL_FN_W_v(lval, orig) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+0]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_W(lval, orig, arg1) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+1]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- "ld 3, 8(11)\n\t" /* arg1->r3 */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_WW(lval, orig, arg1,arg2) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+2]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- "ld 3, 8(11)\n\t" /* arg1->r3 */ \
- "ld 4, 16(11)\n\t" /* arg2->r4 */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_WWW(lval, orig, arg1,arg2,arg3) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+3]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- "ld 3, 8(11)\n\t" /* arg1->r3 */ \
- "ld 4, 16(11)\n\t" /* arg2->r4 */ \
- "ld 5, 24(11)\n\t" /* arg3->r5 */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_WWWW(lval, orig, arg1,arg2,arg3,arg4) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+4]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- "ld 3, 8(11)\n\t" /* arg1->r3 */ \
- "ld 4, 16(11)\n\t" /* arg2->r4 */ \
- "ld 5, 24(11)\n\t" /* arg3->r5 */ \
- "ld 6, 32(11)\n\t" /* arg4->r6 */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_5W(lval, orig, arg1,arg2,arg3,arg4,arg5) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+5]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- _argvec[2+5] = (unsigned long)arg5; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- "ld 3, 8(11)\n\t" /* arg1->r3 */ \
- "ld 4, 16(11)\n\t" /* arg2->r4 */ \
- "ld 5, 24(11)\n\t" /* arg3->r5 */ \
- "ld 6, 32(11)\n\t" /* arg4->r6 */ \
- "ld 7, 40(11)\n\t" /* arg5->r7 */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_6W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+6]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- _argvec[2+5] = (unsigned long)arg5; \
- _argvec[2+6] = (unsigned long)arg6; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- "ld 3, 8(11)\n\t" /* arg1->r3 */ \
- "ld 4, 16(11)\n\t" /* arg2->r4 */ \
- "ld 5, 24(11)\n\t" /* arg3->r5 */ \
- "ld 6, 32(11)\n\t" /* arg4->r6 */ \
- "ld 7, 40(11)\n\t" /* arg5->r7 */ \
- "ld 8, 48(11)\n\t" /* arg6->r8 */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_7W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+7]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- _argvec[2+5] = (unsigned long)arg5; \
- _argvec[2+6] = (unsigned long)arg6; \
- _argvec[2+7] = (unsigned long)arg7; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- "ld 3, 8(11)\n\t" /* arg1->r3 */ \
- "ld 4, 16(11)\n\t" /* arg2->r4 */ \
- "ld 5, 24(11)\n\t" /* arg3->r5 */ \
- "ld 6, 32(11)\n\t" /* arg4->r6 */ \
- "ld 7, 40(11)\n\t" /* arg5->r7 */ \
- "ld 8, 48(11)\n\t" /* arg6->r8 */ \
- "ld 9, 56(11)\n\t" /* arg7->r9 */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_8W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+8]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- _argvec[2+5] = (unsigned long)arg5; \
- _argvec[2+6] = (unsigned long)arg6; \
- _argvec[2+7] = (unsigned long)arg7; \
- _argvec[2+8] = (unsigned long)arg8; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- "ld 3, 8(11)\n\t" /* arg1->r3 */ \
- "ld 4, 16(11)\n\t" /* arg2->r4 */ \
- "ld 5, 24(11)\n\t" /* arg3->r5 */ \
- "ld 6, 32(11)\n\t" /* arg4->r6 */ \
- "ld 7, 40(11)\n\t" /* arg5->r7 */ \
- "ld 8, 48(11)\n\t" /* arg6->r8 */ \
- "ld 9, 56(11)\n\t" /* arg7->r9 */ \
- "ld 10, 64(11)\n\t" /* arg8->r10 */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_9W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+9]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- _argvec[2+5] = (unsigned long)arg5; \
- _argvec[2+6] = (unsigned long)arg6; \
- _argvec[2+7] = (unsigned long)arg7; \
- _argvec[2+8] = (unsigned long)arg8; \
- _argvec[2+9] = (unsigned long)arg9; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- VG_EXPAND_FRAME_BY_trashes_r3(128) \
- "ld 3, 8(11)\n\t" /* arg1->r3 */ \
- "ld 4, 16(11)\n\t" /* arg2->r4 */ \
- "ld 5, 24(11)\n\t" /* arg3->r5 */ \
- "ld 6, 32(11)\n\t" /* arg4->r6 */ \
- "ld 7, 40(11)\n\t" /* arg5->r7 */ \
- "ld 8, 48(11)\n\t" /* arg6->r8 */ \
- "ld 9, 56(11)\n\t" /* arg7->r9 */ \
- "ld 10, 64(11)\n\t" /* arg8->r10 */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(128) \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_10W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- arg7,arg8,arg9,arg10) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+10]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- _argvec[2+5] = (unsigned long)arg5; \
- _argvec[2+6] = (unsigned long)arg6; \
- _argvec[2+7] = (unsigned long)arg7; \
- _argvec[2+8] = (unsigned long)arg8; \
- _argvec[2+9] = (unsigned long)arg9; \
- _argvec[2+10] = (unsigned long)arg10; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- VG_EXPAND_FRAME_BY_trashes_r3(128) \
- "ld 3, 8(11)\n\t" /* arg1->r3 */ \
- "ld 4, 16(11)\n\t" /* arg2->r4 */ \
- "ld 5, 24(11)\n\t" /* arg3->r5 */ \
- "ld 6, 32(11)\n\t" /* arg4->r6 */ \
- "ld 7, 40(11)\n\t" /* arg5->r7 */ \
- "ld 8, 48(11)\n\t" /* arg6->r8 */ \
- "ld 9, 56(11)\n\t" /* arg7->r9 */ \
- "ld 10, 64(11)\n\t" /* arg8->r10 */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(128) \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_11W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- arg7,arg8,arg9,arg10,arg11) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+11]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- _argvec[2+5] = (unsigned long)arg5; \
- _argvec[2+6] = (unsigned long)arg6; \
- _argvec[2+7] = (unsigned long)arg7; \
- _argvec[2+8] = (unsigned long)arg8; \
- _argvec[2+9] = (unsigned long)arg9; \
- _argvec[2+10] = (unsigned long)arg10; \
- _argvec[2+11] = (unsigned long)arg11; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- VG_EXPAND_FRAME_BY_trashes_r3(144) \
- "ld 3, 8(11)\n\t" /* arg1->r3 */ \
- "ld 4, 16(11)\n\t" /* arg2->r4 */ \
- "ld 5, 24(11)\n\t" /* arg3->r5 */ \
- "ld 6, 32(11)\n\t" /* arg4->r6 */ \
- "ld 7, 40(11)\n\t" /* arg5->r7 */ \
- "ld 8, 48(11)\n\t" /* arg6->r8 */ \
- "ld 9, 56(11)\n\t" /* arg7->r9 */ \
- "ld 10, 64(11)\n\t" /* arg8->r10 */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(144) \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#define CALL_FN_W_12W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- arg7,arg8,arg9,arg10,arg11,arg12) \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3+12]; \
- volatile unsigned long _res; \
- /* _argvec[0] holds current r2 across the call */ \
- _argvec[1] = (unsigned long)_orig.r2; \
- _argvec[2] = (unsigned long)_orig.nraddr; \
- _argvec[2+1] = (unsigned long)arg1; \
- _argvec[2+2] = (unsigned long)arg2; \
- _argvec[2+3] = (unsigned long)arg3; \
- _argvec[2+4] = (unsigned long)arg4; \
- _argvec[2+5] = (unsigned long)arg5; \
- _argvec[2+6] = (unsigned long)arg6; \
- _argvec[2+7] = (unsigned long)arg7; \
- _argvec[2+8] = (unsigned long)arg8; \
- _argvec[2+9] = (unsigned long)arg9; \
- _argvec[2+10] = (unsigned long)arg10; \
- _argvec[2+11] = (unsigned long)arg11; \
- _argvec[2+12] = (unsigned long)arg12; \
- VG_EXPAND_FRAME_BY_trashes_r3(512) \
- "std 2,-16(11)\n\t" /* save tocptr */ \
- "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \
- VG_EXPAND_FRAME_BY_trashes_r3(144) \
- "ld 3, 8(11)\n\t" /* arg1->r3 */ \
- "ld 4, 16(11)\n\t" /* arg2->r4 */ \
- "ld 5, 24(11)\n\t" /* arg3->r5 */ \
- "ld 6, 32(11)\n\t" /* arg4->r6 */ \
- "ld 7, 40(11)\n\t" /* arg5->r7 */ \
- "ld 8, 48(11)\n\t" /* arg6->r8 */ \
- "ld 9, 56(11)\n\t" /* arg7->r9 */ \
- "ld 10, 64(11)\n\t" /* arg8->r10 */ \
- "ld 11, 0(11)\n\t" /* target->r11 */ \
- VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \
- "ld 2,-16(11)\n\t" /* restore tocptr */ \
- VG_CONTRACT_FRAME_BY(144) \
- VG_CONTRACT_FRAME_BY(512) \
- : /*out*/ "=r" (_res) \
- : /*in*/ "r" (&_argvec[2]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
- lval = (__typeof__(lval)) _res; \
-#endif /* PLAT_ppc64_aix5 */
-/* ------------------------------------------------------------------ */
-/* ARCHITECTURE INDEPENDENT MACROS for CLIENT REQUESTS. */
-/* ------------------------------------------------------------------ */
-/* Some request codes. There are many more of these, but most are not
- exposed to end-user view. These are the public ones, all of the
- form 0x1000 + small_number.
- Core ones are in the range 0x00000000--0x0000ffff. The non-public
-/* These macros are used by tools -- they must be public, but don't
- embed them into other programs. */
-#define VG_USERREQ_TOOL_BASE(a,b) \
- ((unsigned int)(((a)&0xff) << 24 | ((b)&0xff) << 16))
-#define VG_IS_TOOL_USERREQ(a, b, v) \
- (VG_USERREQ_TOOL_BASE(a,b) == ((v) & 0xffff0000))
-/* !! ABIWARNING !! ABIWARNING !! ABIWARNING !! ABIWARNING !!
- This enum comprises an ABI exported by Valgrind to programs
- which use client requests. DO NOT CHANGE THE ORDER OF THESE
- ENTRIES, NOR DELETE ANY -- add new ones at the end. */
- enum { VG_USERREQ__RUNNING_ON_VALGRIND = 0x1001,
- VG_USERREQ__DISCARD_TRANSLATIONS = 0x1002,
- /* These allow any function to be called from the simulated
- CPU but run on the real CPU. Nb: the first arg passed to
- the function is always the ThreadId of the running
- thread! So CLIENT_CALL0 actually requires a 1 arg
- VG_USERREQ__CLIENT_CALL0 = 0x1101,
- VG_USERREQ__CLIENT_CALL1 = 0x1102,
- VG_USERREQ__CLIENT_CALL2 = 0x1103,
- VG_USERREQ__CLIENT_CALL3 = 0x1104,
- /* Can be useful in regression testing suites -- eg. can
- send Valgrind's output to /dev/null and still count
- VG_USERREQ__COUNT_ERRORS = 0x1201,
- /* These are useful and can be interpreted by any tool that
- tracks malloc() et al, by using vg_replace_malloc.c. */
- VG_USERREQ__MALLOCLIKE_BLOCK = 0x1301,
- VG_USERREQ__FREELIKE_BLOCK = 0x1302,
- /* Memory pool support. */
- VG_USERREQ__CREATE_MEMPOOL = 0x1303,
- VG_USERREQ__DESTROY_MEMPOOL = 0x1304,
- VG_USERREQ__MEMPOOL_ALLOC = 0x1305,
- VG_USERREQ__MEMPOOL_FREE = 0x1306,
- VG_USERREQ__MEMPOOL_TRIM = 0x1307,
- VG_USERREQ__MOVE_MEMPOOL = 0x1308,
- VG_USERREQ__MEMPOOL_CHANGE = 0x1309,
- VG_USERREQ__MEMPOOL_EXISTS = 0x130a,
- /* Allow printfs to valgrind log. */
- VG_USERREQ__PRINTF = 0x1401,
- VG_USERREQ__PRINTF_BACKTRACE = 0x1402,
- VG_USERREQ__STACK_REGISTER = 0x1501,
- VG_USERREQ__STACK_DEREGISTER = 0x1502,
- VG_USERREQ__STACK_CHANGE = 0x1503
-# define __extension__ /* */
-/* Returns the number of Valgrinds this code is running under. That
- is, 0 if running natively, 1 if running under Valgrind, 2 if
- running under Valgrind which is running under another Valgrind,
-#define RUNNING_ON_VALGRIND __extension__ \
- ({unsigned int _qzz_res; \
- VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0 /* if not */, \
- VG_USERREQ__RUNNING_ON_VALGRIND, \
-/* Discard translation of code in the range [_qzz_addr .. _qzz_addr +
- _qzz_len - 1]. Useful if you are debugging a JITter or some such,
- since it provides a way to make sure valgrind will retranslate the
- invalidated area. Returns no value. */
-#define VALGRIND_DISCARD_TRANSLATIONS(_qzz_addr,_qzz_len) \
- {unsigned int _qzz_res; \
- VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
- VG_USERREQ__DISCARD_TRANSLATIONS, \
- _qzz_addr, _qzz_len, 0, 0, 0); \
-/* These requests are for getting Valgrind itself to print something.
- Possibly with a backtrace. This is a really ugly hack. */
-# define VALGRIND_PRINTF(...)
-# define VALGRIND_PRINTF_BACKTRACE(...)
-/* Modern GCC will optimize the static routine out if unused,
- and unused attribute will shut down warnings about it. */
-static int VALGRIND_PRINTF(const char *format, ...)
- __attribute__((format(__printf__, 1, 2), __unused__));
-VALGRIND_PRINTF(const char *format, ...)
- unsigned long _qzz_res;
- va_start(vargs, format);
- VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, VG_USERREQ__PRINTF,
- (unsigned long)format, (unsigned long)vargs,
-static int VALGRIND_PRINTF_BACKTRACE(const char *format, ...)
- __attribute__((format(__printf__, 1, 2), __unused__));
-VALGRIND_PRINTF_BACKTRACE(const char *format, ...)
- unsigned long _qzz_res;
- va_start(vargs, format);
- VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, VG_USERREQ__PRINTF_BACKTRACE,
- (unsigned long)format, (unsigned long)vargs,
-/* These requests allow control to move from the simulated CPU to the
- real CPU, calling an arbitary function.
- Note that the current ThreadId is inserted as the first argument.
- VALGRIND_NON_SIMD_CALL2(f, arg1, arg2)
- requires f to have this signature:
- Word f(Word tid, Word arg1, Word arg2)
- where "Word" is a word-sized type.
- Note that these client requests are not entirely reliable. For example,
- if you call a function with them that subsequently calls printf(),
- there's a high chance Valgrind will crash. Generally, your prospects of
- these working are made higher if the called function does not refer to
- any global variables, and does not refer to any libc or other functions
- (printf et al). Any kind of entanglement with libc or dynamic linking is
- likely to have a bad outcome, for tricky reasons which we've grappled
- with a lot in the past.
-#define VALGRIND_NON_SIMD_CALL0(_qyy_fn) \
- ({unsigned long _qyy_res; \
- VALGRIND_DO_CLIENT_REQUEST(_qyy_res, 0 /* default return */, \
- VG_USERREQ__CLIENT_CALL0, \
-#define VALGRIND_NON_SIMD_CALL1(_qyy_fn, _qyy_arg1) \
- ({unsigned long _qyy_res; \
- VALGRIND_DO_CLIENT_REQUEST(_qyy_res, 0 /* default return */, \
- VG_USERREQ__CLIENT_CALL1, \
-#define VALGRIND_NON_SIMD_CALL2(_qyy_fn, _qyy_arg1, _qyy_arg2) \
- ({unsigned long _qyy_res; \
- VALGRIND_DO_CLIENT_REQUEST(_qyy_res, 0 /* default return */, \
- VG_USERREQ__CLIENT_CALL2, \
- _qyy_arg1, _qyy_arg2, 0, 0); \
-#define VALGRIND_NON_SIMD_CALL3(_qyy_fn, _qyy_arg1, _qyy_arg2, _qyy_arg3) \
- ({unsigned long _qyy_res; \
- VALGRIND_DO_CLIENT_REQUEST(_qyy_res, 0 /* default return */, \
- VG_USERREQ__CLIENT_CALL3, \
- _qyy_arg1, _qyy_arg2, \
-/* Counts the number of errors that have been recorded by a tool. Nb:
- the tool must record the errors with VG_(maybe_record_error)() or
- VG_(unique_error)() for them to be counted. */
-#define VALGRIND_COUNT_ERRORS \
- ({unsigned int _qyy_res; \
- VALGRIND_DO_CLIENT_REQUEST(_qyy_res, 0 /* default return */, \
- VG_USERREQ__COUNT_ERRORS, \
-/* Mark a block of memory as having been allocated by a malloc()-like
- function. `addr' is the start of the usable block (ie. after any
- redzone) `rzB' is redzone size if the allocator can apply redzones;
- use '0' if not. Adding redzones makes it more likely Valgrind will spot
- block overruns. `is_zeroed' indicates if the memory is zeroed, as it is
- for calloc(). Put it immediately after the point where a block is
- If you're using Memcheck: If you're allocating memory via superblocks,
- and then handing out small chunks of each superblock, if you don't have
- redzones on your small blocks, it's worth marking the superblock with
- VALGRIND_MAKE_MEM_NOACCESS when it's created, so that block overruns are
- detected. But if you can put redzones on, it's probably better to not do
- this, so that messages for small overruns are described in terms of the
- small block rather than the superblock (but if you have a big overrun
- that skips over a redzone, you could miss an error this way). See
- memcheck/tests/custom_alloc.c for an example.
- WARNING: if your allocator uses malloc() or 'new' to allocate
- superblocks, rather than mmap() or brk(), this will not work properly --
- you'll likely get assertion failures during leak detection. This is
- because Valgrind doesn't like seeing overlapping heap blocks. Sorry.
- Nb: block must be freed via a free()-like function specified
- with VALGRIND_FREELIKE_BLOCK or mismatch errors will occur. */
-#define VALGRIND_MALLOCLIKE_BLOCK(addr, sizeB, rzB, is_zeroed) \
- {unsigned int _qzz_res; \
- VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
- VG_USERREQ__MALLOCLIKE_BLOCK, \
- addr, sizeB, rzB, is_zeroed, 0); \
-/* Mark a block of memory as having been freed by a free()-like function.
- `rzB' is redzone size; it must match that given to
- VALGRIND_MALLOCLIKE_BLOCK. Memory not freed will be detected by the leak
- checker. Put it immediately after the point where the block is freed. */
-#define VALGRIND_FREELIKE_BLOCK(addr, rzB) \
- {unsigned int _qzz_res; \
- VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
- VG_USERREQ__FREELIKE_BLOCK, \
-/* Create a memory pool. */
-#define VALGRIND_CREATE_MEMPOOL(pool, rzB, is_zeroed) \
- {unsigned int _qzz_res; \
- VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
- VG_USERREQ__CREATE_MEMPOOL, \
- pool, rzB, is_zeroed, 0, 0); \
-/* Destroy a memory pool. */
-#define VALGRIND_DESTROY_MEMPOOL(pool) \
- {unsigned int _qzz_res; \
- VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
- VG_USERREQ__DESTROY_MEMPOOL, \
-/* Associate a piece of memory with a memory pool. */
-#define VALGRIND_MEMPOOL_ALLOC(pool, addr, size) \
- {unsigned int _qzz_res; \
- VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
- VG_USERREQ__MEMPOOL_ALLOC, \
- pool, addr, size, 0, 0); \
-/* Disassociate a piece of memory from a memory pool. */
-#define VALGRIND_MEMPOOL_FREE(pool, addr) \
- {unsigned int _qzz_res; \
- VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
- VG_USERREQ__MEMPOOL_FREE, \
- pool, addr, 0, 0, 0); \
-/* Disassociate any pieces outside a particular range. */
-#define VALGRIND_MEMPOOL_TRIM(pool, addr, size) \
- {unsigned int _qzz_res; \
- VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
- VG_USERREQ__MEMPOOL_TRIM, \
- pool, addr, size, 0, 0); \
-/* Resize and/or move a piece associated with a memory pool. */
-#define VALGRIND_MOVE_MEMPOOL(poolA, poolB) \
- {unsigned int _qzz_res; \
- VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
- VG_USERREQ__MOVE_MEMPOOL, \
- poolA, poolB, 0, 0, 0); \
-/* Resize and/or move a piece associated with a memory pool. */
-#define VALGRIND_MEMPOOL_CHANGE(pool, addrA, addrB, size) \
- {unsigned int _qzz_res; \
- VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
- VG_USERREQ__MEMPOOL_CHANGE, \
- pool, addrA, addrB, size, 0); \
-/* Return 1 if a mempool exists, else 0. */
-#define VALGRIND_MEMPOOL_EXISTS(pool) \
- ({unsigned int _qzz_res; \
- VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
- VG_USERREQ__MEMPOOL_EXISTS, \
-/* Mark a piece of memory as being a stack. Returns a stack id. */
-#define VALGRIND_STACK_REGISTER(start, end) \
- ({unsigned int _qzz_res; \
- VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
- VG_USERREQ__STACK_REGISTER, \
- start, end, 0, 0, 0); \
-/* Unmark the piece of memory associated with a stack id as being a
-#define VALGRIND_STACK_DEREGISTER(id) \
- {unsigned int _qzz_res; \
- VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
- VG_USERREQ__STACK_DEREGISTER, \
-/* Change the start and end address of the stack id. */
-#define VALGRIND_STACK_CHANGE(id, start, end) \
- {unsigned int _qzz_res; \
- VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
- VG_USERREQ__STACK_CHANGE, \
- id, start, end, 0, 0); \
-#endif /* __VALGRIND_H */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/value.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,504 +0,0 @@
- * @file value.h Value wrapper API
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_VALUE_H_
-#define _PURPLE_VALUE_H_
- * Specific value types.
- PURPLE_TYPE_UNKNOWN = 0, /**< Unknown type. */
- PURPLE_TYPE_SUBTYPE, /**< Subtype. */
- PURPLE_TYPE_CHAR, /**< Character. */
- PURPLE_TYPE_UCHAR, /**< Unsigned character. */
- PURPLE_TYPE_BOOLEAN, /**< Boolean. */
- PURPLE_TYPE_SHORT, /**< Short integer. */
- PURPLE_TYPE_USHORT, /**< Unsigned short integer. */
- PURPLE_TYPE_INT, /**< Integer. */
- PURPLE_TYPE_UINT, /**< Unsigned integer. */
- PURPLE_TYPE_LONG, /**< Long integer. */
- PURPLE_TYPE_ULONG, /**< Unsigned long integer. */
- PURPLE_TYPE_INT64, /**< 64-bit integer. */
- PURPLE_TYPE_UINT64, /**< 64-bit unsigned integer. */
- PURPLE_TYPE_STRING, /**< String. */
- PURPLE_TYPE_OBJECT, /**< Object pointer. */
- PURPLE_TYPE_POINTER, /**< Generic pointer. */
- PURPLE_TYPE_ENUM, /**< Enum. */
- PURPLE_TYPE_BOXED /**< Boxed pointer with specific type. */
- * Purple-specific subtype values.
- PURPLE_SUBTYPE_UNKNOWN = 0,
- PURPLE_SUBTYPE_ACCOUNT,
- PURPLE_SUBTYPE_BLIST_BUDDY,
- PURPLE_SUBTYPE_BLIST_GROUP,
- PURPLE_SUBTYPE_BLIST_CHAT,
- PURPLE_SUBTYPE_BUDDY_ICON,
- PURPLE_SUBTYPE_CONNECTION,
- PURPLE_SUBTYPE_CONVERSATION,
- PURPLE_SUBTYPE_BLIST_NODE,
- PURPLE_SUBTYPE_SAVEDSTATUS,
- PURPLE_SUBTYPE_XMLNODE,
- PURPLE_SUBTYPE_USERINFO,
- PURPLE_SUBTYPE_STORED_IMAGE,
- PURPLE_SUBTYPE_CERTIFICATEPOOL,
- PURPLE_SUBTYPE_CHATBUDDY
- * A wrapper for a type, subtype, and specific type of value.
- unsigned char uchar_data;
- unsigned short ushort_data;
- unsigned int uint_data;
- unsigned long ulong_data;
- * Creates a new PurpleValue.
- * This function takes a type and, depending on that type, a sub-type
- * If @a type is PURPLE_TYPE_BOXED, the next parameter must be a
- * string representing the specific type.
- * If @a type is PURPLE_TYPE_SUBTYPE, the next parameter must be a
- * integer or enum representing the sub-type.
- * If the subtype or specific type is not set when required, random
- * errors may occur. You have been warned.
- * @param type The type.
- * @return The new value.
-PurpleValue *purple_value_new(PurpleType type, ...);
- * Creates a new outgoing PurpleValue. If a value is an "outgoing" value
- * it means the value can be modified by plugins and scripts.
- * This function takes a type and, depending on that type, a sub-type
- * If @a type is PURPLE_TYPE_BOXED, the next parameter must be a
- * string representing the specific type.
- * If @a type is PURPLE_TYPE_SUBTYPE, the next parameter must be a
- * integer or enum representing the sub-type.
- * If the sub-type or specific type is not set when required, random
- * errors may occur. You have been warned.
- * @param type The type.
- * @return The new value.
-PurpleValue *purple_value_new_outgoing(PurpleType type, ...);
- * Destroys a PurpleValue.
- * @param value The value to destroy.
-void purple_value_destroy(PurpleValue *value);
- * Duplicated a PurpleValue.
- * @param value The value to duplicate.
- * @return The duplicate value.
-PurpleValue *purple_value_dup(const PurpleValue *value);
- * Returns a value's type.
- * @param value The value whose type you want.
- * @return The value's type.
-PurpleType purple_value_get_type(const PurpleValue *value);
- * Returns a value's subtype.
- * If the value's type is not PURPLE_TYPE_SUBTYPE, this will return 0.
- * Subtypes should never have a subtype of 0.
- * @param value The value whose subtype you want.
- * @return The value's subtype, or 0 if @a type is not PURPLE_TYPE_SUBTYPE.
-unsigned int purple_value_get_subtype(const PurpleValue *value);
- * Returns a value's specific type.
- * If the value's type is not PURPLE_TYPE_BOXED, this will return @c NULL.
- * @param value The value whose specific type you want.
- * @return The value's specific type, or @a NULL if not PURPLE_TYPE_BOXED.
-const char *purple_value_get_specific_type(const PurpleValue *value);
- * Returns whether or not the value is an outgoing value.
- * @param value The value.
- * @return TRUE if the value is outgoing, or FALSE otherwise.
-gboolean purple_value_is_outgoing(const PurpleValue *value);
- * Sets the value's character data.
- * @param value The value.
- * @param data The character data.
-void purple_value_set_char(PurpleValue *value, char data);
- * Sets the value's unsigned character data.
- * @param value The value.
- * @param data The unsigned character data.
-void purple_value_set_uchar(PurpleValue *value, unsigned char data);
- * Sets the value's boolean data.
- * @param value The value.
- * @param data The boolean data.
-void purple_value_set_boolean(PurpleValue *value, gboolean data);
- * Sets the value's short integer data.
- * @param value The value.
- * @param data The short integer data.
-void purple_value_set_short(PurpleValue *value, short data);
- * Sets the value's unsigned short integer data.
- * @param value The value.
- * @param data The unsigned short integer data.
-void purple_value_set_ushort(PurpleValue *value, unsigned short data);
- * Sets the value's integer data.
- * @param value The value.
- * @param data The integer data.
-void purple_value_set_int(PurpleValue *value, int data);
- * Sets the value's unsigned integer data.
- * @param value The value.
- * @param data The unsigned integer data.
-void purple_value_set_uint(PurpleValue *value, unsigned int data);
- * Sets the value's long integer data.
- * @param value The value.
- * @param data The long integer data.
-void purple_value_set_long(PurpleValue *value, long data);
- * Sets the value's unsigned long integer data.
- * @param value The value.
- * @param data The unsigned long integer data.
-void purple_value_set_ulong(PurpleValue *value, unsigned long data);
- * Sets the value's 64-bit integer data.
- * @param value The value.
- * @param data The 64-bit integer data.
-void purple_value_set_int64(PurpleValue *value, gint64 data);
- * Sets the value's unsigned 64-bit integer data.
- * @param value The value.
- * @param data The unsigned 64-bit integer data.
-void purple_value_set_uint64(PurpleValue *value, guint64 data);
- * Sets the value's string data.
- * @param value The value.
- * @param data The string data.
-void purple_value_set_string(PurpleValue *value, const char *data);
- * Sets the value's object data.
- * @param value The value.
- * @param data The object data.
-void purple_value_set_object(PurpleValue *value, void *data);
- * Sets the value's pointer data.
- * @param value The value.
- * @param data The pointer data.
-void purple_value_set_pointer(PurpleValue *value, void *data);
- * Sets the value's enum data.
- * @param value The value.
- * @param data The enum data.
-void purple_value_set_enum(PurpleValue *value, int data);
- * Sets the value's boxed data.
- * @param value The value.
- * @param data The boxed data.
-void purple_value_set_boxed(PurpleValue *value, void *data);
- * Returns the value's character data.
- * @param value The value.
- * @return The character data.
-char purple_value_get_char(const PurpleValue *value);
- * Returns the value's unsigned character data.
- * @param value The value.
- * @return The unsigned character data.
-unsigned char purple_value_get_uchar(const PurpleValue *value);
- * Returns the value's boolean data.
- * @param value The value.
- * @return The boolean data.
-gboolean purple_value_get_boolean(const PurpleValue *value);
- * Returns the value's short integer data.
- * @param value The value.
- * @return The short integer data.
-short purple_value_get_short(const PurpleValue *value);
- * Returns the value's unsigned short integer data.
- * @param value The value.
- * @return The unsigned short integer data.
-unsigned short purple_value_get_ushort(const PurpleValue *value);
- * Returns the value's integer data.
- * @param value The value.
- * @return The integer data.
-int purple_value_get_int(const PurpleValue *value);
- * Returns the value's unsigned integer data.
- * @param value The value.
- * @return The unsigned integer data.
-unsigned int purple_value_get_uint(const PurpleValue *value);
- * Returns the value's long integer data.
- * @param value The value.
- * @return The long integer data.
-long purple_value_get_long(const PurpleValue *value);
- * Returns the value's unsigned long integer data.
- * @param value The value.
- * @return The unsigned long integer data.
-unsigned long purple_value_get_ulong(const PurpleValue *value);
- * Returns the value's 64-bit integer data.
- * @param value The value.
- * @return The 64-bit integer data.
-gint64 purple_value_get_int64(const PurpleValue *value);
- * Returns the value's unsigned 64-bit integer data.
- * @param value The value.
- * @return The unsigned 64-bit integer data.
-guint64 purple_value_get_uint64(const PurpleValue *value);
- * Returns the value's string data.
- * @param value The value.
- * @return The string data.
-const char *purple_value_get_string(const PurpleValue *value);
- * Returns the value's object data.
- * @param value The value.
- * @return The object data.
-void *purple_value_get_object(const PurpleValue *value);
- * Returns the value's pointer data.
- * @param value The value.
- * @return The pointer data.
-void *purple_value_get_pointer(const PurpleValue *value);
- * Returns the value's enum data.
- * @param value The value.
- * @return The enum data.
-int purple_value_get_enum(const PurpleValue *value);
- * Returns the value's boxed data.
- * @param value The value.
- * @return The boxed data.
-void *purple_value_get_boxed(const PurpleValue *value);
-#endif /* _PURPLE_VALUE_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/version.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
- * @file version.h Purple Versioning
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_VERSION_H_
-#define _PURPLE_VERSION_H_
-/** The major version of the running libpurple. */
-#define PURPLE_MAJOR_VERSION (2)
-/** The minor version of the running libpurple. */
-#define PURPLE_MINOR_VERSION (10)
-/** The micro version of the running libpurple. */
-#define PURPLE_MICRO_VERSION (0)
-#define PURPLE_VERSION_CHECK(x,y,z) ((x) == PURPLE_MAJOR_VERSION && \
- ((y) < PURPLE_MINOR_VERSION || \
- ((y) == PURPLE_MINOR_VERSION && (z) <= PURPLE_MICRO_VERSION)))
- * Checks that the libpurple version is compatible with the requested
- * @param required_major: the required major version.
- * @param required_minor: the required minor version.
- * @param required_micro: the required micro version.
- * @return NULL if the versions are compatible, or a string describing
- * the version mismatch if not compatible.
-const char *purple_version_check(guint required_major, guint required_minor, guint required_micro);
- * 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.
-extern const guint purple_major_version;
- * 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.
-extern const guint purple_minor_version;
- * 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.
-extern const guint purple_micro_version;
-#endif /* _PURPLE_VERSION_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/whiteboard.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,262 +0,0 @@
- * @file whiteboard.h The PurpleWhiteboard core object
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_WHITEBOARD_H_
-#define _PURPLE_WHITEBOARD_H_
- * Whiteboard PRPL Operations
-typedef struct _PurpleWhiteboardPrplOps PurpleWhiteboardPrplOps;
-typedef struct _PurpleWhiteboard
- int state; /**< State of whiteboard session */
- PurpleAccount *account; /**< Account associated with this session */
- char *who; /**< Name of the remote user */
- void *ui_data; /**< Graphical user-interface data */
- void *proto_data; /**< Protocol specific data */
- PurpleWhiteboardPrplOps *prpl_ops; /**< Protocol-plugin operations */
- GList *draw_list; /**< List of drawing elements/deltas to send */
- * The PurpleWhiteboard UI Operations
-typedef struct _PurpleWhiteboardUiOps
- void (*create)(PurpleWhiteboard *wb); /**< create function */
- void (*destroy)(PurpleWhiteboard *wb); /**< destory function */
- void (*set_dimensions)(PurpleWhiteboard *wb, int width, int height); /**< set_dimensions function */
- void (*set_brush) (PurpleWhiteboard *wb, int size, int color); /**< set the size and color of the brush */
- void (*draw_point)(PurpleWhiteboard *wb, int x, int y,
- int color, int size); /**< draw_point function */
- void (*draw_line)(PurpleWhiteboard *wb, int x1, int y1,
- int color, int size); /**< draw_line function */
- void (*clear)(PurpleWhiteboard *wb); /**< clear function */
- void (*_purple_reserved1)(void);
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
- void (*_purple_reserved4)(void);
-} PurpleWhiteboardUiOps;
- * PurpleWhiteboard PRPL Operations
-struct _PurpleWhiteboardPrplOps
- void (*start)(PurpleWhiteboard *wb); /**< start function */
- void (*end)(PurpleWhiteboard *wb); /**< end function */
- void (*get_dimensions)(const PurpleWhiteboard *wb, int *width, int *height); /**< get_dimensions function */
- void (*set_dimensions)(PurpleWhiteboard *wb, int width, int height); /**< set_dimensions function */
- void (*get_brush) (const PurpleWhiteboard *wb, int *size, int *color); /**< get the brush size and color */
- void (*set_brush) (PurpleWhiteboard *wb, int size, int color); /**< set the brush size and color */
- void (*send_draw_list)(PurpleWhiteboard *wb, GList *draw_list); /**< send_draw_list function */
- void (*clear)(PurpleWhiteboard *wb); /**< clear function */
- void (*_purple_reserved1)(void);
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
- void (*_purple_reserved4)(void);
-#endif /* __cplusplus */
-/******************************************************************************/
-/** @name PurpleWhiteboard API */
-/******************************************************************************/
- * Sets the UI operations
- * @param ops The UI operations to set
-void purple_whiteboard_set_ui_ops(PurpleWhiteboardUiOps *ops);
- * Sets the prpl operations for a whiteboard
- * @param wb The whiteboard for which to set the prpl operations
- * @param ops The prpl operations to set
-void purple_whiteboard_set_prpl_ops(PurpleWhiteboard *wb, PurpleWhiteboardPrplOps *ops);
- * @param account The account.
- * @param who Who you're drawing with.
- * @param state The state.
- * @return The new whiteboard
-PurpleWhiteboard *purple_whiteboard_create(PurpleAccount *account, const char *who, int state);
- * Destroys a whiteboard
- * @param wb The whiteboard.
-void purple_whiteboard_destroy(PurpleWhiteboard *wb);
- * @param wb The whiteboard.
-void purple_whiteboard_start(PurpleWhiteboard *wb);
- * Finds a whiteboard from an account and user.
- * @param account The account.
- * @return The whiteboard if found, otherwise @c NULL.
-PurpleWhiteboard *purple_whiteboard_get_session(const PurpleAccount *account, const char *who);
- * Destorys a drawing list for a whiteboard
- * @param draw_list The drawing list.
-void purple_whiteboard_draw_list_destroy(GList *draw_list);
- * Gets the dimension of a whiteboard.
- * @param wb The whiteboard.
- * @param width The width to be set.
- * @param height The height to be set.
- * @return TRUE if the values of width and height were set.
-gboolean purple_whiteboard_get_dimensions(const PurpleWhiteboard *wb, int *width, int *height);
- * Sets the dimensions for a whiteboard.
- * @param wb The whiteboard.
- * @param width The width.
- * @param height The height.
-void purple_whiteboard_set_dimensions(PurpleWhiteboard *wb, int width, int height);
- * Draws a point on a whiteboard.
- * @param wb The whiteboard.
- * @param x The x coordinate.
- * @param y The y coordinate.
- * @param color The color to use.
- * @param size The brush size.
-void purple_whiteboard_draw_point(PurpleWhiteboard *wb, int x, int y, int color, int size);
- * Send a list of points to draw to the buddy.
- * @param wb The whiteboard
- * @param list A GList of points
-void purple_whiteboard_send_draw_list(PurpleWhiteboard *wb, GList *list);
- * Draws a line on a whiteboard
- * @param wb The whiteboard.
- * @param x1 The top-left x coordinate.
- * @param y1 The top-left y coordinate.
- * @param x2 The bottom-right x coordinate.
- * @param y2 The bottom-right y coordinate.
- * @param color The color to use.
- * @param size The brush size.
-void purple_whiteboard_draw_line(PurpleWhiteboard *wb, int x1, int y1, int x2, int y2, int color, int size);
- * @param wb The whiteboard.
-void purple_whiteboard_clear(PurpleWhiteboard *wb);
- * Sends a request to the buddy to clear the whiteboard.
- * @param wb The whiteboard
-void purple_whiteboard_send_clear(PurpleWhiteboard *wb);
- * Sends a request to change the size and color of the brush.
- * @param wb The whiteboard
- * @param size The size of the brush
- * @param color The color of the brush
-void purple_whiteboard_send_brush(PurpleWhiteboard *wb, int size, int color);
- * Gets the size and color of the brush.
- * @param wb The whiteboard
- * @param size The size of the brush
- * @param color The color of the brush
- * @return TRUE if the size and color were set.
-gboolean purple_whiteboard_get_brush(const PurpleWhiteboard *wb, int *size, int *color);
- * Sets the size and color of the brush.
- * @param wb The whiteboard
- * @param size The size of the brush
- * @param color The color of the brush
-void purple_whiteboard_set_brush(PurpleWhiteboard *wb, int size, int color);
-#endif /* __cplusplus */
-#endif /* _PURPLE_WHITEBOARD_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/xfer.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
- * @file xfer.h MSN File Transfer functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#define MAX_FILE_NAME_LEN 260 /* MAX_PATH in Windows */
- * The context data for a file transfer request
- guint32 length; /*< Length of header */
- guint32 version; /*< MSN version */
- guint64 file_size; /*< Size of file */
- guint32 type; /*< Transfer type */
- gunichar2 file_name[MAX_FILE_NAME_LEN]; /*< Self-explanatory */
- gchar unknown1[30]; /*< Used somehow for background sharing */
- guint32 unknown2; /*< Possibly for background sharing as well */
- gchar *preview; /*< File preview data, 96x96 PNG */
-#define MSN_FILE_CONTEXT_SIZE (4*4 + 1*8 + 2*MAX_FILE_NAME_LEN + 30)
-void msn_xfer_init(PurpleXfer *xfer);
-void msn_xfer_cancel(PurpleXfer *xfer);
-gssize msn_xfer_write(const guchar *data, gsize len, PurpleXfer *xfer);
-gssize msn_xfer_read(guchar **data, PurpleXfer *xfer);
-void msn_xfer_completed_cb(MsnSlpCall *slpcall,
- const guchar *body, gsize size);
-void msn_xfer_end_cb(MsnSlpCall *slpcall, MsnSession *session);
-msn_file_context_to_wire(MsnFileContext *context);
-msn_file_context_from_wire(const char *buf, gsize len);
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/xmlnode.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,397 +0,0 @@
- * @file xmlnode.h XML DOM functions
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _PURPLE_XMLNODE_H_
-#define _PURPLE_XMLNODE_H_
- * The valid types for an xmlnode
-typedef enum _XMLNodeType
- XMLNODE_TYPE_TAG, /**< Just a tag */
- XMLNODE_TYPE_ATTRIB, /**< Has attributes */
- XMLNODE_TYPE_DATA /**< Has data */
-typedef struct _xmlnode xmlnode;
- char *name; /**< The name of the node. */
- char *xmlns; /**< The namespace of the node */
- XMLNodeType type; /**< The type of the node. */
- char *data; /**< The data for the node. */
- size_t data_sz; /**< The size of the data. */
- xmlnode *parent; /**< The parent node or @c NULL.*/
- xmlnode *child; /**< The child node or @c NULL.*/
- xmlnode *lastchild; /**< The last child node or @c NULL.*/
- xmlnode *next; /**< The next node or @c NULL. */
- char *prefix; /**< The namespace prefix if any. */
- GHashTable *namespace_map; /**< The namespace map. */
- * Creates a new xmlnode.
- * @param name The name of the node.
- * @return The new node.
-xmlnode *xmlnode_new(const char *name);
- * Creates a new xmlnode child.
- * @param parent The parent node.
- * @param name The name of the child node.
- * @return The new child node.
-xmlnode *xmlnode_new_child(xmlnode *parent, const char *name);
- * Inserts a node into a node as a child.
- * @param parent The parent node to insert child into.
- * @param child The child node to insert into parent.
-void xmlnode_insert_child(xmlnode *parent, xmlnode *child);
- * Gets a child node named name.
- * @param parent The parent node.
- * @param name The child's name.
- * @return The child or NULL.
-xmlnode *xmlnode_get_child(const xmlnode *parent, const char *name);
- * Gets a child node named name in a namespace.
- * @param parent The parent node.
- * @param name The child's name.
- * @param xmlns The namespace.
- * @return The child or NULL.
-xmlnode *xmlnode_get_child_with_namespace(const xmlnode *parent, const char *name, const char *xmlns);
- * Gets the next node with the same name as node.
- * @param node The node of a twin to find.
- * @return The twin of node or NULL.
-xmlnode *xmlnode_get_next_twin(xmlnode *node);
- * Inserts data into a node.
- * @param node The node to insert data into.
- * @param data The data to insert.
- * @param size The size of the data to insert. If data is
- * null-terminated you can pass in -1.
-void xmlnode_insert_data(xmlnode *node, const char *data, gssize size);
- * Gets (escaped) data from a node.
- * @param node The node to get data from.
- * @return The data from the node or NULL. This data is in raw escaped format.
- * You must g_free this string when finished using it.
-char *xmlnode_get_data(const xmlnode *node);
- * Gets unescaped data from a node.
- * @param node The node to get data from.
- * @return The data from the node, in unescaped form. You must g_free
- * this string when finished using it.
-char *xmlnode_get_data_unescaped(const xmlnode *node);
- * Sets an attribute for a node.
- * @param node The node to set an attribute for.
- * @param attr The name of the attribute.
- * @param value The value of the attribute.
-void xmlnode_set_attrib(xmlnode *node, const char *attr, const char *value);
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_XMLNODE_C_)
- * Sets a prefixed attribute for a node
- * @param node The node to set an attribute for.
- * @param attr The name of the attribute to set
- * @param prefix The prefix of the attribute to ste
- * @param value The value of the attribute
- * @deprecated Use xmlnode_set_attrib_full instead.
-void xmlnode_set_attrib_with_prefix(xmlnode *node, const char *attr, const char *prefix, const char *value);
- * Sets a namespaced attribute for a node
- * @param node The node to set an attribute for.
- * @param attr The name of the attribute to set
- * @param xmlns The namespace of the attribute to ste
- * @param value The value of the attribute
- * @deprecated Use xmlnode_set_attrib_full instead.
-void xmlnode_set_attrib_with_namespace(xmlnode *node, const char *attr, const char *xmlns, const char *value);
-#endif /* PURPLE_DISABLE_DEPRECATED */
- * Sets a namespaced attribute for a node
- * @param node The node to set an attribute for.
- * @param attr The name of the attribute to set
- * @param xmlns The namespace of the attribute to ste
- * @param prefix The prefix of the attribute to ste
- * @param value The value of the attribute
-void xmlnode_set_attrib_full(xmlnode *node, const char *attr, const char *xmlns,
- const char *prefix, const char *value);
- * Gets an attribute from a node.
- * @param node The node to get an attribute from.
- * @param attr The attribute to get.
- * @return The value of the attribute.
-const char *xmlnode_get_attrib(const xmlnode *node, const char *attr);
- * Gets a namespaced attribute from a node
- * @param node The node to get an attribute from.
- * @param attr The attribute to get
- * @param xmlns The namespace of the attribute to get
- * @return The value of the attribute/
-const char *xmlnode_get_attrib_with_namespace(const xmlnode *node, const char *attr, const char *xmlns);
- * Removes an attribute from a node.
- * @param node The node to remove an attribute from.
- * @param attr The attribute to remove.
-void xmlnode_remove_attrib(xmlnode *node, const char *attr);
- * Removes a namespaced attribute from a node
- * @param node The node to remove an attribute from
- * @param attr The attribute to remove
- * @param xmlns The namespace of the attribute to remove
-void xmlnode_remove_attrib_with_namespace(xmlnode *node, const char *attr, const char *xmlns);
- * Sets the namespace of a node
- * @param node The node to qualify
- * @param xmlns The namespace of the node
-void xmlnode_set_namespace(xmlnode *node, const char *xmlns);
- * Returns the namespace of a node
- * @param node The node to get the namepsace from
- * @return The namespace of this node
-const char *xmlnode_get_namespace(const xmlnode *node);
- * Returns the current default namespace. The default
- * namespace is the current namespace which applies to child
- * elements which are unprefixed and which do not contain their
- * <iq type='get' xmlns='jabber:client' xmlns:ns1='http://example.org/ns1'>
- * <ns1:element><child1/></ns1:element>
- * The default namespace of all nodes (including 'child1') is "jabber:client",
- * though the namespace for 'element' is "http://example.org/ns1".
- * @param node The node for which to return the default namespace
- * @return The default namespace of this node
-const char *xmlnode_get_default_namespace(const xmlnode *node);
- * Returns the defined namespace for a prefix.
- * @param node The node from which to start the search.
- * @param prefix The prefix for which to return the associated namespace.
- * @return The namespace for this prefix.
-const char *xmlnode_get_prefix_namespace(const xmlnode *node, const char *prefix);
- * Sets the prefix of a node
- * @param node The node to qualify
- * @param prefix The prefix of the node
-void xmlnode_set_prefix(xmlnode *node, const char *prefix);
- * Returns the prefix of a node
- * @param node The node to get the prefix from
- * @return The prefix of this node
-const char *xmlnode_get_prefix(const xmlnode *node);
- * Remove all element prefixes from an xmlnode tree. The prefix's
- * namespace is transformed into the default namespace for an element.
- * Note that this will not necessarily remove all prefixes in use
- * (prefixed attributes may still exist), and that this usage may
- * break some applications (SOAP / XPath apparently often rely on
- * the prefixes having the same name.
- * @param node The node from which to strip prefixes
-void xmlnode_strip_prefixes(xmlnode *node);
- * Gets the parent node.
- * @param child The child node.
- * @return The parent or NULL.
-xmlnode *xmlnode_get_parent(const xmlnode *child);
- * Returns the node in a string of xml.
- * @param node The starting node to output.
- * @param len Address for the size of the string.
- * @return The node represented as a string. You must
- * g_free this string when finished using it.
-char *xmlnode_to_str(const xmlnode *node, int *len);
- * Returns the node in a string of human readable xml.
- * @param node The starting node to output.
- * @param len Address for the size of the string.
- * @return The node as human readable string including
- * tab and new line characters. You must
- * g_free this string when finished using it.
-char *xmlnode_to_formatted_str(const xmlnode *node, int *len);
- * Creates a node from a string of XML. Calling this on the
- * root node of an XML document will parse the entire document
- * into a tree of nodes, and return the xmlnode of the root.
- * @param str The string of xml.
- * @param size The size of the string, or -1 if @a str is
- * @return The new node.
-xmlnode *xmlnode_from_str(const char *str, gssize size);
- * Creates a new node from the source node.
- * @param src The node to copy.
- * @return A new copy of the src node.
-xmlnode *xmlnode_copy(const xmlnode *src);
- * Frees a node and all of its children.
- * @param node The node to free.
-void xmlnode_free(xmlnode *node);
- * Creates a node from a XML File. Calling this on the
- * root node of an XML document will parse the entire document
- * into a tree of nodes, and return the xmlnode of the root.
- * @param dir The directory where the file is located
- * @param filename The filename
- * @param description A description of the file being parsed. Displayed to
- * the user if the file cannot be read.
- * @param process The subsystem that is calling xmlnode_from_file. Used as
- * the category for debugging.
- * @return The new node or NULL if an error occurred.
-xmlnode *xmlnode_from_file(const char *dir, const char *filename,
- const char *description, const char *process);
-#endif /* _PURPLE_XMLNODE_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/yahoo_aliases.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#include "yahoo_packet.h"
-void yahoo_update_alias(PurpleConnection *gc, const char *who, const char *alias);
-void yahoo_fetch_aliases(PurpleConnection *gc);
-void yahoo_set_userinfo(PurpleConnection *gc);
-void yahoo_set_userinfo_for_buddy(PurpleConnection *gc, PurpleBuddy *buddy);
-void yahoo_personal_details_reset(YahooPersonalDetails *ypd, gboolean all);
-void yahoo_process_contact_details(PurpleConnection *gc, struct yahoo_packet *pkt);
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/yahoo_doodle.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
- * @file yahoo_doodle.h The Yahoo! protocol plugin Doodle IMVironment object
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _YAHOO_DOODLE_H_
-#define _YAHOO_DOODLE_H_
-/******************************************************************************
- *****************************************************************************/
-#define DOODLE_IMV_KEY "doodle;106"
-/******************************************************************************
- *****************************************************************************/
-/* Doodle communication commands */
-/* TODO: Should be an enum. */
-#define DOODLE_CMD_REQUEST 0
-#define DOODLE_CMD_CLEAR 1
-#define DOODLE_CMD_DRAW 2
-#define DOODLE_CMD_EXTRA 3
-#define DOODLE_CMD_READY 4
-#define DOODLE_CMD_CONFIRM 5
-/* Doodle communication command for shutting down (also 0) */
-#define DOODLE_CMD_SHUTDOWN 0
-#define DOODLE_EXTRA_NONE "\"1\""
-#define DOODLE_EXTRA_TICTACTOE "\"3\""
-#define DOODLE_EXTRA_DOTS "\"2\""
-/* Doodle session states */
-/* TODO: Should be an enum. */
-#define DOODLE_STATE_REQUESTING 0
-#define DOODLE_STATE_REQUESTED 1
-#define DOODLE_STATE_ESTABLISHED 2
-#define DOODLE_STATE_CANCELLED 3
-/* Doodle canvas dimensions */
-#define DOODLE_CANVAS_WIDTH 368
-#define DOODLE_CANVAS_HEIGHT 256
-/* Doodle color codes (most likely RGB) */
-/* TODO: Should be an enum and sorted by color name. */
-#define DOODLE_COLOR_RED 13369344
-#define DOODLE_COLOR_ORANGE 16737792
-#define DOODLE_COLOR_YELLOW 15658496
-#define DOODLE_COLOR_GREEN 52224
-#define DOODLE_COLOR_CYAN 52428
-#define DOODLE_COLOR_BLUE 204
-#define DOODLE_COLOR_VIOLET 5381277
-#define DOODLE_COLOR_PURPLE 13369548
-#define DOODLE_COLOR_TAN 12093547
-#define DOODLE_COLOR_BROWN 5256485
-#define DOODLE_COLOR_BLACK 0
-#define DOODLE_COLOR_GREY 11184810
-#define DOODLE_COLOR_WHITE 16777215
-#define PALETTE_NUM_OF_COLORS 12
-/* Doodle brush sizes (most likely variable) */
-#define DOODLE_BRUSH_SMALL 2
-#define DOODLE_BRUSH_MEDIUM 5
-#define DOODLE_BRUSH_LARGE 10
-#define DOODLE_MAX_BRUSH_MOTIONS 100
-/******************************************************************************
- *****************************************************************************/
-typedef struct _doodle_session
- int brush_size; /* Size of drawing brush */
- int brush_color; /* Color of drawing brush */
-/******************************************************************************
- *****************************************************************************/
-PurpleCmdRet yahoo_doodle_purple_cmd_start(PurpleConversation *conv, const char *cmd, char **args,
- char **error, void *data);
-void yahoo_doodle_process(PurpleConnection *gc, const char *me, const char *from,
- const char *command, const char *message, const char *imv_key);
-void yahoo_doodle_initiate(PurpleConnection *gc, const char *to);
-void yahoo_doodle_command_got_shutdown(PurpleConnection *gc, const char *from);
-void yahoo_doodle_command_send_request(PurpleConnection *gc, const char *to, const char *imv_key);
-void yahoo_doodle_command_send_ready(PurpleConnection *gc, const char *to, const char *imv_key);
-void yahoo_doodle_command_send_draw(PurpleConnection *gc, const char *to, const char *message, const char *imv_key);
-void yahoo_doodle_command_send_clear(PurpleConnection *gc, const char *to, const char *imv_key);
-void yahoo_doodle_command_send_extra(PurpleConnection *gc, const char *to, const char *message, const char *imv_key);
-void yahoo_doodle_command_send_confirm(PurpleConnection *gc, const char *to, const char *imv_key);
-void yahoo_doodle_command_send_shutdown(PurpleConnection *gc, const char *to);
-void yahoo_doodle_start(PurpleWhiteboard *wb);
-void yahoo_doodle_end(PurpleWhiteboard *wb);
-void yahoo_doodle_get_dimensions(const PurpleWhiteboard *wb, int *width, int *height);
-void yahoo_doodle_send_draw_list(PurpleWhiteboard *wb, GList *draw_list);
-void yahoo_doodle_clear(PurpleWhiteboard *wb);
-void yahoo_doodle_draw_stroke(PurpleWhiteboard *wb, GList *draw_list);
-void yahoo_doodle_get_brush(const PurpleWhiteboard *wb, int *size, int *color);
-void yahoo_doodle_set_brush(PurpleWhiteboard *wb, int size, int color);
-#endif /* _YAHOO_DOODLE_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/yahoo_filexfer.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _YAHOO_FILEXFER_H_
-#define _YAHOO_FILEXFER_H_
- * Process ymsg events, particular IMViroments like Doodle
-void yahoo_process_p2pfilexfer( PurpleConnection *gc, struct yahoo_packet *pkt );
- * Process ymsg file receive invites.
-void yahoo_process_filetransfer(PurpleConnection *gc, struct yahoo_packet *pkt);
- * Create a new PurpleXfer
- * @param gc The PurpleConnection handle.
- * @param who Who will we be sending it to?
-PurpleXfer *yahoo_new_xfer(PurpleConnection *gc, const char *who);
- * Returns TRUE if the buddy can receive file, FALSE otherwise.
- * Federated users cannot receive files. So this will return FALSE only
- * @param gc The connection
- * @param who The name of the remote user
- * @return TRUE or FALSE
-gboolean yahoo_can_receive_file(PurpleConnection *gc, const char *who);
- * @param gc The PurpleConnection handle.
- * @param who Who are we sending it to?
- * @param file What file? If NULL, user will choose after this call.
-void yahoo_send_file(PurpleConnection *gc, const char *who, const char *file);
-void yahoo_process_filetrans_15(PurpleConnection *gc, struct yahoo_packet *pkt);
-void yahoo_process_filetrans_info_15(PurpleConnection *gc, struct yahoo_packet *pkt);
-void yahoo_process_filetrans_acc_15(PurpleConnection *gc, struct yahoo_packet *pkt);
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/yahoo_friend.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
- * @file yahoo_friend.h The Yahoo! protocol plugin YahooFriend object
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _YAHOO_FRIEND_H_
-#define _YAHOO_FRIEND_H_
-#include "yahoo_packet.h"
- YAHOO_PRESENCE_DEFAULT = 0,
- YAHOO_PRESENCE_PERM_OFFLINE
-} YahooPresenceVisibility;
- YAHOO_P2PSTATUS_NOT_CONNECTED = 0,
- YAHOO_P2PSTATUS_DO_NOT_CONNECT,
- YAHOO_P2PSTATUS_WE_ARE_SERVER,
- YAHOO_P2PSTATUS_WE_ARE_CLIENT
-/* these are called friends instead of buddies mainly so I can use variables
- * named f and not confuse them with variables named b
-typedef struct _YahooFriend {
- enum yahoo_status status;
- gboolean bicon_sent_request;
- YahooPresenceVisibility presence;
- YahooPersonalDetails ypd;
- YahooP2PStatus p2p_status;
- gboolean p2p_packet_sent; /* 0:not sent, 1=sent */
- gint session_id; /* session id of friend */
-YahooFriend *yahoo_friend_find(PurpleConnection *gc, const char *name);
-YahooFriend *yahoo_friend_find_or_new(PurpleConnection *gc, const char *name);
-void yahoo_friend_set_ip(YahooFriend *f, const char *ip);
-const char *yahoo_friend_get_ip(YahooFriend *f);
-void yahoo_friend_set_game(YahooFriend *f, const char *game);
-const char *yahoo_friend_get_game(YahooFriend *f);
-void yahoo_friend_set_status_message(YahooFriend *f, char *msg);
-const char *yahoo_friend_get_status_message(YahooFriend *f);
-void yahoo_friend_set_alias_id(YahooFriend *f, const char *alias_id);
-const char *yahoo_friend_get_alias_id(YahooFriend *f);
-void yahoo_friend_set_buddy_icon_need_request(YahooFriend *f, gboolean needs);
-gboolean yahoo_friend_get_buddy_icon_need_request(YahooFriend *f);
-void yahoo_friend_free(gpointer p);
-void yahoo_process_presence(PurpleConnection *gc, struct yahoo_packet *pkt);
-void yahoo_friend_update_presence(PurpleConnection *gc, const char *name,
- YahooPresenceVisibility presence);
-void yahoo_friend_set_p2p_status(YahooFriend *f, YahooP2PStatus p2p_status);
-YahooP2PStatus yahoo_friend_get_p2p_status(YahooFriend *f);
-#endif /* _YAHOO_FRIEND_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/yahoo_packet.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,150 +0,0 @@
- * @file yahoo_packet.h The Yahoo! protocol plugin
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _YAHOO_PACKET_H_
-#define _YAHOO_PACKET_H_
-enum yahoo_service { /* these are easier to see in hex */
- YAHOO_SERVICE_LOGON = 1,
- YAHOO_SERVICE_IDLE, /* 5 (placemarker) */
- YAHOO_SERVICE_MAILSTAT,
- YAHOO_SERVICE_USERSTAT, /* 0xa */
- YAHOO_SERVICE_CHATINVITE,
- YAHOO_SERVICE_CALENDAR,
- YAHOO_SERVICE_NEWPERSONALMAIL,
- YAHOO_SERVICE_NEWCONTACT,
- YAHOO_SERVICE_ADDIDENT, /* 0x10 */
- YAHOO_SERVICE_ADDIGNORE,
- YAHOO_SERVICE_GOTGROUPRENAME,
- YAHOO_SERVICE_SYSMESSAGE = 0x14,
- YAHOO_SERVICE_SKINNAME = 0x15,
- YAHOO_SERVICE_PASSTHROUGH2 = 0x16,
- YAHOO_SERVICE_CONFINVITE = 0x18,
- YAHOO_SERVICE_CONFLOGON,
- YAHOO_SERVICE_CONFDECLINE,
- YAHOO_SERVICE_CONFLOGOFF,
- YAHOO_SERVICE_CONFADDINVITE,
- YAHOO_SERVICE_CHATLOGON,
- YAHOO_SERVICE_CHATLOGOFF,
- YAHOO_SERVICE_CHATMSG = 0x20,
- YAHOO_SERVICE_GAMELOGON = 0x28,
- YAHOO_SERVICE_GAMELOGOFF,
- YAHOO_SERVICE_GAMEMSG = 0x2a,
- YAHOO_SERVICE_FILETRANSFER = 0x46,
- YAHOO_SERVICE_VOICECHAT = 0x4A,
- YAHOO_SERVICE_NOTIFY = 0x4B,
- YAHOO_SERVICE_P2PFILEXFER,
- YAHOO_SERVICE_PEERTOPEER = 0x4F,
- YAHOO_SERVICE_AUTHRESP = 0x54,
- YAHOO_SERVICE_LIST = 0x55,
- YAHOO_SERVICE_AUTH = 0x57,
- YAHOO_SERVICE_AUTHBUDDY = 0x6d,
- YAHOO_SERVICE_ADDBUDDY = 0x83,
- YAHOO_SERVICE_REMBUDDY = 0x84,
- YAHOO_SERVICE_IGNORECONTACT, /* > 1, 7, 13 < 1, 66, 13, 0*/
- YAHOO_SERVICE_REJECTCONTACT,
- YAHOO_SERVICE_GROUPRENAME = 0x89, /* > 1, 65(new), 66(0), 67(old) */
- YAHOO_SERVICE_KEEPALIVE = 0x8A,
- YAHOO_SERVICE_CHATONLINE = 0x96, /* > 109(id), 1, 6(abcde) < 0,1*/
- YAHOO_SERVICE_CHATGOTO,
- YAHOO_SERVICE_CHATJOIN, /* > 1 104-room 129-1600326591 62-2 */
- YAHOO_SERVICE_CHATLEAVE,
- YAHOO_SERVICE_CHATEXIT = 0x9b,
- YAHOO_SERVICE_CHATADDINVITE = 0x9d,
- YAHOO_SERVICE_CHATLOGOUT = 0xa0,
- YAHOO_SERVICE_CHATPING,
- YAHOO_SERVICE_COMMENT = 0xa8,
- YAHOO_SERVICE_PRESENCE_PERM = 0xb9,
- YAHOO_SERVICE_PRESENCE_SESSION = 0xba,
- YAHOO_SERVICE_AVATAR = 0xbc,
- YAHOO_SERVICE_PICTURE_CHECKSUM = 0xbd,
- YAHOO_SERVICE_PICTURE = 0xbe,
- YAHOO_SERVICE_PICTURE_UPDATE = 0xc1,
- YAHOO_SERVICE_PICTURE_UPLOAD = 0xc2,
- YAHOO_SERVICE_Y6_VISIBLE_TOGGLE = 0xc5,
- YAHOO_SERVICE_Y6_STATUS_UPDATE = 0xc6,
- YAHOO_SERVICE_AVATAR_UPDATE = 0xc7,
- YAHOO_SERVICE_VERIFY_ID_EXISTS = 0xc8,
- YAHOO_SERVICE_AUDIBLE = 0xd0,
- YAHOO_SERVICE_CONTACT_DETAILS = 0xd3,
- /* YAHOO_SERVICE_CHAT_SESSION = 0xd4,?? Reports start of chat session, gets an id from server */
- YAHOO_SERVICE_AUTH_REQ_15 = 0xd6,
- YAHOO_SERVICE_FILETRANS_15 = 0xdc,
- YAHOO_SERVICE_FILETRANS_INFO_15 = 0xdd,
- YAHOO_SERVICE_FILETRANS_ACC_15 = 0xde,
- /* photo sharing services ?? - 0xd2, 0xd7, 0xd8, 0xda */
- YAHOO_SERVICE_CHGRP_15 = 0xe7,
- YAHOO_SERVICE_STATUS_15 = 0xf0,
- YAHOO_SERVICE_LIST_15 = 0xf1,
- YAHOO_SERVICE_MESSAGE_ACK = 0xfb,
- YAHOO_SERVICE_WEBLOGIN = 0x0226,
- YAHOO_SERVICE_SMS_MSG = 0x02ea
- /* YAHOO_SERVICE_DISCONNECT = 0x07d1 Server forces us to disconnect. Is sent with TCP FIN flag set */
-#define YAHOO_WEBMESSENGER_PROTO_VER 0x0065
-#define YAHOO_PROTO_VER 0x0010
-#define YAHOO_PROTO_VER_JAPAN 0x0010
-#define YAHOO_PACKET_HDRLEN (4 + 2 + 2 + 2 + 2 + 4 + 4)
-struct yahoo_packet *yahoo_packet_new(enum yahoo_service service,
- enum yahoo_status status, int id);
-void yahoo_packet_hash(struct yahoo_packet *pkt, const char *fmt, ...);
-void yahoo_packet_hash_str(struct yahoo_packet *pkt, int key, const char *value);
-void yahoo_packet_hash_int(struct yahoo_packet *pkt, int key, int value);
-int yahoo_packet_send(struct yahoo_packet *pkt, YahooData *yd);
-int yahoo_packet_send_and_free(struct yahoo_packet *pkt, YahooData *yd);
-size_t yahoo_packet_build(struct yahoo_packet *pkt, int pad, gboolean wm, gboolean jp,
-void yahoo_packet_read(struct yahoo_packet *pkt, const guchar *data, int len);
-void yahoo_packet_write(struct yahoo_packet *pkt, guchar *data);
-void yahoo_packet_dump(guchar *data, int len);
-size_t yahoo_packet_length(struct yahoo_packet *pkt);
-void yahoo_packet_free(struct yahoo_packet *pkt);
-#endif /* _YAHOO_PACKET_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/yahoo_picture.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#ifndef _YAHOO_PICTURE_H_
-#define _YAHOO_PICTURE_H_
-void yahoo_send_picture_request(PurpleConnection *gc, const char *who);
-void yahoo_send_picture_info(PurpleConnection *gc, const char *who);
-void yahoo_send_picture_checksum(PurpleConnection *gc);
-void yahoo_send_picture_update(PurpleConnection *gc, int type);
-void yahoo_send_picture_update_to_user(PurpleConnection *gc, const char *who, int type);
-void yahoo_process_picture(PurpleConnection *gc, struct yahoo_packet *pkt);
-void yahoo_process_picture_checksum(PurpleConnection *gc, struct yahoo_packet *pkt);
-void yahoo_process_picture_upload(PurpleConnection *gc, struct yahoo_packet *pkt);
-void yahoo_process_avatar_update(PurpleConnection *gc, struct yahoo_packet *pkt);
-void yahoo_set_buddy_icon(PurpleConnection *gc, PurpleStoredImage *img);
-void yahoo_buddy_icon_upload(PurpleConnection *gc, struct yahoo_buddy_icon_upload_data *d);
-void yahoo_buddy_icon_upload_data_free(struct yahoo_buddy_icon_upload_data *d);
-#endif /* _YAHOO_PICTURE_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/yahoochat.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
- * @file yahoochat.h The Yahoo! protocol plugin, chat and conference stuff
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#include "yahoo_packet.h"
-void yahoo_process_conference_invite(PurpleConnection *gc, struct yahoo_packet *pkt);
-void yahoo_process_conference_decline(PurpleConnection *gc, struct yahoo_packet *pkt);
-void yahoo_process_conference_logon(PurpleConnection *gc, struct yahoo_packet *pkt);
-void yahoo_process_conference_logoff(PurpleConnection *gc, struct yahoo_packet *pkt);
-void yahoo_process_conference_message(PurpleConnection *gc, struct yahoo_packet *pkt);
-void yahoo_process_chat_online(PurpleConnection *gc, struct yahoo_packet *pkt);
-void yahoo_process_chat_logout(PurpleConnection *gc, struct yahoo_packet *pkt);
-void yahoo_process_chat_join(PurpleConnection *gc, struct yahoo_packet *pkt);
-void yahoo_process_chat_exit(PurpleConnection *gc, struct yahoo_packet *pkt);
-void yahoo_process_chat_message(PurpleConnection *gc, struct yahoo_packet *pkt);
-void yahoo_process_chat_addinvite(PurpleConnection *gc, struct yahoo_packet *pkt);
-void yahoo_process_chat_goto(PurpleConnection *gc, struct yahoo_packet *pkt);
-void yahoo_c_leave(PurpleConnection *gc, int id);
-int yahoo_c_send(PurpleConnection *gc, int id, const char *what, PurpleMessageFlags flags);
-GList *yahoo_c_info(PurpleConnection *gc);
-GHashTable *yahoo_c_info_defaults(PurpleConnection *gc, const char *chat_name);
-void yahoo_c_join(PurpleConnection *gc, GHashTable *data);
-char *yahoo_get_chat_name(GHashTable *data);
-void yahoo_c_invite(PurpleConnection *gc, int id, const char *msg, const char *name);
-void yahoo_conf_leave(YahooData *yd, const char *room, const char *dn, GList *who);
-void yahoo_chat_goto(PurpleConnection *gc, const char *name);
-/* room listing functions */
-PurpleRoomlist *yahoo_roomlist_get_list(PurpleConnection *gc);
-void yahoo_roomlist_cancel(PurpleRoomlist *list);
-void yahoo_roomlist_expand_category(PurpleRoomlist *list, PurpleRoomlistRoom *category);
-void yahoo_chat_add_users(PurpleConvChat *chat, GList *newusers);
-void yahoo_chat_add_user(PurpleConvChat *chat, const char *user, const char *reason);
-#endif /* _YAHOO_CHAT_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Headers/ycht.h Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
- * @file ycht.h The Yahoo! protocol plugin, YCHT protocol stuff.
- * Copyright (C) 2004 Timothy Ringenbach <omarvo@hotmail.com>
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-/* #define YAHOO_YCHT_DEBUG */
-#define YAHOO_YCHT_HOST "jcs3.chat.dcn.yahoo.com"
-#define YAHOO_YCHT_PORT 8002
-#define YCHT_VERSION (0xae)
-#define YCHT_HEADER_LEN (0x10)
- YCHT_SERVICE_LOGIN = 0x01,
- YCHT_SERVICE_LOGOUT = 0x02,
- YCHT_SERVICE_CHATJOIN = 0x11,
- YCHT_SERVICE_CHATPART = 0x12,
- YCHT_SERVICE_CHATMSG = 0x41,
- YCHT_SERVICE_CHATMSG_EMOTE = 0x43,
- YCHT_SERVICE_PING = 0x62,
- YCHT_SERVICE_ONLINE_FRIENDS = 0x68
-yahoo: YCHT Service: 0x11 Version: 0x100
-yahoo: Data[0]: Linux, FreeBSD, Solaris:1
-yahoo: Data[1]: Questions, problems and discussions about all flavors of Unix.
-yahoo: Data[4]: sgooki888\0020\002 \0022769036\00258936\002
-yahoo: --==End of incoming YCHT packet==--
-yahoo: --==Incoming YCHT packet==--
-yahoo: YCHT Service: 0x12 Version: 0x100
-yahoo: Data[0]: Linux, FreeBSD, Solaris:1
-yahoo: Data[1]: cccc4cccc
-yahoo: --==End of incoming YCHT packet==--
-#define YCHT_SEP "\xc0\x80"
-typedef struct _YchtConn {
- gboolean changing_rooms;
- PurpleCircBuffer *txbuf;
-void ycht_connection_open(PurpleConnection *gc);
-void ycht_connection_close(YchtConn *ycht);
-void ycht_chat_join(YchtConn *ycht, const char *room);
-int ycht_chat_send(YchtConn *ycht, const char *room, const char *what);
-void ycht_chat_leave(YchtConn *ycht, const char *room, gboolean logout);
-void ycht_chat_send_invite(YchtConn *ycht, const char *room, const char *buddy, const char *msg);
-void ycht_chat_goto_user(YchtConn *ycht, const char *name);
-void ycht_chat_send_keepalive(YchtConn *ycht);
-#endif /* _PURPLE_YCHT_H_ */
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Resources/English.lproj/InfoPlist.strings Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-/* Localized versions of Info.plist keys */
-CFBundleName = "libpurple";
--- a/Frameworks/libpurple.framework/Versions/0.10.0/Resources/Info.plist Tue May 08 18:05:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
- <key>CFBundleDevelopmentRegion</key>
- <string>English</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <key>CFBundlePackageType</key>
- <key>CFBundleSignature</key>
- <key>CFBundleVersion</key>
- <string>0.0.1d1</string>
- <key>CFBundleIdentifier</key>
- <string>im.pidgin.libpurple</string>
Binary file Frameworks/libpurple.framework/Versions/0.10.0/Resources/bn_IN/LC_MESSAGES/pidgin.mo has changed
Binary file Frameworks/libpurple.framework/Versions/0.10.0/Resources/ca/LC_MESSAGES/pidgin.mo has changed
Binary file Frameworks/libpurple.framework/Versions/0.10.0/Resources/cs/LC_MESSAGES/pidgin.mo has changed
Binary file Frameworks/libpurple.framework/Versions/0.10.0/Resources/da/LC_MESSAGES/pidgin.mo has changed
Binary file Frameworks/libpurple.framework/Versions/0.10.0/Resources/de/LC_MESSAGES/libgpg-error.mo has changed
Binary file Frameworks/libpurple.framework/Versions/0.10.0/Resources/de/LC_MESSAGES/pidgin.mo has changed
Binary file Frameworks/libpurple.framework/Versions/0.10.0/Resources/el/LC_MESSAGES/pidgin.mo has changed
Binary file Frameworks/libpurple.framework/Versions/0.10.0/Resources/en_AU/LC_MESSAGES/pidgin.mo has changed
Binary file Frameworks/libpurple.framework/Versions/0.10.0/Resources/en_CA/LC_MESSAGES/pidgin.mo has changed
Binary file Frameworks/libpurple.framework/Versions/0.10.0/Resources/en_GB/LC_MESSAGES/pidgin.mo has changed
Binary file Frameworks/libpurple.framework/Versions/0.10.0/Resources/es/LC_MESSAGES/pidgin.mo has changed
Binary file Frameworks/libpurple.framework/Versions/0.10.0/Resources/fi/LC_MESSAGES/pidgin.mo has changed
Binary file Frameworks/libpurple.framework/Versions/0.10.0/Resources/fr/LC_MESSAGES/libgpg-error.mo has changed
Binary file Frameworks/libpurple.framework/Versions/0.10.0/Resources/fr/LC_MESSAGES/pidgin.mo has changed
Binary file Frameworks/libpurple.framework/Versions/0.10.0/Resources/hr/LC_MESSAGES/pidgin.mo has changed
Binary file Frameworks/libpurple.framework/Versions/0.10.0/Resources/hu/LC_MESSAGES/pidgin.mo has changed
Binary file Frameworks/libpurple.framework/Versions/0.10.0/Resources/it/LC_MESSAGES/pidgin.mo has changed