buddylist.xs

来自「Linux下的多协议即时通讯程序源代码」· XS 代码 · 共 407 行

XS
407
字号
#include "module.h"#include "../perl-handlers.h"MODULE = Purple::BuddyList  PACKAGE = Purple  PREFIX = purple_PROTOTYPES: ENABLEBOOT:{	HV *stash = gv_stashpv("Purple::BuddyList::Node", 1);	static const constiv *civ, const_iv[] = {#define const_iv(name) {#name, (IV)PURPLE_BLIST_##name##_NODE}		const_iv(GROUP),		const_iv(CONTACT),		const_iv(BUDDY),		const_iv(CHAT),		const_iv(OTHER),#undef const_iv#define const_iv(name) {#name, (IV)PURPLE_BLIST_NODE_FLAG_##name}		const_iv(NO_SAVE),	};	for (civ = const_iv + sizeof(const_iv) / sizeof(const_iv[0]); civ-- > const_iv; )		newCONSTSUB(stash, (char *)civ->name, newSViv(civ->iv));}Purple::BuddyListpurple_get_blist()voidpurple_set_blist(blist)	Purple::BuddyList blistMODULE = Purple::BuddyList  PACKAGE = Purple::Find  PREFIX = purple_find_PROTOTYPES: ENABLEPurple::BuddyList::Buddypurple_find_buddy(account, name)	Purple::Account account	const char * namevoidpurple_find_buddies(account, name)	Purple::Account account	const char * namePREINIT:	GSList *l;PPCODE:	for (l = purple_find_buddies(account, name); l != NULL; l = l->next) {		XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::BuddyList::Buddy")));	}Purple::BuddyList::Grouppurple_find_group(name)	const char *nameMODULE = Purple::BuddyList  PACKAGE = Purple::Find  PREFIX = purple_PROTOTYPES: ENABLEgbooleanpurple_group_on_account(group, account)	Purple::BuddyList::Group  group	Purple::Account accountMODULE = Purple::BuddyList  PACKAGE = Purple::BuddyList::Contact  PREFIX = purple_contact_PROTOTYPES: ENABLEPurple::BuddyList::Contactpurple_contact_new();Purple::BuddyList::Buddypurple_contact_get_priority_buddy(contact)	Purple::BuddyList::Contact contactvoidpurple_contact_set_alias(contact, alias)	Purple::BuddyList::Contact contact	const char * aliasconst char *purple_contact_get_alias(contact)	Purple::BuddyList::Contact contactgbooleanpurple_contact_on_account(contact, account)	Purple::BuddyList::Contact contact	Purple::Account accountvoidpurple_contact_invalidate_priority_buddy(contact)	Purple::BuddyList::Contact contactMODULE = Purple::BuddyList  PACKAGE = Purple::BuddyList::Group  PREFIX = purple_group_PROTOTYPES: ENABLEPurple::BuddyList::Grouppurple_group_new(name)	const char *namevoidpurple_group_get_accounts(group)	Purple::BuddyList::Group  groupPREINIT:	GSList *l;PPCODE:	for (l = purple_group_get_accounts(group); l != NULL; l = l->next) {		XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::Account")));	}gbooleanpurple_group_on_account(group, account)	Purple::BuddyList::Group  group	Purple::Account accountMODULE = Purple::BuddyList  PACKAGE = Purple::BuddyList  PREFIX = purple_blist_PROTOTYPES: ENABLEvoidpurple_blist_add_contact(contact, group, node)	Purple::BuddyList::Contact contact	Purple::BuddyList::Group  group	Purple::BuddyList::Node nodevoidpurple_blist_merge_contact(source, node)	Purple::BuddyList::Contact source	Purple::BuddyList::Node nodevoidpurple_blist_add_group(group, node)	Purple::BuddyList::Group  group	Purple::BuddyList::Node nodevoidpurple_blist_add_buddy(buddy, contact, group, node)	Purple::BuddyList::Buddy buddy	Purple::BuddyList::Contact contact	Purple::BuddyList::Group  group	Purple::BuddyList::Node nodevoidpurple_blist_remove_buddy(buddy)	Purple::BuddyList::Buddy buddyvoidpurple_blist_remove_contact(contact)	Purple::BuddyList::Contact contactvoidpurple_blist_remove_chat(chat)	Purple::BuddyList::Chat chatvoidpurple_blist_remove_group(group)	Purple::BuddyList::Group  groupPurple::BuddyList::Chatpurple_blist_find_chat(account, name)	Purple::Account account	const char *namevoidpurple_blist_add_chat(chat, group, node)	Purple::BuddyList::Chat chat	Purple::BuddyList::Group  group	Purple::BuddyList::Node nodePurple::BuddyListpurple_blist_new()voidpurple_blist_show()voidpurple_blist_destroy();voidpurple_blist_set_visible(show)	gboolean showvoidpurple_blist_update_buddy_status(buddy, old_status)	Purple::BuddyList::Buddy buddy	Purple::Status old_statusvoidpurple_blist_update_buddy_icon(buddy)	Purple::BuddyList::Buddy buddyvoidpurple_blist_rename_buddy(buddy, name)	Purple::BuddyList::Buddy buddy	const char * namevoidpurple_blist_alias_buddy(buddy, alias)	Purple::BuddyList::Buddy buddy	const char * aliasvoidpurple_blist_server_alias_buddy(buddy, alias)	Purple::BuddyList::Buddy buddy	const char * aliasvoidpurple_blist_alias_chat(chat, alias)	Purple::BuddyList::Chat chat	const char * aliasvoidpurple_blist_rename_group(group, name)	Purple::BuddyList::Group  group	const char * namevoidpurple_blist_add_account(account)	Purple::Account accountvoidpurple_blist_remove_account(account)	Purple::Account accountintpurple_blist_get_group_size(group, offline)	Purple::BuddyList::Group  group	gboolean offlineintpurple_blist_get_group_online_count(group)	Purple::BuddyList::Group  groupvoidpurple_blist_load()voidpurple_blist_schedule_save()voidpurple_blist_request_add_group()voidpurple_blist_set_ui_ops(ops)	Purple::BuddyList::UiOps opsPurple::BuddyList::UiOpspurple_blist_get_ui_ops()Purple::Handlepurple_blist_get_handle()voidpurple_blist_init()voidpurple_blist_uninit()MODULE = Purple::BuddyList  PACKAGE = Purple::BuddyList::Node  PREFIX = purple_blist_node_PROTOTYPES: ENABLEvoidpurple_blist_node_get_extended_menu(node)	Purple::BuddyList::Node nodePREINIT:	GList *l;PPCODE:	for (l = purple_blist_node_get_extended_menu(node); l != NULL; l = l->next) {		XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::Menu::Action")));	}voidpurple_blist_node_set_bool(node, key, value)	Purple::BuddyList::Node node	const char * key	gboolean valuegbooleanpurple_blist_node_get_bool(node, key)	Purple::BuddyList::Node node	const char * keyvoidpurple_blist_node_set_int(node, key, value)	Purple::BuddyList::Node node	const char * key	int valueintpurple_blist_node_get_int(node, key)	Purple::BuddyList::Node node	const char * keyconst char *purple_blist_node_get_string(node, key)	Purple::BuddyList::Node node	const char * keyvoidpurple_blist_node_remove_setting(node, key)	Purple::BuddyList::Node node	const char * keyvoidpurple_blist_node_set_flags(node, flags)	Purple::BuddyList::Node node	Purple::BuddyList::NodeFlags flagsPurple::BuddyList::NodeFlagspurple_blist_node_get_flags(node)	Purple::BuddyList::Node nodeMODULE = Purple::BuddyList  PACKAGE = Purple::BuddyList::Chat  PREFIX = purple_chat_PROTOTYPES: ENABLEPurple::BuddyList::Grouppurple_chat_get_group(chat)	Purple::BuddyList::Chat chatconst char *purple_chat_get_name(chat)	Purple::BuddyList::Chat chatPurple::BuddyList::Chatpurple_chat_new(account, alias, components)	Purple::Account account	const char * alias	SV * componentsINIT:	HV * t_HV;	HE * t_HE;	SV * t_SV;	GHashTable * t_GHash;	I32 len;	char *t_key, *t_value;CODE:	t_HV =  (HV *)SvRV(components);	t_GHash = g_hash_table_new(g_str_hash, g_str_equal);	for (t_HE = hv_iternext(t_HV); t_HE != NULL; t_HE = hv_iternext(t_HV) ) {		t_key = hv_iterkey(t_HE, &len);		t_SV = *hv_fetch(t_HV, t_key, len, 0);		t_value = SvPV(t_SV, PL_na);		g_hash_table_insert(t_GHash, t_key, t_value);	}	RETVAL = purple_chat_new(account, alias, t_GHash);OUTPUT:	RETVALMODULE = Purple::BuddyList  PACKAGE = Purple::BuddyList::Buddy  PREFIX = purple_buddy_PROTOTYPES: ENABLEPurple::BuddyList::Buddypurple_buddy_new(account, screenname, alias)	Purple::Account account	const char *screenname	const char *aliasconst char *purple_buddy_get_server_alias(buddy)    Purple::BuddyList::Buddy buddyvoidpurple_buddy_set_icon(buddy, icon)	Purple::BuddyList::Buddy buddy	Purple::Buddy::Icon iconPurple::Accountpurple_buddy_get_account(buddy)	Purple::BuddyList::Buddy buddyPurple::BuddyList::Grouppurple_buddy_get_group(buddy)	Purple::BuddyList::Buddy buddyconst char *purple_buddy_get_name(buddy)	Purple::BuddyList::Buddy buddyPurple::Buddy::Iconpurple_buddy_get_icon(buddy)	Purple::BuddyList::Buddy buddyPurple::BuddyList::Contactpurple_buddy_get_contact(buddy)	Purple::BuddyList::Buddy buddyPurple::Presencepurple_buddy_get_presence(buddy)	Purple::BuddyList::Buddy buddyconst char *purple_buddy_get_alias_only(buddy)	Purple::BuddyList::Buddy buddyconst char *purple_buddy_get_contact_alias(buddy)	Purple::BuddyList::Buddy buddyconst char *purple_buddy_get_local_alias(buddy)	Purple::BuddyList::Buddy buddyconst char *purple_buddy_get_alias(buddy)	Purple::BuddyList::Buddy buddy

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?