/pidgin/main: a687c69fda79: Merge GPlugin branch

Jorge Villase?or <[email protected]>
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: a687c69fda799c74cbb95d3be454b3af16706ac8
Author:	 Jorge Villase?or <[email protected]>
Date:	 2015-04-27 22:45 -0700
Branch:	 default
URL: https://hg.pidgin.im/pidgin/main/rev/a687c69fda79

Description:

Merge GPlugin branch

I have been using this code for few weeks now so it is at least as stable as default

diffstat:

 .hgignore                                           |     2 +
 ChangeLog                                           |    17 +
 ChangeLog.API                                       |   120 +-
 Makefile.am                                         |     1 +
 acinclude.m4                                        |     5 +-
 autogen.sh                                          |     2 +-
 configure.ac                                        |   412 +---
 doc/Makefile.am                                     |     2 -
 doc/PERL-HOWTO.dox                                  |   613 -----
 doc/TCL-HOWTO.dox                                   |   362 ---
 doc/reference/finch/Makefile.am                     |     4 +
 doc/reference/libpurple/Makefile.am                 |     9 +-
 doc/reference/libpurple/libpurple-docs.xml          |     6 +-
 doc/reference/libpurple/plugin_i18n.xml             |     8 +-
 doc/reference/libpurple/plugin_ids.xml              |    11 +-
 doc/reference/libpurple/signals_protocol.xml        |    63 +
 doc/reference/libpurple/tut_c_plugins.xml           |   267 +-
 doc/reference/libpurple/tut_signals.xml             |     2 +-
 doc/reference/pidgin/Makefile.am                    |     8 +-
 finch/Makefile.am                                   |    63 +
 finch/gntaccount.c                                  |   126 +-
 finch/gntblist.c                                    |   127 +-
 finch/gntconv.c                                     |    45 +-
 finch/gntlog.c                                      |     2 +-
 finch/gntmedia.c                                    |     2 +-
 finch/gntplugin.c                                   |   268 +-
 finch/gntplugin.h                                   |    94 +-
 finch/gntpounce.c                                   |     2 +-
 finch/gntroomlist.c                                 |    14 +-
 finch/gntxfer.c                                     |     2 +-
 finch/libfinch.c                                    |    21 +-
 finch/libgnt/Makefile.am                            |    39 +
 finch/libgnt/gntkeys.h                              |   122 +-
 finch/libgnt/wms/Makefile.am                        |     1 +
 finch/plugins/Makefile.am                           |     1 +
 finch/plugins/gntclipboard.c                        |    77 +-
 finch/plugins/gntgf.c                               |   111 +-
 finch/plugins/gnthistory.c                          |    70 +-
 finch/plugins/gnttinyurl.c                          |   129 +-
 finch/plugins/grouping.c                            |   109 +-
 finch/plugins/lastlog.c                             |    68 +-
 libpurple/Makefile.am                               |    80 +-
 libpurple/Makefile.mingw                            |     5 +-
 libpurple/account.c                                 |   188 +-
 libpurple/account.h                                 |     2 +-
 libpurple/accountopt.c                              |     2 +-
 libpurple/accounts.c                                |     2 +-
 libpurple/blistnodetypes.c                          |    46 +-
 libpurple/buddyicon.c                               |    66 +-
 libpurple/buddyicon.h                               |    68 +-
 libpurple/buddylist.c                               |    16 +-
 libpurple/cmds.c                                    |    32 +-
 libpurple/cmds.h                                    |    14 +-
 libpurple/connection.c                              |   117 +-
 libpurple/connection.h                              |    12 +-
 libpurple/conversation.c                            |    22 +-
 libpurple/conversation.h                            |     2 +-
 libpurple/conversationtypes.c                       |    43 +-
 libpurple/core.c                                    |    28 +-
 libpurple/dbus-analyze-functions.py                 |     5 +-
 libpurple/dbus-define-api.h                         |     3 +
 libpurple/dbus-server.h                             |     3 +-
 libpurple/example/Makefile.am                       |     2 +
 libpurple/example/nullclient.c                      |    36 +-
 libpurple/internal.h                                |     2 -
 libpurple/keyring.c                                 |    20 +-
 libpurple/log.c                                     |    49 +-
 libpurple/media.c                                   |    30 +-
 libpurple/media.h                                   |    10 +-
 libpurple/media/backend-fs2.c                       |     8 +-
 libpurple/media/backend-iface.c                     |    11 +-
 libpurple/mediamanager.c                            |     4 +-
 libpurple/network.h                                 |     2 +-
 libpurple/notify.h                                  |     2 +-
 libpurple/plugin.c                                  |  2238 +++++++-----------
 libpurple/plugin.h                                  |  1259 ++++++----
 libpurple/plugins/Makefile.am                       |    28 +-
 libpurple/plugins/autoaccept.c                      |   131 +-
 libpurple/plugins/buddynote.c                       |    65 +-
 libpurple/plugins/caesarcipher.c                    |   216 +
 libpurple/plugins/caesarcipher.h                    |    67 +
 libpurple/plugins/caesarcipher_consumer.c           |   117 +
 libpurple/plugins/ciphertest.c                      |    69 +-
 libpurple/plugins/codeinline.c                      |    72 +-
 libpurple/plugins/dbus-example.c                    |    69 +-
 libpurple/plugins/debug_example.c                   |    70 +-
 libpurple/plugins/filectl.c                         |    64 +-
 libpurple/plugins/helloworld.c                      |    76 +-
 libpurple/plugins/idle.c                            |    84 +-
 libpurple/plugins/ipc-test-client.c                 |   114 -
 libpurple/plugins/ipc-test-server.c                 |    99 -
 libpurple/plugins/joinpart.c                        |   159 +-
 libpurple/plugins/keyrings/Makefile.am              |     1 +
 libpurple/plugins/keyrings/gnomekeyring.c           |    69 +-
 libpurple/plugins/keyrings/internalkeyring.c        |    88 +-
 libpurple/plugins/keyrings/kwallet.cpp              |    66 +-
 libpurple/plugins/keyrings/secretservice.c          |    78 +-
 libpurple/plugins/keyrings/wincred.c                |    67 +-
 libpurple/plugins/log_reader.c                      |   277 +-
 libpurple/plugins/mono/loader/Makefile.am           |     3 +-
 libpurple/plugins/mono/loader/mono-helper.h         |     2 +-
 libpurple/plugins/mono/loader/mono.c                |    73 +-
 libpurple/plugins/notify_example.c                  |    65 +-
 libpurple/plugins/offlinemsg.c                      |    95 +-
 libpurple/plugins/one_time_password.c               |   109 +-
 libpurple/plugins/perl/Makefile.am                  |     5 +-
 libpurple/plugins/perl/common/BuddyIcon.xs          |     2 +-
 libpurple/plugins/perl/common/Cmds.xs               |    12 +-
 libpurple/plugins/perl/common/Prpl.xs               |    33 +-
 libpurple/plugins/perl/common/module.h              |    10 +-
 libpurple/plugins/perl/perl-common.h                |     2 +-
 libpurple/plugins/perl/perl-handlers.c              |     8 +-
 libpurple/plugins/perl/perl-handlers.h              |     6 +-
 libpurple/plugins/perl/perl.c                       |    90 +-
 libpurple/plugins/perl/scripts/account.pl           |     2 +-
 libpurple/plugins/perl/scripts/buddy_list.pl        |     2 +-
 libpurple/plugins/perl/scripts/conversation.pl      |     2 +-
 libpurple/plugins/perl/scripts/plugin_pref.pl       |     2 +-
 libpurple/plugins/pluginpref_example.c              |    80 +-
 libpurple/plugins/psychic.c                         |    91 +-
 libpurple/plugins/signals-test.c                    |    77 +-
 libpurple/plugins/simple.c                          |    71 +-
 libpurple/plugins/ssl/Makefile.am                   |     1 +
 libpurple/plugins/ssl/nss-prefs.c                   |   106 +-
 libpurple/plugins/ssl/ssl-gnutls.c                  |    73 +-
 libpurple/plugins/ssl/ssl-nss.c                     |    72 +-
 libpurple/plugins/ssl/ssl.c                         |   112 +-
 libpurple/plugins/statenotify.c                     |    96 +-
 libpurple/plugins/tcl/Makefile.am                   |     3 +-
 libpurple/plugins/tcl/tcl.c                         |    87 +-
 libpurple/plugins/tcl/tcl_cmd.c                     |     2 +-
 libpurple/plugins/tcl/tcl_cmds.c                    |     4 +-
 libpurple/plugins/tcl/tcl_purple.h                  |     4 +-
 libpurple/prefs.c                                   |     2 +-
 libpurple/presence.c                                |    18 +-
 libpurple/protocol.c                                |  1096 +++++++++
 libpurple/protocol.h                                |  1191 ++++++++++
 libpurple/prpl.c                                    |   409 ++-
 libpurple/prpl.h                                    |   878 ++-----
 libpurple/protocols/bonjour/Makefile.am             |     1 +
 libpurple/protocols/bonjour/bonjour.c               |   259 +-
 libpurple/protocols/bonjour/bonjour.h               |    26 +-
 libpurple/protocols/bonjour/buddy.c                 |     8 +-
 libpurple/protocols/gg/Makefile.am                  |     1 +
 libpurple/protocols/gg/chat.c                       |     4 +-
 libpurple/protocols/gg/edisc.c                      |     2 +-
 libpurple/protocols/gg/gg.c                         |   340 +-
 libpurple/protocols/gg/gg.h                         |    19 +
 libpurple/protocols/gg/pubdir-prpl.c                |    16 +-
 libpurple/protocols/gg/pubdir-prpl.h                |     8 +-
 libpurple/protocols/gg/status.c                     |     6 +-
 libpurple/protocols/irc/Makefile.am                 |     1 +
 libpurple/protocols/irc/irc.c                       |   317 +-
 libpurple/protocols/irc/irc.h                       |    21 +-
 libpurple/protocols/irc/msgs.c                      |     8 +-
 libpurple/protocols/irc/parse.c                     |    23 +-
 libpurple/protocols/jabber/Makefile.am              |    38 +-
 libpurple/protocols/jabber/Makefile.mingw           |    40 +-
 libpurple/protocols/jabber/adhoccommands.c          |    10 +-
 libpurple/protocols/jabber/buddy.c                  |    12 +-
 libpurple/protocols/jabber/buddy.h                  |     4 +-
 libpurple/protocols/jabber/caps.c                   |     4 +-
 libpurple/protocols/jabber/chat.c                   |    12 +-
 libpurple/protocols/jabber/chat.h                   |     4 +-
 libpurple/protocols/jabber/libfacebook.c            |   288 +-
 libpurple/protocols/jabber/facebook.h               |    54 +
 libpurple/protocols/jabber/facebook_roster.c        |     3 +-
 libpurple/protocols/jabber/google/google_p2p.c      |    23 +-
 libpurple/protocols/jabber/google/google_p2p.h      |     7 +-
 libpurple/protocols/jabber/google/google_presence.c |     4 +-
 libpurple/protocols/jabber/google/google_roster.c   |     2 +-
 libpurple/protocols/jabber/google/google_session.c  |     6 +-
 libpurple/protocols/jabber/libgtalk.c               |   278 +--
 libpurple/protocols/jabber/gtalk.h                  |    54 +
 libpurple/protocols/jabber/iq.c                     |     4 +-
 libpurple/protocols/jabber/jabber.c                 |   496 +++-
 libpurple/protocols/jabber/jabber.h                 |    32 +-
 libpurple/protocols/jabber/jingle/content.c         |    23 +-
 libpurple/protocols/jabber/jingle/content.h         |     7 +-
 libpurple/protocols/jabber/jingle/iceudp.c          |    23 +-
 libpurple/protocols/jabber/jingle/iceudp.h          |     7 +-
 libpurple/protocols/jabber/jingle/rawudp.c          |    23 +-
 libpurple/protocols/jabber/jingle/rawudp.h          |     7 +-
 libpurple/protocols/jabber/jingle/rtp.c             |    27 +-
 libpurple/protocols/jabber/jingle/rtp.h             |     7 +-
 libpurple/protocols/jabber/jingle/session.c         |    23 +-
 libpurple/protocols/jabber/jingle/session.h         |     7 +-
 libpurple/protocols/jabber/jingle/transport.c       |    23 +-
 libpurple/protocols/jabber/jingle/transport.h       |     7 +-
 libpurple/protocols/jabber/message.c                |     4 +-
 libpurple/protocols/jabber/presence.c               |    16 +-
 libpurple/protocols/jabber/roster.c                 |     2 +-
 libpurple/protocols/jabber/si.c                     |     6 +-
 libpurple/protocols/jabber/useravatar.c             |     2 +-
 libpurple/protocols/jabber/usermood.c               |     4 +-
 libpurple/protocols/jabber/usernick.c               |     6 +-
 libpurple/protocols/jabber/usertune.c               |     4 +-
 libpurple/protocols/jabber/libxmpp.c                |   261 +--
 libpurple/protocols/jabber/xmpp.h                   |    54 +
 libpurple/protocols/msn/Makefile.am                 |     1 +
 libpurple/protocols/msn/contact.c                   |     4 +-
 libpurple/protocols/msn/msg.c                       |     6 +-
 libpurple/protocols/msn/msn.c                       |   408 +-
 libpurple/protocols/msn/msn.h                       |    21 +
 libpurple/protocols/msn/slplink.c                   |     2 +-
 libpurple/protocols/msn/slpmsg_part.c               |     2 +-
 libpurple/protocols/msn/soap.c                      |     2 +
 libpurple/protocols/msn/user.c                      |    22 +-
 libpurple/protocols/mxit/Makefile.am                |     5 +-
 libpurple/protocols/mxit/Makefile.mingw             |     2 +-
 libpurple/protocols/mxit/actions.c                  |    43 +-
 libpurple/protocols/mxit/actions.h                  |     2 +-
 libpurple/protocols/mxit/chunk.c                    |     2 +-
 libpurple/protocols/mxit/protocol.c                 |     2 +-
 libpurple/protocols/mxit/protocol.h                 |     0 
 libpurple/protocols/mxit/filexfer.c                 |     2 +-
 libpurple/protocols/mxit/formcmds.c                 |     2 +-
 libpurple/protocols/mxit/formcmds.h                 |     2 +-
 libpurple/protocols/mxit/login.c                    |     2 +-
 libpurple/protocols/mxit/markup.c                   |     2 +-
 libpurple/protocols/mxit/multimx.c                  |     6 +-
 libpurple/protocols/mxit/mxit.c                     |   324 +-
 libpurple/protocols/mxit/mxit.h                     |    35 +-
 libpurple/protocols/mxit/roster.c                   |    30 +-
 libpurple/protocols/mxit/splashscreen.c             |     2 +-
 libpurple/protocols/novell/Makefile.am              |     4 +-
 libpurple/protocols/novell/novell.c                 |   257 +-
 libpurple/protocols/novell/novell.h                 |    49 +
 libpurple/protocols/null/Makefile.am                |     7 +-
 libpurple/protocols/null/README                     |     8 +-
 libpurple/protocols/null/nullprpl.c                 |   533 ++--
 libpurple/protocols/null/nullprpl.h                 |    49 +
 libpurple/protocols/oscar/Makefile.am               |    32 +-
 libpurple/protocols/oscar/Makefile.mingw            |    29 +-
 libpurple/protocols/oscar/libaim.c                  |   168 +-
 libpurple/protocols/oscar/aim.h                     |    54 +
 libpurple/protocols/oscar/authorization.c           |     4 +-
 libpurple/protocols/oscar/family_icbm.c             |     2 +-
 libpurple/protocols/oscar/family_icq.c              |     2 +-
 libpurple/protocols/oscar/family_locate.c           |    12 +-
 libpurple/protocols/oscar/libicq.c                  |   153 +-
 libpurple/protocols/oscar/icq.h                     |    54 +
 libpurple/protocols/oscar/oft.c                     |     2 +-
 libpurple/protocols/oscar/oscar.c                   |   352 ++-
 libpurple/protocols/oscar/oscar.h                   |    24 +
 libpurple/protocols/oscar/oscarcommon.h             |     9 +-
 libpurple/protocols/oscar/visibility.c              |     8 +-
 libpurple/protocols/oscar/visibility.h              |     8 +-
 libpurple/protocols/sametime/Makefile.am            |     1 +
 libpurple/protocols/sametime/sametime.c             |   710 +++--
 libpurple/protocols/sametime/sametime.h             |    27 +
 libpurple/protocols/silc/Makefile.am                |     1 +
 libpurple/protocols/silc/buddy.c                    |     6 +-
 libpurple/protocols/silc/chat.c                     |     6 +-
 libpurple/protocols/silc/ops.c                      |     8 +-
 libpurple/protocols/silc/silc.c                     |   514 ++-
 libpurple/protocols/silc/silcpurple.h               |    21 +-
 libpurple/protocols/simple/Makefile.am              |     1 +
 libpurple/protocols/simple/simple.c                 |   231 +-
 libpurple/protocols/simple/simple.h                 |    21 +-
 libpurple/protocols/simple/sipmsg.c                 |     4 +-
 libpurple/protocols/yahoo/Makefile.am               |    42 +-
 libpurple/protocols/yahoo/Makefile.mingw            |    35 +-
 libpurple/protocols/yahoo/util.c                    |     4 +-
 libpurple/protocols/yahoo/libyahoo.c                |   374 +-
 libpurple/protocols/yahoo/yahoo.h                   |    49 +
 libpurple/protocols/yahoo/yahoo_aliases.c           |     2 +-
 libpurple/protocols/yahoo/yahoo_aliases.h           |     2 +-
 libpurple/protocols/yahoo/yahoo_doodle.c            |     4 +-
 libpurple/protocols/yahoo/yahoo_filexfer.c          |     4 +-
 libpurple/protocols/yahoo/yahoo_friend.c            |     2 +-
 libpurple/protocols/yahoo/yahoo_friend.h            |     2 +-
 libpurple/protocols/yahoo/yahoo_packet.c            |     4 +-
 libpurple/protocols/yahoo/yahoo_picture.c           |     4 +-
 libpurple/protocols/yahoo/yahoo_profile.c           |     4 +-
 libpurple/protocols/yahoo/yahoochat.c               |     8 +-
 libpurple/protocols/yahoo/libyahoojp.c              |   225 +-
 libpurple/protocols/yahoo/yahoojp.h                 |    57 +
 libpurple/protocols/yahoo/ycht.c                    |     4 +-
 libpurple/protocols/yahoo/libymsg.c                 |    54 +-
 libpurple/protocols/yahoo/libymsg.h                 |    16 +-
 libpurple/protocols/zephyr/Makefile.am              |     6 +-
 libpurple/protocols/zephyr/zephyr.c                 |   400 +-
 libpurple/protocols/zephyr/zephyr.h                 |    49 +
 libpurple/purple-remote                             |     4 +-
 libpurple/purple-send                               |     2 +-
 libpurple/purple.h.in                               |     4 +-
 libpurple/roomlist.c                                |    60 +-
 libpurple/savedstatuses.c                           |     4 +-
 libpurple/server.c                                  |   216 +-
 libpurple/server.h                                  |   188 +-
 libpurple/signals.c                                 |     6 +-
 libpurple/sslconn.c                                 |     7 +-
 libpurple/status.c                                  |     2 +-
 libpurple/tests/Makefile.am                         |     6 +-
 libpurple/tests/test_yahoo_util.c                   |     2 +-
 libpurple/util.c                                    |    30 +-
 libpurple/util.h                                    |     6 +-
 libpurple/whiteboard.c                              |    94 +-
 libpurple/whiteboard.h                              |     8 +-
 libpurple/xfer.c                                    |    59 +-
 libpurple/xfer.h                                    |     4 +-
 m4macros/introspection.m4                           |    96 +
 pidgin/Makefile.am                                  |    54 +-
 pidgin/gtkaccount.c                                 |   198 +-
 pidgin/gtkblist.c                                   |   364 +-
 pidgin/gtkconv-theme-loader.c                       |     1 +
 pidgin/gtkconv.c                                    |   215 +-
 pidgin/gtkdialogs.c                                 |    91 +-
 pidgin/gtkdocklet.c                                 |    32 +-
 pidgin/gtklog.c                                     |    12 +-
 pidgin/gtknotify.c                                  |     8 +-
 pidgin/gtkplugin.c                                  |   410 ++-
 pidgin/gtkplugin.h                                  |    69 +-
 pidgin/gtkpounce.c                                  |     4 +-
 pidgin/gtkprefs.c                                   |     2 +-
 pidgin/gtkrequest.c                                 |    16 +-
 pidgin/gtkroomlist.c                                |    14 +-
 pidgin/gtksavedstatuses.c                           |     2 +-
 pidgin/gtkstatusbox.c                               |    89 +-
 pidgin/gtkutils.c                                   |   152 +-
 pidgin/gtkutils.h                                   |    18 +-
 pidgin/gtkwebviewtoolbar.c                          |    10 +-
 pidgin/gtkwhiteboard.c                              |     4 +-
 pidgin/gtkxfer.c                                    |     6 +-
 pidgin/libpidgin.c                                  |    23 +-
 pidgin/plugins/Makefile.am                          |     8 +-
 pidgin/plugins/cap/Makefile.am                      |     1 +
 pidgin/plugins/cap/cap.c                            |   126 +-
 pidgin/plugins/cap/cap.h                            |     5 +-
 pidgin/plugins/contact_priority.c                   |    80 +-
 pidgin/plugins/crazychat/Makefile.am                |     1 +
 pidgin/plugins/crazychat/cc_pidgin_plugin.c         |     2 +-
 pidgin/plugins/disco/Makefile.am                    |     3 +-
 pidgin/plugins/disco/gtkdisco.c                     |     2 +-
 pidgin/plugins/disco/xmppdisco.c                    |    96 +-
 pidgin/plugins/disco/xmppdisco.h                    |     7 +-
 pidgin/plugins/extplacement.c                       |   102 +-
 pidgin/plugins/gestures/Makefile.am                 |     3 +-
 pidgin/plugins/gestures/gestures.c                  |   168 +-
 pidgin/plugins/gevolution/Makefile.am               |     5 +-
 pidgin/plugins/gevolution/add_buddy_dialog.c        |    12 +-
 pidgin/plugins/gevolution/assoc-buddy.c             |     4 +-
 pidgin/plugins/gevolution/eds-utils.c               |     2 +-
 pidgin/plugins/gevolution/gevo-util.c               |    22 +-
 pidgin/plugins/gevolution/gevolution.c              |   184 +-
 pidgin/plugins/gevolution/gevolution.h              |     4 +-
 pidgin/plugins/gtk-signals-test.c                   |    70 +-
 pidgin/plugins/gtkbuddynote.c                       |   109 +-
 pidgin/plugins/history.c                            |    67 +-
 pidgin/plugins/iconaway.c                           |    70 +-
 pidgin/plugins/imgupload.c                          |   176 +-
 pidgin/plugins/mailchk.c                            |    75 +-
 pidgin/plugins/markerline.c                         |   108 +-
 pidgin/plugins/musicmessaging/Makefile.am           |     1 +
 pidgin/plugins/musicmessaging/musicmessaging.c      |   169 +-
 pidgin/plugins/notify.c                             |   127 +-
 pidgin/plugins/perl/Makefile.am                     |     1 +
 pidgin/plugins/pidgininc.c                          |    82 +-
 pidgin/plugins/raw.c                                |    96 +-
 pidgin/plugins/relnot.c                             |    76 +-
 pidgin/plugins/screencap.c                          |    84 +-
 pidgin/plugins/sendbutton.c                         |    70 +-
 pidgin/plugins/spellchk.c                           |   144 +-
 pidgin/plugins/themeedit.c                          |    79 +-
 pidgin/plugins/ticker/Makefile.am                   |     3 +-
 pidgin/plugins/ticker/gtkticker.c                   |    34 +-
 pidgin/plugins/ticker/gtkticker.h                   |     4 +
 pidgin/plugins/ticker/ticker.c                      |    74 +-
 pidgin/plugins/unity.c                              |    96 +-
 pidgin/plugins/webkit.c                             |    70 +-
 pidgin/plugins/win32/transparency/win2ktrans.c      |   168 +-
 pidgin/plugins/win32/winprefs/winprefs.c            |   132 +-
 pidgin/plugins/xmppconsole.c                        |   172 +-
 pidgin/win32/nsis/pidgin-installer.nsi              |    17 +-
 375 files changed, 15409 insertions(+), 14003 deletions(-)

diffs (truncated from 45247 to 300 lines):

diff --git a/.hgignore b/.hgignore
--- a/.hgignore
+++ b/.hgignore
@@ -24,6 +24,7 @@ syntax: regexp
 .*\.dll$
 .*\.exe$
 .*\.g?mo$
+.*\.gir$
 .*\.la$
 \.libs
 .*\.lo$
@@ -34,6 +35,7 @@ syntax: regexp
 .*\.pyo$
 .*\.rej$
 .*\.so$
+.*\.typelib$
 .*\.moc$
 VERSION$
 aclocal.m4
diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,6 +6,10 @@ version 3.0.0 (??/??/????):
 	* Ciphers are now built from the libpurple directory.
 	* Doxygen has been replaced by gtk-doc for generating documentation (Ankit
 	  Vani).
+	* Added dependency GPlugin, which is now required to build libpurple with
+	  plugins support.
+	* Added dependency gobject-introspection, which is now required to enable
+	  non-native plugin support.
 
 	libpurple:
 	* Specify a different set of encryption ciphers for TLS connections when
@@ -72,8 +76,21 @@ version 3.0.0 (??/??/????):
 	* Invalid user moods can no longer be sent to the server.
 
 	Plugins:
+	* A new plugin API has been introduced. Plugins are no longer required
+	  to be of a predefined type (such as protocol, standard, loader etc),
+	  and can perform multiple roles.
 	* The Offline Message Emulation plugin now adds a note that the message
 	  was an offline message. (Flavius Anton) (#2497)
+	* Two example plugins, caesarcipher and caesarcipher_consumer, have
+	  been added that demonstrate registering of a dynamic cipher type in
+	  one plugin and using it in another.
+	* IPC test plugins have been removed, since the new plugin API does not
+	  provide a seperate IPC API.
+
+	Protocols:
+	* A single oscar plugin provides both AIM and ICQ protocols.
+	* A single jabber plugin provides XMPP, GTalk and Facebook protocols.
+	* A single yahoo plugin provides both Yahoo and Yahoo JAPAN protocols.
 
 version 2.10.12 (MM/DD/YY):
 	Windows-Specific Changes:
diff --git a/ChangeLog.API b/ChangeLog.API
--- a/ChangeLog.API
+++ b/ChangeLog.API
@@ -78,7 +78,74 @@ version 3.0.0 (??/??/????):
 		* purple_menu_action_set_data
 		* purple_menu_action_set_callback
 		* purple_menu_action_set_children
-		* PurplePluginUiInfo.get_plugin_pref_request
+		* PurplePluginInfoFlags (PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and
+		  PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD)
+		* purple_plugin_get_dependent_plugins
+		* purple_plugin_get_filename
+		* purple_plugin_is_internal
+		* purple_plugin_info_new
+		* purple_plugin_get_info
+		* purple_plugin_info_get_abi_version
+		* purple_plugin_info_get_actions_cb
+		* purple_plugin_info_get_category
+		* purple_plugin_info_get_dependencies
+		* purple_plugin_info_get_error
+		* purple_plugin_info_get_extra_cb
+		* purple_plugin_info_get_flags
+		* purple_plugin_info_get_icon
+		* purple_plugin_info_get_license_id
+		* purple_plugin_info_get_license_text
+		* purple_plugin_info_get_license_url
+		* purple_plugin_info_get_pref_frame_cb
+		* purple_plugin_info_get_pref_request_cb
+		* purple_plugin_info_get_ui_data
+		* purple_plugin_info_set_ui_data
+		* purple_plugin_register_type
+		* purple_plugin_add_interface
+		* PURPLE_DEFINE_TYPE
+		* PURPLE_DEFINE_TYPE_EXTENDED
+		* PURPLE_IMPLEMENT_INTERFACE_STATIC
+		* PURPLE_IMPLEMENT_INTERFACE
+		* PURPLE_DEFINE_DYNAMIC_TYPE
+		* PURPLE_DEFINE_DYNAMIC_TYPE_EXTENDED
+		* PURPLE_IMPLEMENT_INTERFACE_DYNAMIC
+		* PURPLE_DEFINE_STATIC_TYPE
+		* PURPLE_DEFINE_STATIC_TYPE_EXTENDED
+		* PurpleProtocol, inherits GObject. Please see the documentation for
+		  details.
+		* PurpleProtocolAction
+		* PurpleProtocolOverrideFlags
+		* PurpleProtocolClientIface
+		* PurpleProtocolServerIface
+		* PurpleProtocolIMIface
+		* PurpleProtocolChatIface
+		* PurpleProtocolPrivacyIface
+		* PurpleProtocolXferIface
+		* PurpleProtocolRoomlistIface
+		* PurpleProtocolAttentionIface
+		* PurpleProtocolMediaIface
+		* PurpleProtocolFactoryIface
+		* purple_protocol_get_* for PurpleProtocol members
+		* purple_protocol_class_* for class methods
+		* purple_protocol_client_iface_* for client interface methods
+		* purple_protocol_server_iface_* for server interface methods
+		* purple_protocol_im_iface_* for IM interface methods
+		* purple_protocol_chat_iface_* for chat interface methods
+		* purple_protocol_privacy_iface_* for privacy interface methods
+		* purple_protocol_xfer_iface_* for xfer interface methods
+		* purple_protocol_roomlist_iface_* for roomlist interface methods
+		* purple_protocol_attention_iface_* for attention interface methods
+		* purple_protocol_media_iface_* for media interface methods
+		* purple_protocol_factory_iface_* for factory interface methods
+		* purple_protocol_action_new
+		* purple_protocol_action_free
+		* purple_protocols_add
+		* purple_protocols_remove
+		* purple_protocols_find
+		* purple_protocols_get_all
+		* purple_protocols_get_handle
+		* purple_protocols_init
+		* purple_protocols_uninit
 		* purple_request_certificate
 		* purple_request_field_certificate_new
 		* purple_request_field_certificate_get_value
@@ -132,6 +199,9 @@ version 3.0.0 (??/??/????):
 		* Files in libpurple/ciphers have been renamed. To use a particular
 		  cipher, include its header.
 		* Renamed ft.h file to xfer.h
+		* Renamed plugin.h file to plugins.h
+		* prpl.h has been split into protocol.h (PurpleProtocol GObject and
+		  protocol interfaces) and protocols.h (protocols subsystem)
 		* status.h has been split into status.h (Status API) and presence.h
 		  (Presence API)
 		* account-authorization-requested signal merged with
@@ -171,6 +241,7 @@ version 3.0.0 (??/??/????):
 		* purple_find_buddy renamed to purple_blist_find_buddy
 		* purple_find_group renamed to purple_blist_find_group
 		* purple_get_blist renamed to purple_blist_get_buddy_list
+		* PurpleBuddyIconSpec has been moved to buddyicon.h
 		* purple_certificate_check_signature_chain now returns a list of failing
 		  PurpleCertificate*s as the second parameter
 		* PurpleConversation is now an abstract type, and is a GObject. Please
@@ -224,11 +295,33 @@ version 3.0.0 (??/??/????):
 		  purple_notify_user_info_entry_set_entry_type
 		* purple_notify_user_info_prepend_pair renamed to
 		  purple_notify_user_info_prepend_pair_html
+		* PurplePlugin is now a GObject (alias for GPluginPlugin). Please see
+		  the documentation for details.
+		* PurplePluginInfo is now a GObject, inherits GPluginPluginInfo. Please
+		  see the documentation for details.
+		* PurplePluginAction no longer has a context field. Use
+		  PurpleProtocolAction for protocol actions.
+		* PURPLE_INIT_PLUGIN(pluginname, initfunc, plugininfo) is now
+		  PURPLE_PLUGIN_INIT(pluginname, query_func, load_func, unload_func).
+		  See "C Plugins tutorial" (tut_c_plugins.xml) for an example.
+		* purple_plugin_load and purple_plugin_unload now use an error argument
+		  to return load/unload errors
+		* purple_plugins_get_all is now purple_plugins_find_all, and the
+		  returned list of plugins MUST be free'd using g_list_free
+		* purple_plugin_get_* functions for plugin info are now
+		  purple_plugin_info_get_*
+		* purple_plugin_get_author is now purple_plugin_info_get_authors, and
+		  returns a NULL-terminated list of authors
+		* purple_plugins_probe is now purple_plugins_refresh
+		* purple_plugins_find_with_id renamed to purple_plugins_find_plugin
+		* purple_plugins_find_with_filename renamed to
+		  purple_plugins_find_by_filename
 		* purple_plugin_pref_get_type renamed to
 		  purple_plugin_pref_get_pref_type
 		* purple_plugin_pref_set_type renamed to
 		  purple_plugin_pref_set_pref_type
 		* purple_prefs_get_type renamed to purple_prefs_get_pref_type
+		* proto_chat_entry has been renamed to PurpleProtocolChatEntry
 		* purple_proxy_info_get_type renamed to purple_proxy_info_get_proxy_type
 		* purple_proxy_info_set_type renamed to purple_proxy_info_set_proxy_type
 		* purple_request_field_get_type renamed to
@@ -364,12 +457,30 @@ version 3.0.0 (??/??/????):
 		* purple_notify_searchresults_get_columns_count
 		* purple_notify_searchresults_get_rows_count
 		* purple_notify_searchresults_row_get
+		* PurplePluginType
+		* PurplePluginPriority
+		* PurplePluginLoaderInfo
+		* PurplePluginUiInfo
+		* purple_plugin_ipc_*
+		* purple_plugin_is_unloadable
+		* purple_plugin_new
+		* purple_plugin_probe
+		* purple_plugin_register
+		* purple_plugin_reload
+		* purple_plugins_destroy_all
+		* purple_plugins_enabled
+		* purple_plugins_find_with_basename
+		* purple_plugins_find_with_name
+		* purple_plugins_get_protocols
+		* purple_plugins_get_search_paths
 		* purple_plugins_register_load_notify_cb
 		* purple_plugins_register_probe_notify_cb
 		* purple_plugins_register_unload_notify_cb
 		* purple_plugins_unregister_load_notify_cb
 		* purple_plugins_unregister_probe_notify_cb
 		* purple_plugins_unregister_unload_notify_cb
+		* purple_plugins_unload
+		* purple_plugins_unload_all
 		* purple_pounces_load
 		* purple_prefs_set_generic
 		* purple_prefs_update_old
@@ -379,6 +490,7 @@ version 3.0.0 (??/??/????):
 		* purple_presence_new
 		* purple_presence_new_for_account
 		* purple_presence_new_for_buddy
+		* PurplePluginProtocolInfo
 		* purple_proxy_connect_socks5
 		* purple_request_field_list_add
 		* purple_srv_cancel
@@ -409,8 +521,6 @@ version 3.0.0 (??/??/????):
 		* PurplePluginProtocolInfo.add_buddy_with_invite
 		* PurplePluginProtocolInfo.add_buddies_with_invite
 		* PurplePluginProtocolInfo.get_cb_away
-		* PurplePluginUiInfo.page_num
-		* PurplePluginUiInfo.frame
 		* PurpleValue, use GValue instead.
 		* serv_got_attention
 		* serv_send_attention
@@ -440,6 +550,7 @@ version 3.0.0 (??/??/????):
 		Added:
 		* pidgin_create_webview
 		* PidginDockletFlag
+		* PidginPluginInfo, inherits PurplePluginInfo
 		* Various WebKit-related functions in gtkwebview.h
 
 		Changed:
@@ -491,6 +602,9 @@ version 3.0.0 (??/??/????):
 		* struct _PidginImPane
 
 	Finch:
+		Added:
+		* FinchPluginInfo, inherits PurplePluginInfo
+
 		Changed:
 		* gntft.h file renamed to gntxfer.h
 		* gnt_append_menu_action renamed to finch_append_menu_action
diff --git a/Makefile.am b/Makefile.am
--- a/Makefile.am
+++ b/Makefile.am
@@ -11,6 +11,7 @@ EXTRA_DIST = \
 		intltool-extract.in \
 		intltool-merge.in \
 		intltool-update.in \
+		m4macros/introspection.m4 \
 		package_revision.h \
 		pidgin.apspec.in \
 		po/Makefile.mingw \
diff --git a/acinclude.m4 b/acinclude.m4
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -6,7 +6,7 @@ AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
 # Owen Taylor     1997-2001
 
 dnl AM_PATH_GLIB_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
-dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if gmodule, gobject or 
+dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if gobject or 
 dnl gthread is specified in MODULES, pass to pkg-config
 dnl
 AC_DEFUN([AM_PATH_GLIB_2_0],
@@ -20,9 +20,6 @@ AC_ARG_ENABLE(glibtest, [  --disable-gli
   for module in . $4
   do
       case "$module" in
-         gmodule) 
-             pkg_config_args="$pkg_config_args gmodule-2.0"
-         ;;
          gobject) 
              pkg_config_args="$pkg_config_args gobject-2.0"
          ;;
diff --git a/autogen.sh b/autogen.sh
--- a/autogen.sh
+++ b/autogen.sh
@@ -154,7 +154,7 @@ fi
 check "$libtoolize";		LIBTOOLIZE=${BIN};
 check "glib-gettextize";	GLIB_GETTEXTIZE=${BIN};
 check "intltoolize";		INTLTOOLIZE=${BIN};
-check "sed";				SED=${BIN};
+check "sed";			SED=${BIN};
 check "aclocal";		ACLOCAL=${BIN};
 check "autoheader";		AUTOHEADER=${BIN};
 check "automake";		AUTOMAKE=${BIN};
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.