Remove some docs that were missed or are out of date.
Testing Done:
Swam with the turtles.
Reviewed at https://reviews.imfreedom.org/r/3131/
--- a/doc/reference/libpurple/libpurple.toml.in Sun Apr 14 02:52:19 2024 -0500
+++ b/doc/reference/libpurple/libpurple.toml.in Sun Apr 14 04:41:47 2024 -0500
@@ -38,13 +38,9 @@
# The same order will be used when generating the index
- "signals_conversation.md",
--- a/doc/reference/libpurple/meson.build Sun Apr 14 02:52:19 2024 -0500
+++ b/doc/reference/libpurple/meson.build Sun Apr 14 04:41:47 2024 -0500
@@ -1,10 +1,7 @@
libpurple_doc_content_files = [
- 'signals_conversation.md',
--- a/doc/reference/libpurple/plugin_i18n.md Sun Apr 14 02:52:19 2024 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-Title: Third Party Plugin Translation
-Slug: 3rd-party-plugin-i18n
-## Third Party Plugin Translation
-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.
-For a plugin to have translation support there are a few steps that need to
-* In your `autogen.sh`, add the following after your other utility checks:
-(intltoolize --version) < /dev/null > /dev/null 2>&1 || {
- echo "You must have intltool installed to compile <YOUR PLUGIN NAME>";
-* Then before your call to aclocal add:
-intltoolize --force --copy
-* Now edit `configure.ac` and add the following:
-GETTEXT_PACKAGE=<YOUR PLUGIN NAME>
-AC_SUBST(GETTEXT_PACKAGE)
-AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, ["$GETTEXT_PACKAGE"], [Define the gettext package to be used])
-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
-* 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:
-#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:
- 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
-* Go through the rest of your code and mark all the other strings for
-* When that's done, feel free to commit your work, create your po template
-* To create you po template, `cd` to `po` and execute:
-* 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.
--- a/doc/reference/libpurple/plugin_ids.md Sun Apr 14 02:52:19 2024 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-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.
-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
-: A core libpurple plugin, capable of being loaded in any program using
-libpurple. Core plugins may not contain any UI-specific code.
-: A protocol plugin. This is a core plugin which provides libpurple the ability
-to connect to another IM or chat network.
-: 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.
-: 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.
-: 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.
-: 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
-### 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
-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
-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.
-: 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.
-: 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.
-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
--- a/doc/reference/libpurple/signals_conversation.md Sun Apr 14 02:52:19 2024 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-Title: Conversation Signals
-Slug: conversation-signals
-* [conversation-created](#conversation-created)
-* [conversation-updated](#conversation-updated)
-* [deleting-conversation](#deleting-conversation)
-* [cleared-message-history](#cleared-message-history)
-* [conversation-extended-menu](#conversation-extended-menu)
-#### conversation-created
-void user_function(PurpleConversation *conv, gpointer user_data);
-Emitted when a new conversation is created.
-: user data set when the signal handler was connected.
-----
-#### conversation-updated
-void user_function(PurpleConversation *conv,
- PurpleConvUpdateType type,
-Emitted when a conversation is updated.
-: The conversation that was updated.
-: The type of update that was made.
-: user data set when the signal handler was connected.
-----
-#### deleting-conversation
-void user_function(PurpleConversation *conv, gpointer user_data);
-Emitted just before a conversation is to be destroyed.
-: The conversation that's about to be destroyed.
-: user data set when the signal handler was connected.
-----
-void user_function(PurpleAccount *account,
-Emitted when a buddy starts typing in a conversation window.
-: The account of the user which is typing.
-: The name of the user which is typing.
-: user data set when the signal handler was connected.
-----
-#### buddy-typing-stopped
-void user_function(PurpleAccount *account,
-Emitted when a buddy stops typing in a conversation window.
-: The account of the user which stopped typing.
-: The name of the user which stopped typing.
-: user data set when the signal handler was connected.
-----
-#### conversation-extended-menu
-void user_function(PurpleConversation *conv,
-Emitted when the UI requests a list of plugin actions for a conversation.
-: A pointer to the list of actions.
-: user data set when the signal handler was connected.
-----
-#### cleared-message-history
-void user_function(PurpleConversation *conv, gpointer user_data);
-Emitted when the conversation history is cleared.
-: user data set when the signal handler was connected.
--- a/doc/reference/libpurple/signals_jabber.md Sun Apr 14 02:52:19 2024 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,277 +0,0 @@
-* [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)
-#### jabber-receiving-iq
-gboolean user_function(PurpleConnection *gc,
-Emitted when an XMPP IQ stanza is received. Allows a plugin to process IQ
-: The connection on which the stanza is received.
-: The IQ type ('get', 'set', 'result', or 'error').
-: The ID attribute from the stanza. MUST NOT be NULL.
-: The originator of the stanza. MAY BE NULL if the stanza originated from the
-: The full stanza received.
-: user data set when the signal handler was connected.
-`TRUE` if the plugin processed this stanza and *nobody else* should process it.
-----
-#### jabber-receiving-message
-gboolean user_function(PurpleConnection *gc,
- PurpleXmlNode *message,
-Emitted when an XMPP message stanza is received. Allows a plugin to process
-: The connection on which the stanza is received.
-: The message type (see rfc3921 or rfc3921bis).
-: The ID attribute from the stanza. MAY BE NULL.
-: The originator of the stanza. MAY BE NULL if the stanza originated from the
-: The destination of the stanza. This is probably either the full JID of the
-receiver or the receiver's bare JID.
-: The full stanza received.
-: user data set when the signal handler was connected.
-`TRUE` if the plugin processed this stanza and *nobody else* should process it.
-----
-#### jabber-receiving-presence
-gboolean user_function(PurpleConnection *gc,
- PurpleXmlNode *presence,
-Emitted when an XMPP presence stanza is received. Allows a plugin to process
-: The connection on which the stanza is received.
-: The presence type (see rfc3921 or rfc3921bis). NULL indicates this is an
-"available" (i.e. online) presence.
-: The originator of the stanza. MAY BE NULL if the stanza originated from the
-: The full stanza received.
-: user data set when the signal handler was connected.
-`TRUE` if the plugin processed this stanza and *nobody else* should process it.
-----
-gboolean user_function(PurpleConnection *gc,
-Emitted when an IQ with a watched (child, namespace) pair is received. See jabber-register-namespace-watcher and jabber-unregister-namespace-watcher.
-: The connection on which the stanza is received.
-: The IQ type ('get', 'set', 'result', or 'error').
-: The ID attribute from the stanza. MUST NOT be NULL.
-: The originator of the stanza. MAY BE NULL if the stanza originated from the user's server.
-: The child node with namespace.
-: user data set when the signal handler was connected.
-`TRUE` if the plugin processed this stanza and *nobody else* should process it.
-----
-#### jabber-register-namespace-watcher
-void user_function(const gchar *node,
- const gchar *namespace,
-Emit this signal to register your desire to have specific IQ stanzas to be
-emitted via the jabber-watched-iq signal when received.
-: The IQ child name to longer watch.
-: The IQ child namespace to longer watch.
-: user data set when the signal handler was connected.
-----
-#### jabber-unregister-namespace-watcher
-void user_function(const gchar *node,
- const gchar *namespace,
-Emit this signal to unregister your desire to have specific IQ stanzas to be
-emitted via the jabber-watched-iq signal when received.
-: The IQ child name to no longer watch.
-: The IQ child namespace to no longer watch.
-: user data set when the signal handler was connected.
-----
-#### jabber-sending-xmlnode
-void user_function(PurpleConnection *gc,
- PurpleXmlNode **stanza,
-Emit this signal (`purple_signal_emit`) to send a stanza. It is preferred to use this instead of purple_protocol_server_iface_send_raw.
-: The connection on which to send the stanza.
-: The stanza to send. If stanza is not NULL after being sent, the emitter should free it.
-: user data set when the signal handler was connected.
-----
-#### jabber-receiving-xmlnode
-void user_function(PurpleConnection *gc,
- PurpleXmlNode **stanza,
-Emitted when an XMPP stanza is received. Allows a plugin to process any stanza.
-: The connection on which the stanza was received.
-: The received stanza. Set stanza to NULL (and free it) to stop processing the stanza.
-: user data set when the signal handler was connected.