# HG changeset patch
# Node ID e128802df9aa
# Parent  7c0d5898fa96
diff --git a/doc/reference/libpurple/libpurple.toml.in b/doc/reference/libpurple/libpurple.toml.in
--- a/doc/reference/libpurple/libpurple.toml.in
+++ b/doc/reference/libpurple/libpurple.toml.in
@@ -38,13 +38,9 @@
 # The same order will be used when generating the index
 content_files = [
 	"contributing.md",
-	"plugin_i18n.md",
-	"plugin_ids.md",
 	"signals_cmd.md",
 	"signals_connection.md",
-	"signals_conversation.md",
 	"signals_core.md",
-	"signals_jabber.md",
 	"tut_c_plugins.md",
 ]
 content_images = [
diff --git a/doc/reference/libpurple/meson.build b/doc/reference/libpurple/meson.build
--- a/doc/reference/libpurple/meson.build
+++ b/doc/reference/libpurple/meson.build
@@ -1,10 +1,7 @@
 libpurple_doc_content_files = [
 	'contributing.md',
-	'plugin_i18n.md',
-	'plugin_ids.md',
 	'signals_cmd.md',
 	'signals_connection.md',
-	'signals_conversation.md',
 	'signals_core.md',
 	'tut_c_plugins.md',
 ]
diff --git a/doc/reference/libpurple/plugin_i18n.md b/doc/reference/libpurple/plugin_i18n.md
deleted file mode 100644
--- a/doc/reference/libpurple/plugin_i18n.md
+++ /dev/null
@@ -1,140 +0,0 @@
-Title: Third Party Plugin Translation
-Slug: 3rd-party-plugin-i18n
-
-## Third Party Plugin Translation
-
-### Introduction
-
-For the purpose of this document we're going to assume that your plugin:
-
-* Is set up to use autotools. It may be possible to add translation support
-without autotools, but we have no idea how. We may not want to know, either ;)
-* Has an autogen.sh. You may have also called this bootstrap.sh or similar.
-* Resides in a source tree that has `configure.ac` and `Makefile.am` in the
-top-level directory as well as a `src` directory in which the plugin's source
-is located. A `Makefile.am` should also exist in the `src` directory.
-
-### Steps To Follow
-
-For a plugin to have translation support there are a few steps that need to
-followed:
-
-* In your `autogen.sh`, add the following after your other utility checks:
-
-```sh
-(intltoolize --version) < /dev/null > /dev/null 2>&1 || {
-    echo;
-    echo "You must have intltool installed to compile <YOUR PLUGIN NAME>";
-    echo;
-    exit;
-}
-```
-
-* Then before your call to aclocal add:
-
-```sh
-intltoolize --force --copy
-```
-
-* Now edit `configure.ac` and add the following:
-
-```m4
-AC_PROG_INTLTOOL
-
-GETTEXT_PACKAGE=<YOUR PLUGIN NAME>
-AC_SUBST(GETTEXT_PACKAGE)
-AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, ["$GETTEXT_PACKAGE"], [Define the gettext package to be used])
-
-ALL_LINGUAS=""
-AM_GLIB_GNU_GETTEXT
-```
-
-The position of these macros in the file don't really matter, but if you
-have issues either play around with it or feel free to ask one of the Pidgin
-developers. Finally add `po/Makefile.in` to you `AC_OUTPUT` command.
-
-* Now create a directory named 'po'.
-
-* `cd` into the `po` directory.
-
-* Create/edit the file `POTFILES.in` in your favorite editor. Each line
-should be the name of a file that could or does have strings marked for
-translating (we're getting to that step). These file names should be
-relative to the top directory of your plugin's source tree.
-
-* `cd` back to the top directory of your plugin's source tree.
-
-* Open `Makefile.am` and add `po` to your `SUBDIRS` variable.
-
-* While still in the top directory of your plugin's source tree, execute
-`intltool-prepare`. This will setup anything extra that intltool needs.
-
-* Fire off `autogen.sh` and when it's completed, verify that you have a
-`po/POTFILES` (notice the lack of a .in). If you do, everything should be
-set on the autotools side.
-
-* Take a break, stretch your legs, smoke a cigarette, whatever, because
-we're done with the autotools part.
-
-* When you're ready, `cd` into the directory with the source files for your
-plugin.
-
-* Open the file containing the `plugin_query` function.
-
-* If you're not already, please make sure that you are including the
-`config.h` file for you plugin.  Note that `config.h` could be whatever
-you told autohead to use with AM_CONFIG_HEADER. Also add the following:
-
-```c
-#include <glib/gi18n-lib.h>
-```
-
-Make sure that this include is after you include of your `config.h`,
-otherwise you will break your build. Also note that if you wish to
-maintain compatibility with older versions of GLib, you will need to
-include additional preprocessor directives, which we won't cover here.
-
-* This is where things get a bit goofy. libpurple is going to try to
-translate our strings using the libpurple gettext package.  So we have to
-convert them before libpurple attempts to.
-
-* To do this, we're going to change the entries for `name`, `summary`, and
-`description` to `NULL`.
-
-* Next, locate your `plugin_load` function.  Your name for this function will be
-the first parameter to `GPLUGIN_NATIVE_PLUGIN_DECLARE()` plus `_load`.
-
-* Now add the following within your 'plugin_load' function:
-
-```c
-	bindtextdomain(GETTEXT_PACKAGE, PURPLE_LOCALEDIR);
-	bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
-
-	info.name        = _("<YOUR PLUGIN NAME>");
-	info.summary     = _("<YOUR PLUGIN SUMMARY>");
-	info.description = _("<YOUR PLUGIN DESCRIPTION>");
-```
-
-> Note that the `_()` is intentional, and that it is telling intltool that
-> this string should be translated. There is also `N_()` which says that a
-> string should only be marked for translation but should not be translated
-> yet.
-
-* Go through the rest of your code and mark all the other strings for
-translation with `_()`.
-
-* When that's done, feel free to commit your work, create your po template
-(pot file) or whatever.
-
-* To create you po template, `cd` to `po` and execute:
-
-```sh
-intltool-update --pot
-```
-
-* To add new translations to your plugin, all you have to do is add the
-language code to the `ALL_LINGUAS` variable in your `configure.ac`. Take
-note that this list of languages should be separated by a space. After
-you have added the language code to `ALL_LINGUAS`, drop the `xx.po` file
-into `po`, and re-`autogen.sh`. After a full build you should now be
-able to use the translation.
diff --git a/doc/reference/libpurple/plugin_ids.md b/doc/reference/libpurple/plugin_ids.md
deleted file mode 100644
--- a/doc/reference/libpurple/plugin_ids.md
+++ /dev/null
@@ -1,107 +0,0 @@
-Title: Plugin IDs
-Slug: plugin-ids
-
-## Plugin IDs
-
-### Introduction
-
-Every plugin contains a unique identifier. Third-party plugins (that is,
-plugins written by anyone who is not a libpurple, Pidgin, or Finch developer)
-are expected to use a plugin ID that follows a specific format. This format
-categorizes plugins and makes duplicate IDs highly unlikely.
-
-### Format
-
-The basic format of a plugin ID is as follows:
-
-```
-type-username-pluginname
-```
-
-The ***type*** indicator specifies the type of plugin. This must be one
-of the following:
-
-#### Types Of Plugins
-
-core
-: A core libpurple plugin, capable of being loaded in any program using
-libpurple. Core plugins may not contain any UI-specific code.
-
-prpl
-: A protocol plugin. This is a core plugin which provides libpurple the ability
-to connect to another IM or chat network.
-
-gtk
-: A GTK+ (a.k.a. Pidgin) plugin. These plugins may use GTK+ code, but may not
-use window toolkit code, such as X11, Win32, Cocoa, or Carbon.
-
-gtk-x11
-: A GTK+ plugin that uses X11 code. These plugins may use both GTK+ code and
-X11 code, allowing to hook into features specific to X11.
-
-gtk-win32
-: A GTK+ plugin that uses Win32 code. These plugins may use both GTK+ code and
-Win32 code, allowing to hook into features available on Windows.
-
-gnt
-: A GNT (a.k.a. Finch) plugin. These plugins may use GNT code.
-
-The ***username*** must be a unique identifier for you. It
-***should*** be your https://developer.pidgin.im Trac user ID. Failing that, you
-could use your SourceForge user ID or your Libera.chat IRC nickname, if you
-have either. The https://developer.pidgin.im Trac user ID is preferred.
-Do ***not*** leave this field blank!
-
-The ***pluginname*** is the name of your plugin. It is usually all
-lowercase letters and matches the static plugin ID (the first argument to
-the GPLUGIN_NATIVE_PLUGIN_DECLARE() macro call), although it can be anything you
-like. Do ***not*** include version information in the plugin ID--the
-`PurplePluginInfo` object already has a property for this.
-
-### One Last Rule For Plugin IDs
-
-Plugin IDs may ***NOT*** contain spaces. If you need a space, use another
-hyphen (-).
-
-### Exceptions To The Rule
-
-As with any rule there are exceptions. If you browse through the source
-tree you will see that the plugins we distribute with the Pidgin source
-do not contain a username field. This is because while one developer may
-have written each specific plugin, the plugins are maintained
-collectively by the entire development team. This lack of a username
-field is also an indicator that the plugin is one of our plugins and not
-a third-party plugin.
-
-Another exception to the rule is the
-[Purple Plugin Pack](https://keep.imfreedom.org/pidgin/purple-plugin-pack/).
-All plugins whose lives started in the Purple Plugin Pack use
-`"plugin_pack"` for the username field to indicate origination in
-the Purple Plugin Pack.
-
-These two exceptions are mentioned here for completeness. We don't
-encourage breaking the conventions set forth by the rules outlined above.
-
-### Examples Of Well-Chosen Plugin IDs
-
-The following is a list of well-chosen Plugin IDs listing a few good examples.
-
-gtk-amc_grim-guifications
-: This is the plugin ID for the Guifications 2.x plugin.
-
-gtk-rlaager-album
-: This is the plugin ID for the Album plugin, which is now part of the
-Purple Plugin Pack. Its ID follows the rules because its life started prior
-to its inclusion in the Plugin Pack.
-
-core-rlaager-irchelper
-: This is the plugin ID for the IRC Helper plugin, which is now part of the
-Purple Plugin Pack. Its ID follows the rules because its life started prior
-to its inclusion in the Plugin Pack.
-
-### Plugin Database
-
-Although it doesn't exist yet, in time there will be a plugin database
-on the Pidgin website, where users can download and install new plugins.
-Plugins will be accessed by your plugin ID, which is one reason why it
-must be unique. 
diff --git a/doc/reference/libpurple/signals_conversation.md b/doc/reference/libpurple/signals_conversation.md
deleted file mode 100644
--- a/doc/reference/libpurple/signals_conversation.md
+++ /dev/null
@@ -1,158 +0,0 @@
-Title: Conversation Signals
-Slug: conversation-signals
-
-## Conversation Signals
-
-### Signal List
-
-* [conversation-created](#conversation-created)
-* [conversation-updated](#conversation-updated)
-* [deleting-conversation](#deleting-conversation)
-* [cleared-message-history](#cleared-message-history)
-* [conversation-extended-menu](#conversation-extended-menu)
-
-### Signal Details
-
-#### conversation-created
-
-```c
-void user_function(PurpleConversation *conv, gpointer user_data);
-```
-
-Emitted when a new conversation is created.
-
-**Parameters:**
-
-**conv**
-: The new conversation.
-
-**user_data**
-: user data set when the signal handler was connected.
-
-----
-
-#### conversation-updated
-
-```c
-void user_function(PurpleConversation *conv,
-                   PurpleConvUpdateType type,
-                   gpointer user_data);
-```
-
-Emitted when a conversation is updated.
-
-**Parameters:**
-
-**conv**
-: The conversation that was updated.
-
-**type**
-: The type of update that was made.
-
-**user_data**
-: user data set when the signal handler was connected.
-
-----
-
-#### deleting-conversation
-
-```c
-void user_function(PurpleConversation *conv, gpointer user_data);
-```
-
-Emitted just before a conversation is to be destroyed.
-
-**Parameters:**
-
-**conv**
-: The conversation that's about to be destroyed.
-
-**user_data**
-: user data set when the signal handler was connected.
-
-----
-
-#### buddy-typing
-
-```c
-void user_function(PurpleAccount *account,
-                   const gchar *name,
-                   gpointer user_data);
-```
-
-Emitted when a buddy starts typing in a conversation window.
-
-**Parameters:**
-
-**account**
-: The account of the user which is typing.
-
-**name**
-: The name of the user which is typing.
-
-**user_data**
-: user data set when the signal handler was connected.
-
-----
-
-#### buddy-typing-stopped
-
-```c
-void user_function(PurpleAccount *account,
-                   const gchar *name,
-                   gpointer user_data);
-```
-
-Emitted when a buddy stops typing in a conversation window.
-
-**Parameters:**
-
-**account**
-: The account of the user which stopped typing.
-
-**name**
-: The name of the user which stopped typing.
-
-**user_data**
-: user data set when the signal handler was connected.
-
-----
-
-#### conversation-extended-menu
-
-```c
-void user_function(PurpleConversation *conv,
-                   GList **list,
-                   gpointer user_data);
-```
-
-Emitted when the UI requests a list of plugin actions for a conversation.
-
-**Parameters:**
-
-**conv**
-: The conversation.
-
-**list**
-: A pointer to the list of actions.
-
-**user_data**
-: user data set when the signal handler was connected.
-
-----
-
-#### cleared-message-history
-
-```c
-void user_function(PurpleConversation *conv, gpointer user_data);
-```
-
-Emitted when the conversation history is cleared.
-
-**Parameters:**
-
-**conv**
-: The conversation.
-
-**user_data**
-: user data set when the signal handler was connected.
diff --git a/doc/reference/libpurple/signals_jabber.md b/doc/reference/libpurple/signals_jabber.md
deleted file mode 100644
--- a/doc/reference/libpurple/signals_jabber.md
+++ /dev/null
@@ -1,277 +0,0 @@
-Title: Jabber Signals
-Slug: jabber-signals
-
-## Jabber Signals
-
-### Signal List
-
-* [jabber-receiving-iq](#jabber-receiving-iq)
-* [jabber-receiving-message](#jabber-receiving-message)
-* [jabber-receiving-presence](#jabber-receiving-presence)
-* [jabber-watched-iq](#jabber-watched-iq)
-* [jabber-register-namespace-watcher](#jabber-register-namespace-watcher)
-* [jabber-unregister-namespace-watcher](#jabber-unregister-namespace-watcher)
-* [jabber-sending-xmlnode](#jabber-sending-xmlnode)
-* [jabber-receiving-xmlnode](#jabber-receiving-xmlnode)
-
-### Signal Details
-
-#### jabber-receiving-iq
-
-```c
-gboolean user_function(PurpleConnection *gc,
-                       const gchar *type,
-                       const gchar *id,
-                       const gchar *from,
-                       PurpleXmlNode *iq,
-                       gpointer user_data);
-```
-
-Emitted when an XMPP IQ stanza is received. Allows a plugin to process IQ
-stanzas.
-
-**Parameters:**
-
-**gc**
-: The connection on which the stanza is received.
-
-**type**
-: The IQ type ('get', 'set', 'result', or 'error').
-
-**id**
-: The ID attribute from the stanza. MUST NOT be NULL.
-
-**from**
-: The originator of the stanza. MAY BE NULL if the stanza originated from the
-user's server.
-
-**iq**
-: The full stanza received.
-
-**user_data**
-: user data set when the signal handler was connected.
-
-**Returns:**
-
-`TRUE` if the plugin processed this stanza and *nobody else* should process it.
-`FALSE` otherwise.
-
-----
-
-#### jabber-receiving-message
-
-```c
-gboolean user_function(PurpleConnection *gc,
-                       const gchar *type,
-                       const gchar *id,
-                       const gchar *from,
-                       const gchar *to,
-                       PurpleXmlNode *message,
-                       gpointer user_data);
-```
-
-Emitted when an XMPP message stanza is received. Allows a plugin to process
-message stanzas.
-
-**Parameters:**
-
-**gc**
-: The connection on which the stanza is received.
-
-**type**
-: The message type (see rfc3921 or rfc3921bis).
-
-**id**
-: The ID attribute from the stanza. MAY BE NULL.
-
-**from**
-: The originator of the stanza. MAY BE NULL if the stanza originated from the
-user's server.
-
-**to**
-: The destination of the stanza. This is probably either the full JID of the
-receiver or the receiver's bare JID.
-
-**message**
-: The full stanza received.
-
-**user_data**
-: user data set when the signal handler was connected.
-
-**Returns:**
-
-`TRUE` if the plugin processed this stanza and *nobody else* should process it.
-`FALSE` otherwise.
-
-----
-
-#### jabber-receiving-presence
-
-```c
-gboolean user_function(PurpleConnection *gc,
-                       const gchar *type,
-                       const gchar *from,
-                       PurpleXmlNode *presence,
-                       gpointer user_data)
-```
-
-Emitted when an XMPP presence stanza is received. Allows a plugin to process
-presence stanzas.
-
-**Parameters:**
-
-**gc**
-: The connection on which the stanza is received.
-
-**type**
-: The presence type (see rfc3921 or rfc3921bis). NULL indicates this is an
-"available" (i.e. online) presence.
-
-**from**
-: The originator of the stanza. MAY BE NULL if the stanza originated from the
-user's server.
-
-**presence**
-: The full stanza received.
-
-**user_data**
-: user data set when the signal handler was connected.
-
-**Returns:**
-
-`TRUE` if the plugin processed this stanza and *nobody else* should process it.
-`FALSE` otherwise.
-
-----
-
-#### jabber-watched-iq
-
-```c
-gboolean user_function(PurpleConnection *gc,
-                       const gchar *type,
-                       const gchar *id,
-                       const gchar *from,
-                       PurpleXmlNode *child,
-                       gpointer user_data);
-```
-
-Emitted when an IQ with a watched (child, namespace) pair is received.  See jabber-register-namespace-watcher and jabber-unregister-namespace-watcher.
-
-**Parameters:**
-
-**gc**
-: The connection on which the stanza is received.
-
-**type**
-: The IQ type ('get', 'set', 'result', or 'error').
-
-**id**
-: The ID attribute from the stanza. MUST NOT be NULL.
-
-**from**
-: The originator of the stanza. MAY BE NULL if the stanza originated from the user's server.
-
-**child**
-: The child node with namespace.
-
-**user_data**
-: user data set when the signal handler was connected.
-
-**Returns:**
-
-`TRUE` if the plugin processed this stanza and *nobody else* should process it.
-`FALSE` otherwise.
-
-----
-
-#### jabber-register-namespace-watcher
-
-```c
-void user_function(const gchar *node,
-                   const gchar *namespace,
-                   gpointer user_data)
-```
-
-Emit this signal to register your desire to have specific IQ stanzas to be
-emitted via the jabber-watched-iq signal when received.
-
-**Parameters:**
-
-**node**
-: The IQ child name to longer watch.
-
-**namespace**
-: The IQ child namespace to longer watch.
-
-**user_data**
-: user data set when the signal handler was connected.
-
-----
-
-#### jabber-unregister-namespace-watcher
-
-```c
-void user_function(const gchar *node,
-                   const gchar *namespace,
-                   gpointer user_data);
-```
-
-Emit this signal to unregister your desire to have specific IQ stanzas to be
-emitted via the jabber-watched-iq signal when received.
-
-**Parameters:**
-
-**node**
-: The IQ child name to no longer watch.
-
-**namespace**
-: The IQ child namespace to no longer watch.
-
-**user_data**
-: user data set when the signal handler was connected.
-
-----
-
-#### jabber-sending-xmlnode
-
-```c
-void user_function(PurpleConnection *gc,
-                   PurpleXmlNode **stanza,
-                   gpointer user_data);
-```
-
-Emit this signal (`purple_signal_emit`) to send a stanza. It is preferred to use this instead of purple_protocol_server_iface_send_raw.
-
-**Parameters:**
-
-**gc**
-: The connection on which to send the stanza.
-
-**stanza**
-: The stanza to send. If stanza is not NULL after being sent, the emitter should free it.
-
-**user_data**
-: user data set when the signal handler was connected.
-
-----
-
-#### jabber-receiving-xmlnode
-
-```c
-void user_function(PurpleConnection *gc,
-                   PurpleXmlNode **stanza,
-                   gpointer user_data);
-```
-
-Emitted when an XMPP stanza is received. Allows a plugin to process any stanza.
-
-**Parameters:**
-
-**gc**
-: The connection on which the stanza was received.
-
-**stanza**
-: The received stanza. Set stanza to NULL (and free it) to stop processing the stanza.
-
-**user_data**
-: user data set when the signal handler was connected.
