+2006-12-15 [wwp] 2.6.1cvs40
+
+ * src/wizard.c
+ * src/common/plugin.c
+ * src/common/plugin.h
+ * src/gtk/about.c
+ * src/plugins/bogofilter/bogofilter.c
+ * src/plugins/clamav/clamav_plugin.c
+ * src/plugins/demo/demo.c
+ * src/plugins/dillo_viewer/dillo_viewer.c
+ * src/plugins/pgpcore/plugin.c
+ * src/plugins/pgpinline/plugin.c
+ * src/plugins/pgpmime/plugin.c
+ * src/plugins/spamassassin/spamassassin.c
+ * src/plugins/trayicon/trayicon.c
+ factorize some translatable strings (plugins-related),
+ fix missing punctuation in several places,
+ remove useless translatable \n in about.c,
+ and factorize plugin init code w/ a new function
+ check_plugin_version() in common/plugin.c.
+ Patch by Fabien Vantard <fzzzzz@gmail.com>.
+
2006-12-15 [wwp] 2.6.1cvs39
* src/plugins/bogofilter/bogofilter.c
( cvs diff -u -r 1.207.2.137 -r 1.207.2.138 src/folderview.c; ) > 2.6.1cvs37.patchset
( cvs diff -u -r 1.1.2.16 -r 1.1.2.17 src/plugins/bogofilter/bogofilter.c; cvs diff -u -r 1.1.2.5 -r 1.1.2.6 src/plugins/bogofilter/bogofilter.h; cvs diff -u -r 1.1.2.9 -r 1.1.2.10 src/plugins/bogofilter/bogofilter_gtk.c; ) > 2.6.1cvs38.patchset
( cvs diff -u -r 1.1.2.17 -r 1.1.2.18 src/plugins/bogofilter/bogofilter.c; cvs diff -u -r 1.1.2.10 -r 1.1.2.11 src/plugins/bogofilter/bogofilter_gtk.c; ) > 2.6.1cvs39.patchset
+( cvs diff -u -r 1.1.2.43 -r 1.1.2.44 src/wizard.c; cvs diff -u -r 1.13.2.22 -r 1.13.2.23 src/common/plugin.c; cvs diff -u -r 1.5.2.8 -r 1.5.2.9 src/common/plugin.h; cvs diff -u -r 1.4.2.43 -r 1.4.2.44 src/gtk/about.c; cvs diff -u -r 1.1.2.18 -r 1.1.2.19 src/plugins/bogofilter/bogofilter.c; cvs diff -u -r 1.13.2.27 -r 1.13.2.28 src/plugins/clamav/clamav_plugin.c; cvs diff -u -r 1.13.2.11 -r 1.13.2.12 src/plugins/demo/demo.c; cvs diff -u -r 1.12.2.17 -r 1.12.2.18 src/plugins/dillo_viewer/dillo_viewer.c; cvs diff -u -r 1.1.2.14 -r 1.1.2.15 src/plugins/pgpcore/plugin.c; cvs diff -u -r 1.1.2.12 -r 1.1.2.13 src/plugins/pgpinline/plugin.c; cvs diff -u -r 1.1.2.22 -r 1.1.2.23 src/plugins/pgpmime/plugin.c; cvs diff -u -r 1.18.2.44 -r 1.18.2.45 src/plugins/spamassassin/spamassassin.c; cvs diff -u -r 1.14.2.45 -r 1.14.2.46 src/plugins/trayicon/trayicon.c; ) > 2.6.1cvs40.patchset
MICRO_VERSION=1
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=39
+EXTRA_VERSION=40
EXTRA_RELEASE=
EXTRA_GTK2_VERSION=
#include "utils.h"
#include "plugin.h"
#include "prefs.h"
+#include "claws.h"
struct _Plugin
{
{
return plugin->error;
}
+
+/* Generally called in plugin_init() function of each plugin. It check the
+ * minimal and compiled version of claws binary required by the plugin.
+ * If (@minimum_claws_version == 0 || @compiled_claws_version == 0), don't
+ * check the corresponding version.
+ *
+ * If an error occurs {
+ * If @error == NULL { don't allocate error string. }
+ * If @error != NULL { error string is allocated and must be freed after
+ * call function. }
+ * }
+ * Returns: FALSE if an error occurs, TRUE if all is OK.
+ */
+gint check_plugin_version(guint32 minimum_claws_version,
+ guint32 compiled_claws_version,
+ const gchar *plugin_name,
+ gchar **error)
+{
+ guint32 claws_version = claws_get_version();
+
+ if (compiled_claws_version != 0 && claws_version > compiled_claws_version) {
+ if (error != NULL) {
+ *error = (plugin_name && *plugin_name)
+ ? g_strdup_printf(_("Your version of Claws Mail is newer than the "
+ "version the '%s' plugin was built with."),
+ plugin_name)
+ : g_strdup(_("Your version of Claws Mail is newer than the "
+ "version the plugin was built with."));
+ }
+ return FALSE;
+ }
+
+ if (minimum_claws_version != 0 && claws_version < minimum_claws_version) {
+ if (error != NULL) {
+ *error = (plugin_name && *plugin_name)
+ ? g_strdup_printf(_("Your version of Claws Mail is too old for "
+ "the '%s' plugin."), plugin_name)
+ : g_strdup(_("Your version of Claws Mail is too old for the plugin."));
+ }
+ return FALSE;
+ }
+ return TRUE;
+}
const gchar *plugin_get_desc (Plugin *plugin);
const gchar *plugin_get_version (Plugin *plugin);
const gchar *plugin_get_error (Plugin *plugin);
+gint check_plugin_version (guint32 minimum_claws_version,
+ guint32 compiled_claws_version,
+ const gchar *plugin_name,
+ gchar **error);
#endif
"underline", PANGO_UNDERLINE_SINGLE,
NULL);
- gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, (_("The Claws Mail Team\n")), -1,
+ gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, (_("The Claws Mail Team")), -1,
"underlined-list-title", NULL);
+ gtk_text_buffer_insert(buffer, &iter, "\n", 1);
for (i = 0; TEAM_LIST[i] != NULL; i++) {
if (g_utf8_validate(TEAM_LIST[i], -1, NULL))
gtk_text_buffer_insert(buffer, &iter, "\n", 1);
}
- gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, (_("\nPrevious team members\n")), -1,
+ gtk_text_buffer_insert(buffer, &iter, "\n", 1);
+ gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, (_("Previous team members")), -1,
"underlined-list-title", NULL);
+ gtk_text_buffer_insert(buffer, &iter, "\n", 1);
for (i = 0; EX_TEAM_LIST[i] != NULL; i++) {
if (g_utf8_validate(EX_TEAM_LIST[i], -1, NULL))
gtk_text_buffer_insert(buffer, &iter, "\n", 1);
}
- gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, (_("\nThe translation team\n")), -1,
+ gtk_text_buffer_insert(buffer, &iter, "\n", 1);
+ gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, (_("The translation team")), -1,
"underlined-list-title", NULL);
+ gtk_text_buffer_insert(buffer, &iter, "\n", 1);
for (i = 0; TRANS_TEAM_LIST[i] != NULL; i++) {
if (g_utf8_validate(TRANS_TEAM_LIST[i], -1, NULL))
gtk_text_buffer_insert(buffer, &iter, "\n", 1);
}
- gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, (_("\nDocumentation team\n")), -1,
+ gtk_text_buffer_insert(buffer, &iter, "\n", 1);
+ gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, (_("Documentation team")), -1,
"underlined-list-title", NULL);
+ gtk_text_buffer_insert(buffer, &iter, "\n", 1);
for (i = 0; DOC_TEAM_LIST[i] != NULL; i++) {
if (g_utf8_validate(DOC_TEAM_LIST[i], -1, NULL))
gtk_text_buffer_insert(buffer, &iter, "\n", 1);
}
- gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, (_("\nLogo\n")), -1,
+ gtk_text_buffer_insert(buffer, &iter, "\n", 1);
+ gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, (_("Logo")), -1,
"underlined-list-title", NULL);
+ gtk_text_buffer_insert(buffer, &iter, "\n", 1);
for (i = 0; LOGO_LIST[i] != NULL; i++) {
if (g_utf8_validate(LOGO_LIST[i], -1, NULL))
gtk_text_buffer_insert(buffer, &iter, "\n", 1);
}
- gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, (_("\nIcons\n")), -1,
+ gtk_text_buffer_insert(buffer, &iter, "\n", 1);
+ gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, (_("Icons")), -1,
"underlined-list-title", NULL);
+ gtk_text_buffer_insert(buffer, &iter, "\n", 1);
for (i = 0; ICONS_LIST[i] != NULL; i++) {
if (g_utf8_validate(ICONS_LIST[i], -1, NULL))
gtk_text_buffer_insert(buffer, &iter, "\n", 1);
}
- gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, (_("\nContributors\n")), -1,
+ gtk_text_buffer_insert(buffer, &iter, "\n", 1);
+ gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, (_("Contributors")), -1,
"underlined-list-title", NULL);
+ gtk_text_buffer_insert(buffer, &iter, "\n", 1);
for (i = 0; CONTRIBS_LIST[i] != NULL; i++) {
if (g_utf8_validate(CONTRIBS_LIST[i], -1, NULL))
#include <pwd.h>
#endif
+#define PLUGIN_NAME (_("Bogofilter"))
+
static guint hook_id = -1;
static MessageCallback message_callback;
hook_id = -1;
- if ((claws_get_version() > VERSION_NUMERIC)) {
- *error = g_strdup(_("Your version of Claws Mail is newer than the version the Bogofilter plugin was built with"));
+ if (!check_plugin_version(MAKE_NUMERIC_VERSION(0, 9, 3, 86),
+ VERSION_NUMERIC, PLUGIN_NAME, error))
return -1;
- }
-
- if ((claws_get_version() < MAKE_NUMERIC_VERSION(0, 9, 3, 86))) {
- *error = g_strdup(_("Your version of Claws Mail is too old for the Bogofilter plugin"));
- return -1;
- }
prefs_set_default(param);
rcpath = g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S, COMMON_RC, NULL);
const gchar *plugin_name(void)
{
- return _("Bogofilter");
+ return PLUGIN_NAME;
}
const gchar *plugin_desc(void)
#include "clamav_plugin.h"
+#define PLUGIN_NAME (_("Clam AntiVirus"))
+
static guint hook_id;
static MessageCallback message_callback;
int ret;
unsigned int no;
- if ((claws_get_version() > VERSION_NUMERIC)) {
- *error = g_strdup(_("Your version of Claws Mail is newer than the version the ClamAV plugin was built with"));
+ if (!check_plugin_version(MAKE_NUMERIC_VERSION(0, 9, 3, 86),
+ VERSION_NUMERIC, PLUGIN_NAME, error))
return -1;
- }
-
- if ((claws_get_version() < MAKE_NUMERIC_VERSION(0, 9, 3, 86))) {
- *error = g_strdup(_("Your version of Claws Mail is too old for the ClamAV plugin"));
- return -1;
- }
hook_id = hooks_register_hook(MAIL_FILTERING_HOOKLIST, mail_filtering_hook, NULL);
if (hook_id == -1) {
const gchar *plugin_name(void)
{
- return _("Clam AntiVirus");
+ return PLUGIN_NAME;
}
const gchar *plugin_desc(void)
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
- #include <glib.h>
+#include <glib.h>
#include <glib/gi18n.h>
#include "hooks.h"
#include "log.h"
+#define PLUGIN_NAME (_("Demo"))
+
gboolean my_log_hook(gpointer source, gpointer data)
{
LogText *logtext = (LogText *)source;
gint plugin_init(gchar **error)
{
- if ((claws_get_version() > VERSION_NUMERIC)) {
- *error = g_strdup(_("Your claws-mail version is newer than the version the plugin was built with"));
+ if (!check_plugin_version(MAKE_NUMERIC_VERSION(0, 8, 11, 39),
+ VERSION_NUMERIC, PLUGIN_NAME, error))
return -1;
- }
-
- if ((claws_get_version() < MAKE_NUMERIC_VERSION(0, 8, 11, 39))) {
- *error = g_strdup(_("Your claws-mail version is too old"));
- return -1;
- }
hook_id = hooks_register_hook(LOG_APPEND_TEXT_HOOKLIST, my_log_hook, NULL);
if (hook_id == -1) {
const gchar *plugin_name(void)
{
- return _("Demo");
+ return PLUGIN_NAME;
}
const gchar *plugin_desc(void)
return _("This Plugin is only a demo of how to write plugins for Claws Mail. "
"It installs a hook for new log output and writes it to stdout."
"\n\n"
- "It is not really useful");
+ "It is not really useful.");
}
const gchar *plugin_type(void)
#include "dillo_prefs.h"
+#define PLUGIN_NAME (_("Dillo HTML Viewer"))
+
typedef struct _DilloViewer DilloViewer;
struct _DilloViewer
gint plugin_init(gchar **error)
{
- if ((claws_get_version() > VERSION_NUMERIC)) {
- *error = g_strdup(_("Your version of Claws Mail is newer than the version the Dillo plugin was built with"));
- return -1;
- }
-
- if ((claws_get_version() < MAKE_NUMERIC_VERSION(0, 9, 3, 86))) {
- *error = g_strdup(_("Your version of Claws Mail is too old for the Dillo plugin"));
- return -1;
- }
+ if (!check_plugin_version(MAKE_NUMERIC_VERSION(0, 9, 3, 86),
+ VERSION_NUMERIC, PLUGIN_NAME, error))
+ return -1;
dillo_prefs_init();
const gchar *plugin_name(void)
{
- return _("Dillo HTML Viewer");
+ return PLUGIN_NAME;
}
const gchar *plugin_desc(void)
#include "pgp_viewer.h"
#include "plugin.h"
+#define PLUGIN_NAME (_("PGP/Core"))
+
gint plugin_init(gchar **error)
{
- if ((claws_get_version() > VERSION_NUMERIC)) {
- *error = g_strdup(_("Your version of Claws Mail is newer than the version the PGP/Core plugin was built with"));
- return -1;
- }
-
- if ((claws_get_version() < MAKE_NUMERIC_VERSION(2, 1, 0, 1))) {
- *error = g_strdup(_("Your version of Claws Mail is too old for the PGP/Core plugin"));
+ if (!check_plugin_version(MAKE_NUMERIC_VERSION(2, 1, 0, 1),
+ VERSION_NUMERIC, PLUGIN_NAME, error))
return -1;
- }
sgpgme_init();
prefs_gpg_init();
const gchar *plugin_name(void)
{
- return _("PGP/Core");
+ return PLUGIN_NAME;
}
const gchar *plugin_desc(void)
#include "version.h"
#include "pgpinline.h"
+#define PLUGIN_NAME (_("PGP/inline"))
+
gint plugin_init(gchar **error)
{
- if ((claws_get_version() > VERSION_NUMERIC)) {
- *error = g_strdup(_("Your version of Claws Mail is newer than the version the PGP/inline plugin was built with"));
- return -1;
- }
-
- if ((claws_get_version() < MAKE_NUMERIC_VERSION(2, 1, 0, 1))) {
- *error = g_strdup(_("Your version of Claws Mail is too old for the PGP/inline plugin"));
- return -1;
- }
+ if (!check_plugin_version(MAKE_NUMERIC_VERSION(2, 1, 0, 1),
+ VERSION_NUMERIC, PLUGIN_NAME, error))
+ return -1;
pgpinline_init();
const gchar *plugin_name(void)
{
- return _("PGP/inline");
+ return PLUGIN_NAME;
}
const gchar *plugin_desc(void)
#include "version.h"
#include "common/claws.h"
#include "pgpmime.h"
+#include "plugin.h"
+
+#define PLUGIN_NAME (_("PGP/MIME"))
gint plugin_init(gchar **error)
{
- if ((claws_get_version() > VERSION_NUMERIC)) {
- *error = g_strdup(_("Your version of Claws Mail is newer than the version the PGP/MIME plugin was built with"));
- return -1;
- }
-
- if ((claws_get_version() < MAKE_NUMERIC_VERSION(2, 1, 0, 1))) {
- *error = g_strdup(_("Your version of Claws Mail is too old for the PGP/MIME plugin"));
+ if (!check_plugin_version(MAKE_NUMERIC_VERSION(2, 1, 0, 1),
+ VERSION_NUMERIC, PLUGIN_NAME, error))
return -1;
- }
pgpmime_init();
const gchar *plugin_name(void)
{
- return _("PGP/MIME");
+ return PLUGIN_NAME;
}
const gchar *plugin_desc(void)
#include <pwd.h>
#endif
+#define PLUGIN_NAME (_("SpamAssassin"))
+
enum {
CHILD_RUNNING = 1 << 0,
TIMEOUT_RUNNING = 1 << 1,
hook_id = -1;
- if ((claws_get_version() > VERSION_NUMERIC)) {
- *error = g_strdup(_("Your version of Claws Mail is newer than the version the SpamAssassin plugin was built with"));
+ if (!check_plugin_version(MAKE_NUMERIC_VERSION(0, 9, 3, 86),
+ VERSION_NUMERIC, PLUGIN_NAME, error))
return -1;
- }
-
- if ((claws_get_version() < MAKE_NUMERIC_VERSION(0, 9, 3, 86))) {
- *error = g_strdup(_("Your version of Claws Mail is too old for the SpamAssassin plugin"));
- return -1;
- }
prefs_set_default(param);
rcpath = g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S, COMMON_RC, NULL);
const gchar *plugin_name(void)
{
- return _("SpamAssassin");
+ return PLUGIN_NAME;
}
const gchar *plugin_desc(void)
#include "unreadmail.offline.xpm"
#include "nomail.offline.xpm"
+#define PLUGIN_NAME (_("Trayicon"))
+
static guint item_hook_id;
static guint folder_hook_id;
static guint offline_hook_id;
int plugin_init(gchar **error)
{
- if ((claws_get_version() > VERSION_NUMERIC)) {
- *error = g_strdup(_("Your version of Claws Mail is newer than the version the Trayicon plugin was built with"));
+ if (!check_plugin_version(MAKE_NUMERIC_VERSION(0, 9, 3, 86),
+ VERSION_NUMERIC, PLUGIN_NAME, error))
return -1;
- }
-
- if ((claws_get_version() < MAKE_NUMERIC_VERSION(0, 9, 3, 86))) {
- *error = g_strdup(_("Your version of Claws Mail is too old for the Trayicon plugin"));
- return -1;
- }
item_hook_id = hooks_register_hook (FOLDER_ITEM_UPDATE_HOOKLIST, folder_item_update_hook, NULL);
if (item_hook_id == -1) {
const gchar *plugin_name(void)
{
- return _("Trayicon");
+ return PLUGIN_NAME;
}
const gchar *plugin_desc(void)
get_rfc822_date(buf_date, sizeof(buf_date));
conv_encode_header_full(enc_subject, sizeof(enc_subject),
- _("Welcome to Claws Mail "),
+ Q_("Welcome Mail Subject|Welcome to Claws Mail"),
strlen("Subject: "), FALSE, CS_INTERNAL);
conv_encode_header_full(enc_to_name, sizeof(enc_to_name),
gtk_entry_get_text(GTK_ENTRY(wizard->full_name)),
strlen("To: "), TRUE, CS_INTERNAL);
conv_encode_header_full(enc_from_name, sizeof(enc_from_name),
- _("Claws Mail Team"),
+ _("The Claws Mail Team"),
strlen("From: "), TRUE, CS_INTERNAL);
head = g_strdup_printf(
body = g_strdup_printf(
_("\n"
"Welcome to Claws Mail\n"
- "-------------------------\n"
+ "---------------------\n"
"\n"
"Now that you have set up your account you can fetch your\n"
"mail by clicking the 'Get Mail' button at the left of the\n"