# HG changeset patch # User Richard Laager # Date 1177998866 0 # Node ID 4cb9f5cc07bab0e4ea0ced977312d471bf166319 # Parent 3bd360f26a9ee5232ff02f5a7ee5477e5427e115# Parent ccce74d54eddfa7d9d769b8cc1cafa29b6185c41 merge of 'c0c4c168411c9fbc5ccb9790a43e21a62f6dcd55' and 'e8735efa0f7ed48bdb06f7ca465f8efa06b81dde' diff -r 3bd360f26a9e -r 4cb9f5cc07ba libpurple/plugins/perl/Makefile.am --- a/libpurple/plugins/perl/Makefile.am Tue May 01 05:53:57 2007 +0000 +++ b/libpurple/plugins/perl/Makefile.am Tue May 01 05:54:26 2007 +0000 @@ -73,9 +73,9 @@ common/Util.xs \ common/XMLNode.xs \ common/module.h \ - common/typemap \ - common/fallback/const-c.inc \ - common/fallback/const-xs.inc + common/typemap +# common/fallback/const-c.inc \ +# common/fallback/const-xs.inc EXTRA_DIST = \ Makefile.mingw \ @@ -139,7 +139,7 @@ done @rm -f Makefile - @rm -f common/const-c.inc common/const-xs.inc +# @rm -f common/const-c.inc common/const-xs.inc @if test "x${top_srcdir}" != "x${top_builddir}"; then \ for f in ${common_sources}; do \ diff -r 3bd360f26a9e -r 4cb9f5cc07ba libpurple/plugins/perl/common/BuddyList.xs --- a/libpurple/plugins/perl/common/BuddyList.xs Tue May 01 05:53:57 2007 +0000 +++ b/libpurple/plugins/perl/common/BuddyList.xs Tue May 01 05:54:26 2007 +0000 @@ -4,6 +4,26 @@ MODULE = Purple::BuddyList PACKAGE = Purple PREFIX = purple_ PROTOTYPES: ENABLE +BOOT: +{ + 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::BuddyList purple_get_blist() @@ -30,15 +50,18 @@ XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::BuddyList::Buddy"))); } +Purple::BuddyList::Group +purple_find_group(name) + const char *name + +MODULE = Purple::BuddyList PACKAGE = Purple::Find PREFIX = purple_ +PROTOTYPES: ENABLE + gboolean purple_group_on_account(group, account) Purple::BuddyList::Group group Purple::Account account -Purple::BuddyList::Group -purple_find_group(name) - const char *name - MODULE = Purple::BuddyList PACKAGE = Purple::BuddyList::Contact PREFIX = purple_contact_ PROTOTYPES: ENABLE diff -r 3bd360f26a9e -r 4cb9f5cc07ba libpurple/plugins/perl/common/Cmds.xs --- a/libpurple/plugins/perl/common/Cmds.xs Tue May 01 05:53:57 2007 +0000 +++ b/libpurple/plugins/perl/common/Cmds.xs Tue May 01 05:54:26 2007 +0000 @@ -4,6 +4,63 @@ MODULE = Purple::Cmd PACKAGE = Purple::Cmd PREFIX = purple_cmd_ PROTOTYPES: ENABLE +BOOT: +{ + HV *status_stash = gv_stashpv("Purple::Cmd::Status", 1); + HV *ret_stash = gv_stashpv("Purple::Cmd::Return", 1); + HV *p_stash = gv_stashpv("Purple::Cmd::Priority", 1); + HV *flag_stash = gv_stashpv("Purple::Cmd::Flag", 1); + + static const constiv *civ, status_const_iv[] = { +#define const_iv(name) {#name, (IV)PURPLE_CMD_STATUS_##name} + const_iv(OK), + const_iv(FAILED), + const_iv(NOT_FOUND), + const_iv(WRONG_ARGS), + const_iv(WRONG_PRPL), + const_iv(WRONG_TYPE), + }; + static const constiv ret_const_iv[] = { +#undef const_iv +#define const_iv(name) {#name, (IV)PURPLE_CMD_RET_##name} + const_iv(OK), + const_iv(FAILED), + const_iv(CONTINUE), + }; + static const constiv p_const_iv[] = { +#undef const_iv +#define const_iv(name) {#name, (IV)PURPLE_CMD_P_##name} + const_iv(VERY_LOW), + const_iv(LOW), + const_iv(DEFAULT), + const_iv(PRPL), + const_iv(PLUGIN), + const_iv(ALIAS), + const_iv(HIGH), + const_iv(VERY_HIGH), + }; + static const constiv flag_const_iv[] = { +#undef const_iv +#define const_iv(name) {#name, (IV)PURPLE_CMD_FLAG_##name} + const_iv(IM), + const_iv(CHAT), + const_iv(PRPL_ONLY), + const_iv(ALLOW_WRONG_ARGS), + }; + + for (civ = status_const_iv + sizeof(status_const_iv) / sizeof(status_const_iv[0]); civ-- > status_const_iv;) + newCONSTSUB(status_stash, (char *)civ->name, newSViv(civ->iv)); + + for (civ = ret_const_iv + sizeof(ret_const_iv) / sizeof(ret_const_iv[0]); civ-- > ret_const_iv;) + newCONSTSUB(ret_stash, (char *)civ->name, newSViv(civ->iv)); + + for (civ = p_const_iv + sizeof(p_const_iv) / sizeof(p_const_iv[0]); civ-- > p_const_iv;) + newCONSTSUB(p_stash, (char *)civ->name, newSViv(civ->iv)); + + for (civ = flag_const_iv + sizeof(flag_const_iv) / sizeof(flag_const_iv[0]); civ-- > flag_const_iv;) + newCONSTSUB(flag_stash, (char *)civ->name, newSViv(civ->iv)); +} + void purple_cmd_help(conv, command) Purple::Conversation conv diff -r 3bd360f26a9e -r 4cb9f5cc07ba libpurple/plugins/perl/common/Connection.xs --- a/libpurple/plugins/perl/common/Connection.xs Tue May 01 05:53:57 2007 +0000 +++ b/libpurple/plugins/perl/common/Connection.xs Tue May 01 05:54:26 2007 +0000 @@ -3,6 +3,21 @@ MODULE = Purple::Connection PACKAGE = Purple::Connection PREFIX = purple_connection_ PROTOTYPES: ENABLE +BOOT: +{ + HV *stash = gv_stashpv("Purple::Connection::State", 1); + + static const constiv *civ, const_iv[] = { +#define const_iv(name) {#name, (IV)PURPLE_##name} + const_iv(DISCONNECTED), + const_iv(CONNECTED), + const_iv(CONNECTING), + }; + + for (civ = const_iv + sizeof(const_iv) / sizeof(const_iv[0]); civ-- > const_iv; ) + newCONSTSUB(stash, (char *)civ->name, newSViv(civ->iv)); +} + Purple::Account purple_connection_get_account(gc) Purple::Connection gc diff -r 3bd360f26a9e -r 4cb9f5cc07ba libpurple/plugins/perl/common/Conversation.xs --- a/libpurple/plugins/perl/common/Conversation.xs Tue May 01 05:53:57 2007 +0000 +++ b/libpurple/plugins/perl/common/Conversation.xs Tue May 01 05:54:26 2007 +0000 @@ -3,6 +3,93 @@ MODULE = Purple::Conversation PACKAGE = Purple PREFIX = purple_ PROTOTYPES: ENABLE +BOOT: +{ + HV *type_stash = gv_stashpv("Purple::Conversation::Type", 1); + HV *update_stash = gv_stashpv("Purple::Conversation::Update::Type", 1); + HV *typing_stash = gv_stashpv("Purple::Conversation::TypingState", 1); + HV *flags_stash = gv_stashpv("Purple::Conversation::Flags", 1); + HV *cbflags_stash = gv_stashpv("Purple::Conversation::ChatBuddy::Flags", 1); + + static const constiv *civ, type_const_iv[] = { +#define const_iv(name) {#name, (IV)PURPLE_CONV_TYPE_##name} + const_iv(UNKNOWN), + const_iv(IM), + const_iv(CHAT), + const_iv(MISC), + const_iv(ANY), + }; + static const constiv update_const_iv[] = { +#undef const_iv +#define const_iv(name) {#name, (IV)PURPLE_CONV_UPDATE_##name} + const_iv(ADD), + const_iv(REMOVE), + const_iv(ACCOUNT), + const_iv(TYPING), + const_iv(UNSEEN), + const_iv(LOGGING), + const_iv(TOPIC), +/* + const_iv(ONLINE), + const_iv(OFFLINE), +*/ + const_iv(AWAY), + const_iv(ICON), + const_iv(TITLE), + const_iv(CHATLEFT), + const_iv(FEATURES), + }; + static const constiv typing_const_iv[] = { +#undef const_iv +#define const_iv(name) {#name, (IV)PURPLE_##name} + const_iv(NOT_TYPING), + const_iv(TYPING), + const_iv(TYPED), + }; + static const constiv flags_const_iv[] = { +#undef const_iv +#define const_iv(name) {#name, (IV)PURPLE_MESSAGE_##name} + const_iv(SEND), + const_iv(RECV), + const_iv(SYSTEM), + const_iv(AUTO_RESP), + const_iv(ACTIVE_ONLY), + const_iv(NICK), + const_iv(NO_LOG), + const_iv(WHISPER), + const_iv(ERROR), + const_iv(DELAYED), + const_iv(RAW), + const_iv(IMAGES), + const_iv(NOTIFY), + }; + static const constiv cbflags_const_iv[] = { +#undef const_iv +#define const_iv(name) {#name, (IV)PURPLE_CBFLAGS_##name} + const_iv(NONE), + const_iv(VOICE), + const_iv(HALFOP), + const_iv(OP), + const_iv(FOUNDER), + const_iv(TYPING), + }; + + for (civ = type_const_iv + sizeof(type_const_iv) / sizeof(type_const_iv[0]); civ-- > type_const_iv; ) + newCONSTSUB(type_stash, (char *)civ->name, newSViv(civ->iv)); + + for (civ = update_const_iv + sizeof(update_const_iv) / sizeof(update_const_iv[0]); civ-- > update_const_iv; ) + newCONSTSUB(update_stash, (char *)civ->name, newSViv(civ->iv)); + + for (civ = typing_const_iv + sizeof(typing_const_iv) / sizeof(typing_const_iv[0]); civ-- > typing_const_iv; ) + newCONSTSUB(typing_stash, (char *)civ->name, newSViv(civ->iv)); + + for (civ = flags_const_iv + sizeof(flags_const_iv) / sizeof(flags_const_iv[0]); civ-- > flags_const_iv; ) + newCONSTSUB(flags_stash, (char *)civ->name, newSViv(civ->iv)); + + for (civ = cbflags_const_iv + sizeof(cbflags_const_iv) / sizeof(cbflags_const_iv[0]); civ-- > cbflags_const_iv; ) + newCONSTSUB(cbflags_stash, (char *)civ->name, newSViv(civ->iv)); +} + void purple_get_ims() PREINIT: diff -r 3bd360f26a9e -r 4cb9f5cc07ba libpurple/plugins/perl/common/Debug.xs --- a/libpurple/plugins/perl/common/Debug.xs Tue May 01 05:53:57 2007 +0000 +++ b/libpurple/plugins/perl/common/Debug.xs Tue May 01 05:54:26 2007 +0000 @@ -3,6 +3,24 @@ MODULE = Purple::Debug PACKAGE = Purple::Debug PREFIX = purple_debug_ PROTOTYPES: ENABLE +BOOT: +{ + HV *stash = gv_stashpv("Purple::Debug", 1); + + static const constiv *civ, const_iv[] = { +#define const_iv(name) {#name, (IV)PURPLE_DEBUG_##name} + const_iv(ALL), + const_iv(MISC), + const_iv(INFO), + const_iv(WARNING), + const_iv(ERROR), + const_iv(FATAL), + }; + + for (civ = const_iv + sizeof(const_iv) / sizeof(const_iv[0]); civ-- > const_iv; ) + newCONSTSUB(stash, (char *)civ->name, newSViv(civ->iv)); +} + void purple_debug(level, category, string) Purple::DebugLevel level diff -r 3bd360f26a9e -r 4cb9f5cc07ba libpurple/plugins/perl/common/FT.xs --- a/libpurple/plugins/perl/common/FT.xs Tue May 01 05:53:57 2007 +0000 +++ b/libpurple/plugins/perl/common/FT.xs Tue May 01 05:54:26 2007 +0000 @@ -3,6 +3,36 @@ MODULE = Purple::Xfer PACKAGE = Purple::Xfer PREFIX = purple_xfer_ PROTOTYPES: ENABLE +BOOT: +{ + HV *type_stash = gv_stashpv("Purple::Xfer::Type", 1); + HV *status_stash = gv_stashpv("Purple::Xfer::Status", 1); + + static const constiv *civ, type_const_iv[] = { +#define const_iv(name) {#name, (IV)PURPLE_XFER_##name} + const_iv(UNKNOWN), + const_iv(SEND), + const_iv(RECEIVE), + }; + static const constiv status_const_iv[] = { +#undef const_iv +#define const_iv(name) {#name, (IV)PURPLE_XFER_STATUS_##name} + const_iv(UNKNOWN), + const_iv(NOT_STARTED), + const_iv(ACCEPTED), + const_iv(STARTED), + const_iv(DONE), + const_iv(CANCEL_LOCAL), + const_iv(CANCEL_REMOTE), + }; + + for (civ = type_const_iv + sizeof(type_const_iv) / sizeof(type_const_iv[0]); civ-- > type_const_iv; ) + newCONSTSUB(type_stash, (char *)civ->name, newSViv(civ->iv)); + + for (civ = status_const_iv + sizeof(status_const_iv) / sizeof(status_const_iv[0]); civ-- > status_const_iv; ) + newCONSTSUB(status_stash, (char *)civ->name, newSViv(civ->iv)); +} + Purple::Xfer purple_xfer_new(class, account, type, who) Purple::Account account diff -r 3bd360f26a9e -r 4cb9f5cc07ba libpurple/plugins/perl/common/Log.xs --- a/libpurple/plugins/perl/common/Log.xs Tue May 01 05:53:57 2007 +0000 +++ b/libpurple/plugins/perl/common/Log.xs Tue May 01 05:54:26 2007 +0000 @@ -3,6 +3,30 @@ MODULE = Purple::Log PACKAGE = Purple::Log PREFIX = purple_log_ PROTOTYPES: ENABLE +BOOT: +{ + HV *type_stash = gv_stashpv("Purple::Log::Type", 1); + HV *flags_stash = gv_stashpv("Purple::Log:ReadFlags::", 1); + + static const constiv *civ, type_const_iv[] = { +#define const_iv(name) {#name, (IV)PURPLE_LOG_##name} + const_iv(IM), + const_iv(CHAT), + const_iv(SYSTEM), + }; + static const constiv flags_const_iv[] = { +#undef const_iv +#define const_iv(name) {#name, (IV)PURPLE_LOG_READ_##name} + const_iv(NO_NEWLINE), + }; + + for (civ = type_const_iv + sizeof(type_const_iv) / sizeof(type_const_iv[0]); civ-- > type_const_iv; ) + newCONSTSUB(type_stash, (char *)civ->name, newSViv(civ->iv)); + + for (civ = flags_const_iv + sizeof(flags_const_iv) / sizeof(flags_const_iv[0]); civ-- > flags_const_iv; ) + newCONSTSUB(flags_stash, (char *)civ->name, newSViv(civ->iv)); +} + int purple_log_common_sizer(log) Purple::Log log diff -r 3bd360f26a9e -r 4cb9f5cc07ba libpurple/plugins/perl/common/Makefile.PL.in --- a/libpurple/plugins/perl/common/Makefile.PL.in Tue May 01 05:53:57 2007 +0000 +++ b/libpurple/plugins/perl/common/Makefile.PL.in Tue May 01 05:54:26 2007 +0000 @@ -14,26 +14,3 @@ 'OBJECT' => '$(O_FILES)', # link all the C files too # 'OPTIMIZE' => '-g', # For debugging ); - -if (eval {require ExtUtils::Constant; 1}) { - foreach (qw(PURPLE_DEBUG_ALL PURPLE_DEBUG_MISC PURPLE_DEBUG_INFO - PURPLE_DEBUG_WARNING PURPLE_DEBUG_ERROR PURPLE_DEBUG_FATAL)) { - push @names, {name => $_, type => "IV", macro => 1}; - } - - ExtUtils::Constant::WriteConstants( - NAME => 'Purple::DebugLevel', - NAMES => \@names, - C_FILE => 'const-c.inc', - XS_FILE => 'const-xs.inc' - ); -} -else { - use File::Copy; - use File::Spec; - - foreach my $file ('const-c.inc', 'const-xs.inc') { - my $fallback = File::Spec->catfile('fallback', $file); - copy ($fallback, $file) or die "Can't copy $fallback to $file: $!"; - } -} diff -r 3bd360f26a9e -r 4cb9f5cc07ba libpurple/plugins/perl/common/Makefile.mingw --- a/libpurple/plugins/perl/common/Makefile.mingw Tue May 01 05:53:57 2007 +0000 +++ b/libpurple/plugins/perl/common/Makefile.mingw Tue May 01 05:54:26 2007 +0000 @@ -68,7 +68,7 @@ Util.xs \ XMLNode.xs -FALLBACKS = const-c.inc const-xs.inc +#FALLBACKS = const-c.inc const-xs.inc C_FILES = $(XS_FILES:%.xs=%.c) OBJECTS = $(C_FILES:%.c=%.o) diff -r 3bd360f26a9e -r 4cb9f5cc07ba libpurple/plugins/perl/common/Notify.xs --- a/libpurple/plugins/perl/common/Notify.xs Tue May 01 05:53:57 2007 +0000 +++ b/libpurple/plugins/perl/common/Notify.xs Tue May 01 05:54:26 2007 +0000 @@ -3,6 +3,47 @@ MODULE = Purple::Notify PACKAGE = Purple::Notify PREFIX = purple_notify_ PROTOTYPES: ENABLE +BOOT: +{ + HV *type_stash = gv_stashpv("Purple::Notify::Type", 1); + HV *msg_type_stash = gv_stashpv("Purple::Notify:Msg", 1); + HV *user_info_stash = gv_stashpv("Purple::NotifyUserInfo::Type", 1); + + static const constiv *civ, type_const_iv[] = { +#define const_iv(name) {#name, (IV)PURPLE_NOTIFY_##name} + const_iv(MESSAGE), + const_iv(EMAIL), + const_iv(EMAILS), + const_iv(FORMATTED), + const_iv(SEARCHRESULTS), + const_iv(USERINFO), + const_iv(URI), + }; + static const constiv msg_type_const_iv[] = { +#undef const_iv +#define const_iv(name) {#name, (IV)PURPLE_NOTIFY_MSG_##name} + const_iv(ERROR), + const_iv(WARNING), + const_iv(INFO), + }; + static const constiv user_info_const_iv[] = { +#undef const_iv +#define const_iv(name) {#name, (IV)PURPLE_NOTIFY_USER_INFO_ENTRY_##name} + const_iv(PAIR), + const_iv(SECTION_BREAK), + const_iv(SECTION_HEADER), + }; + + for (civ = type_const_iv + sizeof(type_const_iv) / sizeof(type_const_iv[0]); civ-- > type_const_iv; ) + newCONSTSUB(type_stash, (char *)civ->name, newSViv(civ->iv)); + + for (civ = msg_type_const_iv + sizeof(msg_type_const_iv) / sizeof(msg_type_const_iv[0]); civ-- > msg_type_const_iv; ) + newCONSTSUB(msg_type_stash, (char *)civ->name, newSViv(civ->iv)); + + for (civ = user_info_const_iv + sizeof(user_info_const_iv) / sizeof(user_info_const_iv[0]); civ-- > user_info_const_iv; ) + newCONSTSUB(user_info_stash, (char *)civ->name, newSViv(civ->iv)); +} + void purple_notify_close(type, ui_handle) Purple::NotifyType type @@ -52,8 +93,44 @@ Purple::NotifyCloseCallback cb gpointer user_data +Purple::NotifyUiOps +purple_notify_get_ui_ops() + +void +purple_notify_set_ui_ops(ops) + Purple::NotifyUiOps ops + +void * +purple_notify_message(handle, type, title, primary, secondary, cb, user_data) + void * handle + Purple::NotifyMsgType type + const char *title + const char *primary + const char *secondary + Purple::NotifyCloseCallback cb + gpointer user_data + +void * +purple_notify_searchresults(gc, title, primary, secondary, results, cb, user_data) + Purple::Connection gc + const char *title + const char *primary + const char *secondary + Purple::NotifySearchResults results + Purple::NotifyCloseCallback cb + gpointer user_data + +void * +purple_notify_uri(handle, uri) + void * handle + const char *uri + +MODULE = Purple::Notify PACKAGE = Purple::NotifyUserInfo PREFIX = purple_notify_user_info_ +PROTOTYPES: ENABLE + Purple::NotifyUserInfo -purple_notify_user_info_new() +purple_notify_user_info_new(class) + C_ARGS: /* void */ void purple_notify_user_info_destroy(user_info) @@ -102,37 +179,3 @@ gchar * purple_notify_user_info_entry_get_value(user_info_entry) Purple::NotifyUserInfoEntry user_info_entry - -Purple::NotifyUiOps -purple_notify_get_ui_ops() - - -void * -purple_notify_message(handle, type, title, primary, secondary, cb, user_data) - void * handle - Purple::NotifyMsgType type - const char *title - const char *primary - const char *secondary - Purple::NotifyCloseCallback cb - gpointer user_data - -void * -purple_notify_searchresults(gc, title, primary, secondary, results, cb, user_data) - Purple::Connection gc - const char *title - const char *primary - const char *secondary - Purple::NotifySearchResults results - Purple::NotifyCloseCallback cb - gpointer user_data - -void -purple_notify_set_ui_ops(ops) - Purple::NotifyUiOps ops - -void * -purple_notify_uri(handle, uri) - void * handle - const char *uri - diff -r 3bd360f26a9e -r 4cb9f5cc07ba libpurple/plugins/perl/common/Plugin.xs --- a/libpurple/plugins/perl/common/Plugin.xs Tue May 01 05:53:57 2007 +0000 +++ b/libpurple/plugins/perl/common/Plugin.xs Tue May 01 05:54:26 2007 +0000 @@ -3,6 +3,22 @@ MODULE = Purple::Plugin PACKAGE = Purple::Plugin PREFIX = purple_plugin_ PROTOTYPES: ENABLE +BOOT: +{ + HV *stash = gv_stashpv("Purple::Plugin::Type", 1); + + static const constiv *civ, const_iv[] = { +#define const_iv(name) {#name, (IV)PURPLE_PLUGIN_##name} + const_iv(UNKNOWN), + const_iv(STANDARD), + const_iv(LOADER), + const_iv(PROTOCOL), + }; + + for (civ = const_iv + sizeof(const_iv) / sizeof(const_iv[0]); civ-- > const_iv; ) + newCONSTSUB(stash, (char *)civ->name, newSViv(civ->iv)); +} + Purple::Plugin purple_plugin_new(native, path) gboolean native diff -r 3bd360f26a9e -r 4cb9f5cc07ba libpurple/plugins/perl/common/PluginPref.xs --- a/libpurple/plugins/perl/common/PluginPref.xs Tue May 01 05:53:57 2007 +0000 +++ b/libpurple/plugins/perl/common/PluginPref.xs Tue May 01 05:54:26 2007 +0000 @@ -3,6 +3,33 @@ MODULE = Purple::PluginPref PACKAGE = Purple::PluginPref::Frame PREFIX = purple_plugin_pref_frame_ PROTOTYPES: ENABLE +BOOT: +{ + HV *string_format_stash = gv_stashpv("Purple::String::Format::Type", 1); + HV *plugin_pref_stash = gv_stashpv("Purple::PluginPref::Type", 1); + + static const constiv *civ, string_format_const_iv[] = { +#define const_iv(name) {#name, (IV)PURPLE_STRING_FORMAT_TYPE_##name} + const_iv(NONE), + const_iv(MULTILINE), + const_iv(HTML), + }; + static const constiv plugin_pref_const_iv[] = { +#undef const_iv +#define const_iv(name) {#name, (IV)PURPLE_PLUGIN_PREF_##name} + const_iv(NONE), + const_iv(CHOICE), + const_iv(INFO), + const_iv(STRING_FORMAT), + }; + + for (civ = string_format_const_iv + sizeof(string_format_const_iv) / sizeof(string_format_const_iv[0]); civ-- > string_format_const_iv; ) + newCONSTSUB(string_format_stash, (char *)civ->name, newSViv(civ->iv)); + + for (civ = plugin_pref_const_iv + sizeof(plugin_pref_const_iv) / sizeof(plugin_pref_const_iv[0]); civ-- > plugin_pref_const_iv; ) + newCONSTSUB(plugin_pref_stash, (char *)civ->name, newSViv(civ->iv)); +} + void purple_plugin_pref_frame_add(frame, pref) Purple::PluginPref::Frame frame diff -r 3bd360f26a9e -r 4cb9f5cc07ba libpurple/plugins/perl/common/Pounce.xs --- a/libpurple/plugins/perl/common/Pounce.xs Tue May 01 05:53:57 2007 +0000 +++ b/libpurple/plugins/perl/common/Pounce.xs Tue May 01 05:54:26 2007 +0000 @@ -3,6 +3,39 @@ MODULE = Purple::Pounce PACKAGE = Purple::Pounce PREFIX = purple_pounce_ PROTOTYPES: ENABLE +BOOT: +{ + HV *event_stash = gv_stashpv("Purple::Pounce::Event", 1); + HV *option_stash = gv_stashpv("Purple::Pounce::Option", 1); + + static const constiv *civ, event_const_iv[] = { +#define const_iv(name) {#name, (IV)PURPLE_POUNCE_##name} + const_iv(NONE), + const_iv(SIGNON), + const_iv(SIGNOFF), + const_iv(AWAY), + const_iv(AWAY_RETURN), + const_iv(IDLE), + const_iv(IDLE_RETURN), + const_iv(TYPING), + const_iv(TYPED), + const_iv(TYPING_STOPPED), + const_iv(MESSAGE_RECEIVED), + }; + static const constiv option_const_iv[] = { +#undef const_iv +#define const_iv(name) {#name, (IV)PURPLE_POUNCE_OPTION_##name} + const_iv(NONE), + const_iv(AWAY), + }; + + for (civ = event_const_iv + sizeof(event_const_iv) / sizeof(event_const_iv[0]); civ-- > event_const_iv; ) + newCONSTSUB(event_stash, (char *)civ->name, newSViv(civ->iv)); + + for (civ = option_const_iv + sizeof(option_const_iv) / sizeof(option_const_iv[0]); civ-- > option_const_iv; ) + newCONSTSUB(option_stash, (char *)civ->name, newSViv(civ->iv)); +} + void purple_pounce_action_register(pounce, name) Purple::Pounce pounce diff -r 3bd360f26a9e -r 4cb9f5cc07ba libpurple/plugins/perl/common/Prefs.xs --- a/libpurple/plugins/perl/common/Prefs.xs Tue May 01 05:53:57 2007 +0000 +++ b/libpurple/plugins/perl/common/Prefs.xs Tue May 01 05:54:26 2007 +0000 @@ -3,6 +3,25 @@ MODULE = Purple::Prefs PACKAGE = Purple::Prefs PREFIX = purple_prefs_ PROTOTYPES: ENABLE +BOOT: +{ + HV *stash = gv_stashpv("Purple::Pref::Type", 1); + + static const constiv *civ, const_iv[] = { +#define const_iv(name) {#name, (IV)PURPLE_PREF_##name} + const_iv(NONE), + const_iv(BOOLEAN), + const_iv(INT), + const_iv(STRING), + const_iv(STRING_LIST), + const_iv(PATH), + const_iv(PATH_LIST), + }; + + for (civ = const_iv + sizeof(const_iv) / sizeof(const_iv[0]); civ-- > const_iv; ) + newCONSTSUB(stash, (char *)civ->name, newSViv(civ->iv)); +} + void purple_prefs_add_bool(name, value) const char *name diff -r 3bd360f26a9e -r 4cb9f5cc07ba libpurple/plugins/perl/common/Proxy.xs --- a/libpurple/plugins/perl/common/Proxy.xs Tue May 01 05:53:57 2007 +0000 +++ b/libpurple/plugins/perl/common/Proxy.xs Tue May 01 05:54:26 2007 +0000 @@ -3,13 +3,34 @@ MODULE = Purple::Proxy PACKAGE = Purple::Proxy PREFIX = purple_proxy_ PROTOTYPES: ENABLE -Purple::ProxyInfo -purple_global_proxy_get_info() +BOOT: +{ + HV *stash = gv_stashpv("Purple::ProxyType::", 1); + + static const constiv *civ, const_iv[] = { +#define const_iv(name) {#name, (IV)PURPLE_PROXY_##name} + const_iv(USE_GLOBAL), + const_iv(NONE), + const_iv(HTTP), + const_iv(SOCKS4), + const_iv(SOCKS5), + const_iv(USE_ENVVAR), + }; + + for (civ = const_iv + sizeof(const_iv) / sizeof(const_iv[0]); civ-- > const_iv; ) + newCONSTSUB(stash, (char *)civ->name, newSViv(civ->iv)); +} Purple::Handle purple_proxy_get_handle() void +purple_proxy_init() + +MODULE = Purple::Proxy PACKAGE = Purple::ProxyInfo PREFIX = purple_proxy_info_ +PROTOTYPES: ENABLE + +void purple_proxy_info_destroy(info) Purple::ProxyInfo info @@ -61,5 +82,8 @@ Purple::ProxyInfo info const char *username -void -purple_proxy_init() +MODULE = Purple::Proxy PACKAGE = Purple::Proxy PREFIX = purple_ +PROTOTYPES: ENABLE + +Purple::ProxyInfo +purple_global_proxy_get_info() diff -r 3bd360f26a9e -r 4cb9f5cc07ba libpurple/plugins/perl/common/Purple.xs --- a/libpurple/plugins/perl/common/Purple.xs Tue May 01 05:53:57 2007 +0000 +++ b/libpurple/plugins/perl/common/Purple.xs Tue May 01 05:54:26 2007 +0000 @@ -1,6 +1,5 @@ #include "module.h" #include "../perl-handlers.h" -#include "const-c.inc" /* Prototypes for the BOOT section below. */ PURPLE_PERL_BOOT_PROTO(Account); @@ -40,8 +39,6 @@ MODULE = Purple PACKAGE = Purple PREFIX = purple_ PROTOTYPES: ENABLE -INCLUDE: const-xs.inc - BOOT: PURPLE_PERL_BOOT(Account); PURPLE_PERL_BOOT(Account__Option); diff -r 3bd360f26a9e -r 4cb9f5cc07ba libpurple/plugins/perl/common/Request.xs --- a/libpurple/plugins/perl/common/Request.xs Tue May 01 05:53:57 2007 +0000 +++ b/libpurple/plugins/perl/common/Request.xs Tue May 01 05:54:26 2007 +0000 @@ -80,6 +80,41 @@ MODULE = Purple::Request PACKAGE = Purple::Request PREFIX = purple_request_ PROTOTYPES: ENABLE +BOOT: +{ + HV *request_stash = gv_stashpv("Purple::RequestType", 1); + HV *request_field_stash = gv_stashpv("Purple::RequestFieldType", 1); + + static const constiv *civ, request_const_iv[] = { +#define const_iv(name) {#name, (IV)PURPLE_REQUEST_##name} + const_iv(INPUT), + const_iv(CHOICE), + const_iv(ACTION), + const_iv(FIELDS), + const_iv(FILE), + const_iv(FOLDER), + }; + static const constiv request_field_const_iv[] = { +#undef const_iv +#define const_iv(name) {#name, (IV)PURPLE_REQUEST_FIELD_##name} + const_iv(NONE), + const_iv(STRING), + const_iv(INTEGER), + const_iv(BOOLEAN), + const_iv(CHOICE), + const_iv(LIST), + const_iv(LABEL), + const_iv(IMAGE), + const_iv(ACCOUNT), + }; + + for (civ = request_const_iv + sizeof(request_const_iv) / sizeof(request_const_iv[0]); civ-- > request_const_iv; ) + newCONSTSUB(request_stash, (char *)civ->name, newSViv(civ->iv)); + + for (civ = request_field_const_iv + sizeof(request_field_const_iv) / sizeof(request_field_const_iv[0]); civ-- > request_field_const_iv; ) + newCONSTSUB(request_field_stash, (char *)civ->name, newSViv(civ->iv)); +} + void * purple_request_input(handle, title, primary, secondary, default_value, multiline, masked, hint, ok_text, ok_cb, cancel_text, cancel_cb) Purple::Plugin handle @@ -170,9 +205,22 @@ purple_request_close_with_handle(handle) void * handle +Purple::Request::UiOps +purple_request_get_ui_ops() + +void +purple_request_set_ui_ops(ops) + Purple::Request::UiOps ops + MODULE = Purple::Request PACKAGE = Purple::Request::Field PREFIX = purple_request_field_ PROTOTYPES: ENABLE +Purple::Request::Field +purple_request_field_account_new(id, text, account = NULL) + const char *id + const char *text + Purple::Account account + Purple::Account purple_request_field_account_get_default_value(field) Purple::Request::Field field @@ -193,12 +241,6 @@ purple_request_field_account_get_value(field) Purple::Request::Field field -Purple::Request::Field -purple_request_field_account_new(id, text, account = NULL) - const char *id - const char *text - Purple::Account account - void purple_request_field_account_set_default_value(field, default_value) Purple::Request::Field field @@ -214,6 +256,15 @@ Purple::Request::Field field Purple::Account value +MODULE = Purple::Request PACKAGE = Purple::Request::Field PREFIX = purple_request_field_ +PROTOTYPES: ENABLE + +Purple::Request::Field +purple_request_field_bool_new(id, text, default_value = TRUE) + const char *id + const char *text + gboolean default_value + gboolean purple_request_field_bool_get_default_value(field) Purple::Request::Field field @@ -222,12 +273,6 @@ purple_request_field_bool_get_value(field) Purple::Request::Field field -Purple::Request::Field -purple_request_field_bool_new(id, text, default_value = TRUE) - const char *id - const char *text - gboolean default_value - void purple_request_field_bool_set_default_value(field, default_value) Purple::Request::Field field @@ -238,6 +283,15 @@ Purple::Request::Field field gboolean value +MODULE = Purple::Request PACKAGE = Purple::Request::Field PREFIX = purple_request_field_ +PROTOTYPES: ENABLE + +Purple::Request::Field +purple_request_field_choice_new(id, text, default_value = 0) + const char *id + const char *text + int default_value + void purple_request_field_choice_add(field, label) Purple::Request::Field field @@ -261,12 +315,6 @@ purple_request_field_choice_get_value(field) Purple::Request::Field field -Purple::Request::Field -purple_request_field_choice_new(id, text, default_value = 0) - const char *id - const char *text - int default_value - void purple_request_field_choice_set_default_value(field, default_value) Purple::Request::Field field @@ -277,25 +325,14 @@ Purple::Request::Field field int value -void -purple_request_field_destroy(field) - Purple::Request::Field field - -const char * -purple_request_field_get_id(field) - Purple::Request::Field field +MODULE = Purple::Request PACKAGE = Purple::Request::Field PREFIX = purple_request_field_ +PROTOTYPES: ENABLE -const char * -purple_request_field_get_label(field) - Purple::Request::Field field - -Purple::RequestFieldType -purple_request_field_get_type(field) - Purple::Request::Field field - -const char * -purple_request_field_get_type_hint(field) - Purple::Request::Field field +Purple::Request::Field +purple_request_field_int_new(id, text, default_value = 0) + const char *id + const char *text + int default_value int purple_request_field_int_get_default_value(field) @@ -305,12 +342,6 @@ purple_request_field_int_get_value(field) Purple::Request::Field field -Purple::Request::Field -purple_request_field_int_new(id, text, default_value = 0) - const char *id - const char *text - int default_value - void purple_request_field_int_set_default_value(field, default_value) Purple::Request::Field field @@ -325,15 +356,22 @@ purple_request_field_is_required(field) Purple::Request::Field field -gboolean -purple_request_field_is_visible(field) - Purple::Request::Field field +MODULE = Purple::Request PACKAGE = Purple::Request::Field PREFIX = purple_request_field_ +PROTOTYPES: ENABLE Purple::Request::Field purple_request_field_label_new(id, text) const char *id const char *text +MODULE = Purple::Request PACKAGE = Purple::Request::Field PREFIX = purple_request_field_ +PROTOTYPES: ENABLE + +Purple::Request::Field +purple_request_field_list_new(id, text) + const char *id + const char *text + void purple_request_field_list_add(field, item, data) Purple::Request::Field field @@ -383,16 +421,14 @@ Purple::Request::Field field const char *item -Purple::Request::Field -purple_request_field_list_new(id, text) - const char *id - const char *text - void purple_request_field_list_set_multi_select(field, multi_select) Purple::Request::Field field gboolean multi_select +MODULE = Purple::Request PACKAGE = Purple::Request::Field PREFIX = purple_request_field_ +PROTOTYPES: ENABLE + Purple::Request::Field purple_request_field_new(id, text, type) const char *id @@ -419,6 +455,16 @@ Purple::Request::Field field gboolean visible +MODULE = Purple::Request PACKAGE = Purple::Request::Field PREFIX = purple_request_field_ +PROTOTYPES: ENABLE + +Purple::Request::Field +purple_request_field_string_new(id, text, default_value, multiline) + const char *id + const char *text + const char *default_value + gboolean multiline + const char * purple_request_field_string_get_default_value(field) Purple::Request::Field field @@ -439,13 +485,6 @@ purple_request_field_string_is_multiline(field) Purple::Request::Field field -Purple::Request::Field -purple_request_field_string_new(id, text, default_value, multiline) - const char *id - const char *text - const char *default_value - gboolean multiline - void purple_request_field_string_set_default_value(field, default_value) Purple::Request::Field field @@ -466,13 +505,6 @@ Purple::Request::Field field const char *value -Purple::Request::UiOps -purple_request_get_ui_ops() - -void -purple_request_set_ui_ops(ops) - Purple::Request::UiOps ops - MODULE = Purple::Request PACKAGE = Purple::Request::Field::Group PREFIX = purple_request_field_group_ PROTOTYPES: ENABLE @@ -503,9 +535,39 @@ purple_request_field_group_new(title) const char *title +MODULE = Purple::Request PACKAGE = Purple::Request::Field PREFIX = purple_request_field_ +PROTOTYPES: ENABLE + +void +purple_request_field_destroy(field) + Purple::Request::Field field + +const char * +purple_request_field_get_id(field) + Purple::Request::Field field + +const char * +purple_request_field_get_label(field) + Purple::Request::Field field + +Purple::RequestFieldType +purple_request_field_get_type(field) + Purple::Request::Field field + +const char * +purple_request_field_get_type_hint(field) + Purple::Request::Field field + +gboolean +purple_request_field_is_visible(field) + Purple::Request::Field field + MODULE = Purple::Request PACKAGE = Purple::Request::Fields PREFIX = purple_request_fields_ PROTOTYPES: ENABLE +Purple::Request::Fields +purple_request_fields_new() + void purple_request_fields_add_group(fields, group) Purple::Request::Fields fields @@ -578,6 +640,3 @@ purple_request_fields_is_field_required(fields, id) Purple::Request::Fields fields const char *id - -Purple::Request::Fields -purple_request_fields_new() diff -r 3bd360f26a9e -r 4cb9f5cc07ba libpurple/plugins/perl/common/Roomlist.xs --- a/libpurple/plugins/perl/common/Roomlist.xs Tue May 01 05:53:57 2007 +0000 +++ b/libpurple/plugins/perl/common/Roomlist.xs Tue May 01 05:54:26 2007 +0000 @@ -3,6 +3,31 @@ MODULE = Purple::Roomlist PACKAGE = Purple::Roomlist PREFIX = purple_roomlist_ PROTOTYPES: ENABLE +BOOT: +{ + HV *room_stash = gv_stashpv("Purple::Roomlist::Room::Type", 1); + HV *field_stash = gv_stashpv("Purple::Roomlist::Field::Type", 1); + + static const constiv *civ, room_const_iv[] = { +#define const_iv(name) {#name, (IV)PURPLE_ROOMLIST_ROOMTYPE_##name} + const_iv(CATEGORY), + const_iv(ROOM), + }; + static const constiv field_const_iv[] = { +#undef const_iv +#define const_iv(name) {#name, (IV)PURPLE_ROOMLIST_FIELD_##name} + const_iv(BOOL), + const_iv(INT), + const_iv(STRING), + }; + + for (civ = room_const_iv + sizeof(room_const_iv) / sizeof(room_const_iv[0]); civ-- > room_const_iv; ) + newCONSTSUB(room_stash, (char *)civ->name, newSViv(civ->iv)); + + for (civ = field_const_iv + sizeof(field_const_iv) / sizeof(field_const_iv[0]); civ-- > field_const_iv; ) + newCONSTSUB(field_stash, (char *)civ->name, newSViv(civ->iv)); +} + void purple_roomlist_cancel_get_list(list) Purple::Roomlist list diff -r 3bd360f26a9e -r 4cb9f5cc07ba libpurple/plugins/perl/common/Sound.xs --- a/libpurple/plugins/perl/common/Sound.xs Tue May 01 05:53:57 2007 +0000 +++ b/libpurple/plugins/perl/common/Sound.xs Tue May 01 05:54:26 2007 +0000 @@ -3,6 +3,29 @@ MODULE = Purple::Sound PACKAGE = Purple::Sound PREFIX = purple_sound_ PROTOTYPES: ENABLE +BOOT: +{ + HV *stash = gv_stashpv("Purple::SoundEventID", 1); + + static const constiv *civ, const_iv[] = { +#define const_iv(name) {#name, (IV)PURPLE_SOUND_##name} + const_iv(BUDDY_ARRIVE), + const_iv(BUDDY_LEAVE), + const_iv(RECEIVE), + const_iv(FIRST_RECEIVE), + const_iv(SEND), + const_iv(CHAT_JOIN), + const_iv(CHAT_LEAVE), + const_iv(CHAT_YOU_SAY), + const_iv(CHAT_SAY), + const_iv(POUNCE_DEFAULT), + const_iv(CHAT_NICK), + }; + + for (civ = const_iv + sizeof(const_iv) / sizeof(const_iv[0]); civ-- > const_iv; ) + newCONSTSUB(stash, (char *)civ->name, newSViv(civ->iv)); +} + Purple::Sound::UiOps purple_sound_get_ui_ops() diff -r 3bd360f26a9e -r 4cb9f5cc07ba libpurple/plugins/perl/common/Status.xs --- a/libpurple/plugins/perl/common/Status.xs Tue May 01 05:53:57 2007 +0000 +++ b/libpurple/plugins/perl/common/Status.xs Tue May 01 05:54:26 2007 +0000 @@ -42,6 +42,38 @@ MODULE = Purple::Status PACKAGE = Purple::Presence PREFIX = purple_presence_ PROTOTYPES: ENABLE +BOOT: +{ + HV *context_stash = gv_stashpv("Purple::Presence::Context", 1); + HV *primitive_stash = gv_stashpv("Purple::Status::Primitive", 1); + + static const constiv *civ, context_const_iv[] = { +#define const_iv(name) {#name, (IV)PURPLE_PRESENCE_CONTEXT_##name} + const_iv(UNSET), + const_iv(ACCOUNT), + const_iv(CONV), + const_iv(BUDDY), + }; + static const constiv primitive_const_iv[] = { +#undef const_iv +#define const_iv(name) {#name, (IV)PURPLE_STATUS_##name} + const_iv(UNSET), + const_iv(OFFLINE), + const_iv(AVAILABLE), + const_iv(UNAVAILABLE), + const_iv(INVISIBLE), + const_iv(AWAY), + const_iv(EXTENDED_AWAY), + const_iv(MOBILE), + }; + + for (civ = context_const_iv + sizeof(context_const_iv) / sizeof(context_const_iv[0]); civ-- > context_const_iv; ) + newCONSTSUB(context_stash, (char *)civ->name, newSViv(civ->iv)); + + for (civ = primitive_const_iv + sizeof(primitive_const_iv) / sizeof(primitive_const_iv[0]); civ-- > primitive_const_iv; ) + newCONSTSUB(primitive_stash, (char *)civ->name, newSViv(civ->iv)); +} + void purple_presence_add_list(presence, source_list) Purple::Presence presence diff -r 3bd360f26a9e -r 4cb9f5cc07ba libpurple/plugins/perl/common/Util.xs --- a/libpurple/plugins/perl/common/Util.xs Tue May 01 05:53:57 2007 +0000 +++ b/libpurple/plugins/perl/common/Util.xs Tue May 01 05:54:26 2007 +0000 @@ -28,44 +28,11 @@ MODULE = Purple::Util PACKAGE = Purple::Util PREFIX = purple_ PROTOTYPES: ENABLE -void -purple_util_fetch_url(handle, url, full, user_agent, http11, cb) - Purple::Plugin handle - const char *url - gboolean full - const char *user_agent - gboolean http11 - SV * cb -CODE: - PurplePerlUrlData *gpr; - STRLEN len; - char *basename; - - basename = g_path_get_basename(handle->path); - purple_perl_normalize_script_name(basename); - gpr = g_new(PurplePerlUrlData, 1); - - gpr->cb = g_strdup_printf("Purple::Script::%s::%s", basename, SvPV(cb, len)); - g_free(basename); - purple_util_fetch_url(url, full, user_agent, http11, purple_perl_util_url_cb, gpr); - int purple_build_dir(path, mode) const char *path int mode -const char * -purple_date_format_full(tm) - const struct tm *tm - -const char * -purple_date_format_long(tm) - const struct tm *tm - -const char * -purple_date_format_short(tm) - const struct tm *tm - gboolean purple_email_is_valid(address) const char *address @@ -82,53 +49,6 @@ purple_home_dir() gboolean -purple_markup_extract_info_field(str, len, user_info, start_token, skip, end_token, check_value, no_value_token, display_name, is_link, link_prefix, format_cb) - const char *str - int len - Purple::NotifyUserInfo 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 - Purple::Util::InfoFieldFormatCallback format_cb - -gboolean -purple_markup_find_tag(needle, haystack, start, end, attributes) - const char *needle - const char *haystack - const char **start - const char **end - GData **attributes - -gchar_own * -purple_markup_get_tag_name(tag) - const char *tag - -void -purple_markup_html_to_xhtml(html, dest_xhtml, dest_plain) - const char *html - char **dest_xhtml - char **dest_plain - -gchar_own * -purple_markup_linkify(str) - const char *str - -gchar_own * -purple_markup_slice(str, x, y) - const char *str - guint x - guint y - -gchar_own * -purple_markup_strip_html(str) - const char *str - -gboolean purple_message_meify(message, len) char *message size_t len @@ -148,46 +68,6 @@ const char *program gchar_own * -purple_str_add_cr(str) - const char *str - -gchar_own * -purple_str_binary_to_ascii(binary, len) - const unsigned char *binary - guint len - -gboolean -purple_str_has_prefix(s, p) - const char *s - const char *p - -gboolean -purple_str_has_suffix(s, x) - const char *s - const char *x - -gchar_own * -purple_str_seconds_to_string(sec) - guint sec - -gchar_own * -purple_str_size_to_units(size) - size_t size - -void -purple_str_strip_char(str, thechar) - char *str - char thechar - -time_t -purple_str_to_time(timestamp, utc = FALSE, tm = NULL, tz_off = NULL, rest = NULL) - const char *timestamp - gboolean utc - struct tm *tm - long *tz_off - const char **rest - -gchar_own * purple_strcasereplace(string, delimiter, replacement) const char *string const char *delimiter @@ -256,6 +136,138 @@ const char * purple_utf8_strftime(const char *format, const struct tm *tm); +MODULE = Purple::Util PACKAGE = Purple::Util::Str PREFIX = purple_str_ +PROTOTYPES: ENABLE + +gchar_own * +purple_str_add_cr(str) + const char *str + +gchar_own * +purple_str_binary_to_ascii(binary, len) + const unsigned char *binary + guint len + +gboolean +purple_str_has_prefix(s, p) + const char *s + const char *p + +gboolean +purple_str_has_suffix(s, x) + const char *s + const char *x + +gchar_own * +purple_str_seconds_to_string(sec) + guint sec + +gchar_own * +purple_str_size_to_units(size) + size_t size + +void +purple_str_strip_char(str, thechar) + char *str + char thechar + +time_t +purple_str_to_time(timestamp, utc = FALSE, tm = NULL, tz_off = NULL, rest = NULL) + const char *timestamp + gboolean utc + struct tm *tm + long *tz_off + const char **rest + +MODULE = Purple::Util PACKAGE = Purple::Util::Date PREFIX = purple_date_ +PROTOTYPES: ENABLE + +const char * +purple_date_format_full(tm) + const struct tm *tm + +const char * +purple_date_format_long(tm) + const struct tm *tm + +const char * +purple_date_format_short(tm) + const struct tm *tm + +MODULE = Purple::Util PACKAGE = Purple::Util::Markup PREFIX = purple_markup_ +PROTOTYPES: ENABLE + +gboolean +purple_markup_extract_info_field(str, len, user_info, start_token, skip, end_token, check_value, no_value_token, display_name, is_link, link_prefix, format_cb) + const char *str + int len + Purple::NotifyUserInfo 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 + Purple::Util::InfoFieldFormatCallback format_cb + +gboolean +purple_markup_find_tag(needle, haystack, start, end, attributes) + const char *needle + const char *haystack + const char **start + const char **end + GData **attributes + +gchar_own * +purple_markup_get_tag_name(tag) + const char *tag + +void +purple_markup_html_to_xhtml(html, dest_xhtml, dest_plain) + const char *html + char **dest_xhtml + char **dest_plain + +gchar_own * +purple_markup_linkify(str) + const char *str + +gchar_own * +purple_markup_slice(str, x, y) + const char *str + guint x + guint y + +gchar_own * +purple_markup_strip_html(str) + const char *str + +MODULE = Purple::Util PACKAGE = Purple::Util PREFIX = purple_util_ +PROTOTYPES: ENABLE + +void +purple_util_fetch_url(handle, url, full, user_agent, http11, cb) + Purple::Plugin handle + const char *url + gboolean full + const char *user_agent + gboolean http11 + SV * cb +CODE: + PurplePerlUrlData *gpr; + STRLEN len; + char *basename; + + basename = g_path_get_basename(handle->path); + purple_perl_normalize_script_name(basename); + gpr = g_new(PurplePerlUrlData, 1); + + gpr->cb = g_strdup_printf("Purple::Script::%s::%s", basename, SvPV(cb, len)); + g_free(basename); + purple_util_fetch_url(url, full, user_agent, http11, purple_perl_util_url_cb, gpr); + void purple_util_set_user_dir(dir) const char *dir diff -r 3bd360f26a9e -r 4cb9f5cc07ba libpurple/plugins/perl/common/module.h --- a/libpurple/plugins/perl/common/module.h Tue May 01 05:53:57 2007 +0000 +++ b/libpurple/plugins/perl/common/module.h Tue May 01 05:54:26 2007 +0000 @@ -276,3 +276,7 @@ typedef gchar gchar_own; +typedef struct _constiv { + const char *name; + IV iv; +} constiv; diff -r 3bd360f26a9e -r 4cb9f5cc07ba libpurple/server.c --- a/libpurple/server.c Tue May 01 05:53:57 2007 +0000 +++ b/libpurple/server.c Tue May 01 05:54:26 2007 +0000 @@ -20,6 +20,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ + +/* This file is the fullcrap */ + #include "internal.h" #include "blist.h" #include "conversation.h" diff -r 3bd360f26a9e -r 4cb9f5cc07ba pidgin/gtkmain.c --- a/pidgin/gtkmain.c Tue May 01 05:53:57 2007 +0000 +++ b/pidgin/gtkmain.c Tue May 01 05:54:26 2007 +0000 @@ -318,6 +318,7 @@ pidgin_xfers_init(); pidgin_roomlist_init(); pidgin_log_init(); + pidgin_docklet_init(); } static void @@ -745,7 +746,6 @@ /* load plugins we had when we quit */ purple_plugins_load_saved(PIDGIN_PREFS_ROOT "/plugins/loaded"); - pidgin_docklet_init(); /* TODO: Move pounces loading into purple_pounces_init() */ purple_pounces_load(); diff -r 3bd360f26a9e -r 4cb9f5cc07ba pidgin/plugins/perl/common/GtkFt.xs --- a/pidgin/plugins/perl/common/GtkFt.xs Tue May 01 05:53:57 2007 +0000 +++ b/pidgin/plugins/perl/common/GtkFt.xs Tue May 01 05:54:26 2007 +0000 @@ -1,6 +1,6 @@ #include "gtkmodule.h" -MODULE = Pidgin::Xfer PACKAGE = Pidgin::Xfer PREFIX = pidgin_xfer_ +MODULE = Pidgin::Xfer PACKAGE = Pidgin::Xfer PREFIX = pidgin_ PROTOTYPES: ENABLE void