aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/audio-inline/Makefile.am7
-rw-r--r--plugins/backup-restore/backup-restore.c8
-rw-r--r--plugins/backup-restore/backup.c76
-rw-r--r--plugins/bbdb/Makefile.am7
-rw-r--r--plugins/external-editor/Makefile.am8
-rw-r--r--plugins/google-account-setup/google-source.c130
-rw-r--r--plugins/groupwise-features/Makefile.am4
-rw-r--r--plugins/imap-features/Makefile.am4
-rw-r--r--plugins/ipod-sync/Makefile.am1
-rw-r--r--plugins/itip-formatter/itip-formatter.c28
-rw-r--r--plugins/mail-notification/Makefile.am7
-rw-r--r--plugins/mono/mono-plugin.c2
-rw-r--r--plugins/pst-import/Makefile.am9
-rw-r--r--plugins/publish-calendar/publish-calendar.c4
-rw-r--r--plugins/tnef-attachments/Makefile.am8
-rw-r--r--plugins/vcard-inline/Makefile.am7
16 files changed, 229 insertions, 81 deletions
diff --git a/plugins/audio-inline/Makefile.am b/plugins/audio-inline/Makefile.am
index 0437d0471d..785d53557a 100644
--- a/plugins/audio-inline/Makefile.am
+++ b/plugins/audio-inline/Makefile.am
@@ -1,3 +1,10 @@
+if OS_WIN32
+NO_UNDEFINED_REQUIRED_LIBS = \
+ $(top_builddir)/mail/libevolution-mail.la \
+ $(top_builddir)/e-util/libeutil.la \
+ $(GNOME_PLATFORM_LIBS)
+endif
+
AM_CPPFLAGS = \
-I$(top_srcdir) \
$(EVOLUTION_MAIL_CFLAGS) \
diff --git a/plugins/backup-restore/backup-restore.c b/plugins/backup-restore/backup-restore.c
index e550851762..b4f0d98011 100644
--- a/plugins/backup-restore/backup-restore.c
+++ b/plugins/backup-restore/backup-restore.c
@@ -55,18 +55,18 @@ static void
backup (const gchar *filename, gboolean restart)
{
if (restart)
- execl (EVOLUTION_TOOLSDIR "/evolution-backup", "evolution-backup", "--gui", "--backup", "--restart", filename, NULL);
+ execl (EVOLUTION_TOOLSDIR "/evolution-backup", "evolution-backup", "--gui", "--backup", "--restart", filename, (char *)NULL);
else
- execl (EVOLUTION_TOOLSDIR "/evolution-backup", "evolution-backup", "--gui", "--backup", filename, NULL);
+ execl (EVOLUTION_TOOLSDIR "/evolution-backup", "evolution-backup", "--gui", "--backup", filename, (char *)NULL);
}
static void
restore (const gchar *filename, gboolean restart)
{
if (restart)
- execl (EVOLUTION_TOOLSDIR "/evolution-backup", "evolution-backup", "--gui", "--restore", "--restart", filename, NULL);
+ execl (EVOLUTION_TOOLSDIR "/evolution-backup", "evolution-backup", "--gui", "--restore", "--restart", filename, (char *)NULL);
else
- execl (EVOLUTION_TOOLSDIR "/evolution-backup", "evolution-backup", "--gui", "--restore", filename, NULL);
+ execl (EVOLUTION_TOOLSDIR "/evolution-backup", "evolution-backup", "--gui", "--restore", filename, (char *)NULL);
}
static gboolean
diff --git a/plugins/backup-restore/backup.c b/plugins/backup-restore/backup.c
index 92adb2d7a4..1ca9a52dc2 100644
--- a/plugins/backup-restore/backup.c
+++ b/plugins/backup-restore/backup.c
@@ -51,11 +51,11 @@ static gchar *chk_file = NULL;
static gboolean restart_arg = FALSE;
static gboolean gui_arg = FALSE;
static gchar **opt_remaining = NULL;
-static gint result=0;
+static gint result = 0;
static GtkWidget *progress_dialog;
static GtkWidget *pbar;
static gchar *txt = NULL;
-gboolean complete = FALSE;
+static gboolean complete = FALSE;
static GOptionEntry options[] = {
{ "backup", '\0', 0, G_OPTION_ARG_NONE, &backup_op,
@@ -76,9 +76,11 @@ static GOptionEntry options[] = {
#define d(x)
#define print_and_run(x) G_STMT_START { g_message ("%s", x); system (x); } G_STMT_END
-
#define CANCEL(x) if (x) return;
+static gboolean check (const gchar *filename);
+
+
static GString *
replace_string (const gchar *text, const gchar *find, const gchar *replace)
{
@@ -228,6 +230,20 @@ restore (const gchar *filename)
gchar *quotedfname;
g_return_if_fail (filename && *filename);
+
+ if (!check (filename)) {
+ g_message ("Cannot restore from an incorrect archive '%s'.", filename);
+
+ if (restart_arg) {
+ CANCEL (complete);
+ txt = _("Restarting Evolution");
+ complete=TRUE;
+ run_cmd (EVOLUTION);
+ }
+
+ return;
+ }
+
quotedfname = g_shell_quote(filename);
/* FIXME Will the versioned setting always work? */
@@ -273,38 +289,51 @@ restore (const gchar *filename)
}
-static void
+static gboolean
check (const gchar *filename)
{
gchar *command;
gchar *quotedfname;
- g_return_if_fail (filename && *filename);
+ g_return_val_if_fail (filename && *filename, FALSE);
quotedfname = g_shell_quote(filename);
- command = g_strdup_printf ("tar ztf %s | grep -e \"^\\.evolution/$\"", quotedfname);
+ command = g_strdup_printf ("tar ztf %s 1>/dev/null", quotedfname);
result = system (command);
g_free (command);
g_message ("First result %d", result);
- if (result)
- exit (result);
+ if (result) {
+ g_free (quotedfname);
+ return FALSE;
+ }
+
+ command = g_strdup_printf ("tar ztf %s | grep -e \"^\\.evolution/$\"", quotedfname);
+ result = system (command);
+ g_free (command);
+
+ g_message ("Second result %d", result);
+ if (result) {
+ g_free (quotedfname);
+ return FALSE;
+ }
command = g_strdup_printf ("tar ztf %s | grep -e \"^\\.evolution/%s$\"", quotedfname, GCONF_DUMP_FILE);
result = system (command);
g_free (command);
g_free (quotedfname);
- g_message ("Second result %d", result);
+ g_message ("Third result %d", result);
+ return result != 0;
}
static gboolean
-pbar_update()
+pbar_update (gpointer data)
{
if (!complete) {
- gtk_progress_bar_pulse ((GtkProgressBar *)pbar);
- gtk_progress_bar_set_text ((GtkProgressBar *)pbar, txt);
+ gtk_progress_bar_pulse ((GtkProgressBar *)pbar);
+ gtk_progress_bar_set_text ((GtkProgressBar *)pbar, txt);
return TRUE;
}
@@ -334,7 +363,7 @@ idle_cb(gpointer data)
if (gui_arg) {
/* Show progress dialog */
- gtk_progress_bar_pulse ((GtkProgressBar *)pbar);
+ gtk_progress_bar_pulse ((GtkProgressBar *)pbar);
g_timeout_add (50, pbar_update, NULL);
}
@@ -356,6 +385,21 @@ dlg_response (GtkWidget *dlg, gint response, gpointer data)
/* We will kill just the tar operation. Rest of the them will be just a second of microseconds.*/
run_cmd ("pkill tar");
+ if (bk_file && backup_op && response == GTK_RESPONSE_REJECT) {
+ /* backup was canceled, delete the backup file as it is not needed now */
+ gchar *cmd, *filename;
+
+ g_message ("Backup canceled, removing partial backup file.");
+
+ filename = g_shell_quote (bk_file);
+ cmd = g_strconcat ("rm ", filename, NULL);
+
+ run_cmd (cmd);
+
+ g_free (cmd);
+ g_free (filename);
+ }
+
gtk_main_quit ();
}
@@ -495,9 +539,9 @@ main (gint argc, gchar **argv)
g_signal_connect (progress_dialog, "response", G_CALLBACK(dlg_response), NULL);
gtk_widget_show_all (progress_dialog);
} else if (check_op) {
- /* For sanity we don't need gui */
- check (chk_file);
- exit (result);
+ /* For sanity we don't need gui */
+ check (chk_file);
+ exit (result == 0 ? 0 : 1);
}
g_idle_add (idle_cb, NULL);
diff --git a/plugins/bbdb/Makefile.am b/plugins/bbdb/Makefile.am
index 51811eaaf9..0a44dc0c26 100644
--- a/plugins/bbdb/Makefile.am
+++ b/plugins/bbdb/Makefile.am
@@ -1,3 +1,10 @@
+if OS_WIN32
+NO_UNDEFINED_REQUIRED_LIBS = \
+ $(top_builddir)/mail/libevolution-mail.la \
+ $(top_builddir)/e-util/libeutil.la \
+ $(GNOME_PLATFORM_LIBS)
+endif
+
AM_CPPFLAGS = \
-I$(top_builddir)/composer \
-I$(top_srcdir) \
diff --git a/plugins/external-editor/Makefile.am b/plugins/external-editor/Makefile.am
index c05b22a3c5..8c47bca60c 100644
--- a/plugins/external-editor/Makefile.am
+++ b/plugins/external-editor/Makefile.am
@@ -1,3 +1,11 @@
+if OS_WIN32
+NO_UNDEFINED_REQUIRED_LIBS = \
+ $(EVOLUTION_MAIL_LIBS) \
+ $(GNOME_PLATFORM_LIBS) \
+ $(top_builddir)/e-util/libeutil.la \
+ $(top_builddir)/mail/libevolution-mail.la
+endif
+
AM_CPPFLAGS = \
-DEVOLUTION_LOCALEDIR=\""$(localedir)"\" \
-DEVOLUTION_TOOLSDIR=\""$(privlibexecdir)"\" \
diff --git a/plugins/google-account-setup/google-source.c b/plugins/google-account-setup/google-source.c
index d475bf8036..45d21ba762 100644
--- a/plugins/google-account-setup/google-source.c
+++ b/plugins/google-account-setup/google-source.c
@@ -49,9 +49,9 @@
#include "google-contacts-source.h"
-#define CALENDAR_LOCATION "http://www.google.com/calendar/feeds/"
+#define CALENDAR_LOCATION "://www.google.com/calendar/feeds/"
#define CALENDAR_DEFAULT_PATH "/private/full"
-#define URL_GET_SUBSCRIBED_CALENDARS "http://www.google.com/calendar/feeds/default/allcalendars/full"
+#define URL_GET_SUBSCRIBED_CALENDARS "://www.google.com/calendar/feeds/default/allcalendars/full"
#define d(x)
@@ -99,19 +99,6 @@ e_plugin_lib_enable (EPluginLib *ep, gint enable)
/********************************************************************************************************************/
-#if 0
-
-FIXME: Not sure why this function is declared but called no where. This needs fixing.
-
-static void
-ssl_changed (GtkToggleButton *button, ESource *source)
-{
- e_source_set_property(source, "ssl",
- gtk_toggle_button_get_active(button) ? "1" : "0");
-}
-
-#endif
-
static gboolean
is_email (const gchar *address)
@@ -149,12 +136,12 @@ sanitize_user_mail (const gchar *user)
}
static gchar *
-construct_default_uri (const gchar *username)
+construct_default_uri (const gchar *username, gboolean is_ssl)
{
gchar *user, *uri;
user = sanitize_user_mail (username);
- uri = g_strconcat (CALENDAR_LOCATION, user, CALENDAR_DEFAULT_PATH, NULL);
+ uri = g_strconcat (is_ssl ? "https" : "http", CALENDAR_LOCATION, user, CALENDAR_DEFAULT_PATH, NULL);
g_free (user);
return uri;
@@ -165,40 +152,43 @@ static gboolean
is_default_uri (const gchar *given_uri, const gchar *username)
{
gchar *uri, *at;
- gint ats;
- gboolean res;
+ gint ats, i;
+ gboolean res = FALSE;
if (!given_uri)
return TRUE;
- uri = construct_default_uri (username);
+ for (i = 0; !res && i < 2; i++) {
+ /* try both versions here, with and without ssl */
+ uri = construct_default_uri (username, i == 0);
- /* count number of '@' in given_uri to know how much memory will be required */
- ats = 0;
- for (at = strchr (given_uri, '@'); at; at = strchr (at + 1, '@')) {
- ats++;
- }
-
- if (!ats)
- res = g_ascii_strcasecmp (given_uri, uri) == 0;
- else {
- const gchar *last;
- gchar *tmp = g_malloc0 (sizeof (gchar) * (1 + strlen (given_uri) + (2 * ats)));
-
- last = given_uri;
- for (at = strchr (last, '@'); at; at = strchr (at + 1, '@')) {
- strncat (tmp, last, at - last);
- strcat (tmp, "%40");
- last = at + 1;
+ /* count number of '@' in given_uri to know how much memory will be required */
+ ats = 0;
+ for (at = strchr (given_uri, '@'); at; at = strchr (at + 1, '@')) {
+ ats++;
}
- strcat (tmp, last);
- res = g_ascii_strcasecmp (tmp, uri) == 0;
+ if (!ats)
+ res = g_ascii_strcasecmp (given_uri, uri) == 0;
+ else {
+ const gchar *last;
+ gchar *tmp = g_malloc0 (sizeof (gchar) * (1 + strlen (given_uri) + (2 * ats)));
+
+ last = given_uri;
+ for (at = strchr (last, '@'); at; at = strchr (at + 1, '@')) {
+ strncat (tmp, last, at - last);
+ strcat (tmp, "%40");
+ last = at + 1;
+ }
+ strcat (tmp, last);
- g_free (tmp);
- }
+ res = g_ascii_strcasecmp (tmp, uri) == 0;
- g_free (uri);
+ g_free (tmp);
+ }
+
+ g_free (uri);
+ }
return res;
}
@@ -209,15 +199,16 @@ static void
user_changed (GtkEntry *editable, ESource *source)
{
gchar *uri;
- const gchar *user;
+ const gchar *user, *ssl;
/* two reasons why set readonly to FALSE:
a) the e_source_set_relative_uri does nothing for readonly sources
b) we are going to set default uri, which should be always writeable */
e_source_set_readonly (source, FALSE);
+ ssl = e_source_get_property (source, "ssl");
user = gtk_entry_get_text (GTK_ENTRY (editable));
- uri = construct_default_uri (user);
+ uri = construct_default_uri (user, !ssl || g_str_equal (ssl, "1"));
e_source_set_relative_uri (source, uri);
g_free (uri);
@@ -360,8 +351,10 @@ cal_combo_changed (GtkComboBox *combo, ESource *source)
gtk_tree_model_get (GTK_TREE_MODEL (store), &iter, COL_TITLE, &title, COL_URL_PATH, &uri, COL_READ_ONLY, &readonly, -1);
- if (!uri)
- uri = construct_default_uri (e_source_get_property (source, "username"));
+ if (!uri) {
+ const gchar *ssl = e_source_get_property (source, "ssl");
+ uri = construct_default_uri (e_source_get_property (source, "username"), !ssl || g_str_equal (ssl, "1"));
+ }
if (is_default_uri (uri, e_source_get_property (source, "username"))) {
/* do not store title when we use default uri */
@@ -404,7 +397,8 @@ retrieve_list_clicked (GtkButton *button, GtkComboBox *combo)
GDataGoogleService *service;
GDataFeed *feed;
gchar *password, *tmp;
- const gchar *username;
+ const gchar *username, *ssl;
+ gchar *get_subscribed_url;
GError *error = NULL;
GtkWindow *parent;
@@ -434,7 +428,10 @@ retrieve_list_clicked (GtkButton *button, GtkComboBox *combo)
memset (password, 0, strlen (password));
g_free (password);
- feed = gdata_service_get_feed (GDATA_SERVICE (service), URL_GET_SUBSCRIBED_CALENDARS, &error);
+ ssl = e_source_get_property (source, "ssl");
+ get_subscribed_url = g_strconcat ((!ssl || g_str_equal (ssl, "1")) ? "https" : "http", URL_GET_SUBSCRIBED_CALENDARS, NULL);
+ feed = gdata_service_get_feed (GDATA_SERVICE (service), get_subscribed_url, &error);
+ g_free (get_subscribed_url);
if (feed) {
GSList *l;
@@ -544,6 +541,20 @@ retrieve_list_sensitize (GtkEntry *username_entry,
gtk_widget_set_sensitive (button, sensitive);
}
+static void
+ssl_toggled (GtkToggleButton *check, ESource *source)
+{
+ g_return_if_fail (check != NULL);
+ g_return_if_fail (source != NULL);
+
+ if (gtk_toggle_button_get_active (check))
+ e_source_set_property (source, "ssl", "1");
+ else
+ e_source_set_property (source, "ssl", "0");
+
+ user_changed (GTK_ENTRY (g_object_get_data (G_OBJECT (check), "username")), source);
+}
+
GtkWidget *
plugin_google (EPlugin *epl,
EConfigHookItemFactoryData *data)
@@ -585,19 +596,27 @@ plugin_google (EPlugin *epl,
return NULL;
}
+ e_uri_free (euri);
+
username = e_source_get_property (source, "username");
- g_free (euri->user);
- euri->user = NULL;
- uri = e_uri_to_string (euri, FALSE);
ssl_prop = e_source_get_property (source, "ssl");
- if (ssl_prop && ssl_prop[0] == '1') {
+ if (!ssl_prop || g_str_equal (ssl_prop, "1")) {
ssl_enabled = TRUE;
} else {
ssl_enabled = FALSE;
}
- e_source_set_property (source, "ssl", "1");
+ if (!ssl_prop) {
+ e_source_set_property (source, "ssl", "1");
+ } else if (ssl_enabled) {
+ const gchar *rel_uri = e_source_peek_relative_uri (source);
+
+ if (rel_uri && g_str_has_prefix (rel_uri, "http://")) {
+ ssl_enabled = FALSE;
+ e_source_set_property (source, "ssl", "0");
+ }
+ }
/* Build up the UI */
parent = data->parent;
@@ -664,13 +683,14 @@ plugin_google (EPlugin *epl,
gtk_table_attach (GTK_TABLE (parent), hbox, 1, 2, row + 2, row + 3, GTK_EXPAND | GTK_FILL, 0, 0, 0);
+ g_object_set_data (G_OBJECT (cssl), "username", user);
+ g_signal_connect (cssl, "toggled", G_CALLBACK (ssl_toggled), source);
+
g_signal_connect (G_OBJECT (user),
"changed",
G_CALLBACK (user_changed),
source);
- g_free (uri);
-
label = gtk_label_new_with_mnemonic (_("Cal_endar:"));
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
gtk_widget_show (label);
diff --git a/plugins/groupwise-features/Makefile.am b/plugins/groupwise-features/Makefile.am
index 3bab9f6596..41b3f91170 100644
--- a/plugins/groupwise-features/Makefile.am
+++ b/plugins/groupwise-features/Makefile.am
@@ -1,3 +1,7 @@
+if OS_WIN32
+NO_UNDEFINED_REQUIRED_LIBS = $(top_builddir)/mail/libevolution-mail.la
+endif
+
AM_CPPFLAGS = \
-I$(top_srcdir) \
-I$(top_srcdir)/widgets \
diff --git a/plugins/imap-features/Makefile.am b/plugins/imap-features/Makefile.am
index a090848cad..d21841f7c7 100644
--- a/plugins/imap-features/Makefile.am
+++ b/plugins/imap-features/Makefile.am
@@ -1,3 +1,7 @@
+if OS_WIN32
+NO_UNDEFINED_REQUIRED_LIBS = $(top_builddir)/mail/libevolution-mail.la
+endif
+
AM_CPPFLAGS = \
-I$(top_srcdir) \
-I$(top_srcdir)/mail \
diff --git a/plugins/ipod-sync/Makefile.am b/plugins/ipod-sync/Makefile.am
index b19fcff84b..74522a41a3 100644
--- a/plugins/ipod-sync/Makefile.am
+++ b/plugins/ipod-sync/Makefile.am
@@ -1,5 +1,6 @@
AM_CPPFLAGS = \
-I$(top_srcdir) \
+ -I$(top_srcdir)/widgets \
$(EVOLUTION_CALENDAR_CFLAGS) \
-DDBUS_API_SUBJECT_TO_CHANGE
diff --git a/plugins/itip-formatter/itip-formatter.c b/plugins/itip-formatter/itip-formatter.c
index ed406d9bd2..558d514f86 100644
--- a/plugins/itip-formatter/itip-formatter.c
+++ b/plugins/itip-formatter/itip-formatter.c
@@ -35,6 +35,7 @@
#include <camel/camel-mime-utils.h>
#include <camel/camel-mime-message.h>
#include <camel/camel-folder.h>
+#include <camel/camel-vee-folder.h>
#include <camel/camel-multipart.h>
#include <camel/camel-service.h>
#include <camel/camel-store.h>
@@ -48,6 +49,7 @@
#include <mail/em-format.h>
#include <mail/em-format-html.h>
#include <mail/em-utils.h>
+#include <mail/mail-folder-cache.h>
#include <mail/mail-tools.h>
#include <mail/mail-mt.h>
#include <libedataserver/e-account-list.h>
@@ -2019,6 +2021,7 @@ static gboolean
in_proper_folder (CamelFolder *folder)
{
gboolean res = TRUE;
+ gint flags = 0;
gchar *uri;
if (!folder)
@@ -2026,10 +2029,27 @@ in_proper_folder (CamelFolder *folder)
uri = mail_tools_folder_to_url (folder);
- res = !(folder->folder_flags & CAMEL_FOLDER_IS_TRASH) &&
- !em_utils_folder_is_sent (folder, uri) &&
- !em_utils_folder_is_outbox (folder, uri) &&
- !em_utils_folder_is_drafts (folder, uri);
+ if (mail_folder_cache_get_folder_info_flags (folder, &flags)) {
+ /* it should be neither trash nor junk folder, */
+ res = ((flags & CAMEL_FOLDER_TYPE_TRASH) != CAMEL_FOLDER_TYPE_TRASH &&
+ (flags & CAMEL_FOLDER_TYPE_JUNK) != CAMEL_FOLDER_TYPE_JUNK &&
+ /* it can be Inbox */
+ ( (flags & CAMEL_FOLDER_TYPE_INBOX) == CAMEL_FOLDER_TYPE_INBOX ||
+ /* or any other virtual folder */
+ CAMEL_IS_VEE_FOLDER (folder) ||
+ /* or anything else except of sent, outbox or drafts folder */
+ (!em_utils_folder_is_sent (folder, uri) &&
+ !em_utils_folder_is_outbox (folder, uri) &&
+ !em_utils_folder_is_drafts (folder, uri))
+ ));
+ } else {
+ /* cannot check for Inbox folder here */
+ res = (folder->folder_flags & (CAMEL_FOLDER_IS_TRASH | CAMEL_FOLDER_IS_JUNK)) == 0 && (
+ (CAMEL_IS_VEE_FOLDER (folder)) || (
+ !em_utils_folder_is_sent (folder, uri) &&
+ !em_utils_folder_is_outbox (folder, uri) &&
+ !em_utils_folder_is_drafts (folder, uri)));
+ }
g_free (uri);
diff --git a/plugins/mail-notification/Makefile.am b/plugins/mail-notification/Makefile.am
index 62e8f72320..f1f121f6b5 100644
--- a/plugins/mail-notification/Makefile.am
+++ b/plugins/mail-notification/Makefile.am
@@ -1,3 +1,10 @@
+if OS_WIN32
+NO_UNDEFINED_REQUIRED_LIBS = \
+ $(top_builddir)/mail/libevolution-mail.la \
+ $(top_builddir)/e-util/libeutil.la \
+ $(GNOME_PLATFORM_LIBS)
+endif
+
AM_CPPFLAGS = \
-I$(top_srcdir) \
-I$(top_srcdir)/widgets \
diff --git a/plugins/mono/mono-plugin.c b/plugins/mono/mono-plugin.c
index 76b1e42da1..ae5f199c46 100644
--- a/plugins/mono/mono-plugin.c
+++ b/plugins/mono/mono-plugin.c
@@ -159,7 +159,7 @@ epm_invoke(EPlugin *ep, const gchar *name, gpointer data)
if (res) {
gpointer *p = mono_object_unbox(res);
- d(printf("mono method returned '%p' %ld\n", *p, (long gint)*p));
+ d(printf("mono method returned '%p' %ld\n", *p, (glong)*p));
return *p;
} else
return NULL;
diff --git a/plugins/pst-import/Makefile.am b/plugins/pst-import/Makefile.am
index 8720e252df..a92adfbe74 100644
--- a/plugins/pst-import/Makefile.am
+++ b/plugins/pst-import/Makefile.am
@@ -1,6 +1,15 @@
+if OS_WIN32
+NO_UNDEFINED_REQUIRED_LIBS = \
+ $(top_builddir)/mail/libevolution-mail.la \
+ $(top_builddir)/e-util/libeutil.la \
+ $(EVOLUTION_CALENDAR_LIBS) \
+ $(EVOLUTION_MAIL_LIBS)
+endif
+
AM_CPPFLAGS = \
-I$(EVOLUTION_SOURCE) \
-I$(top_srcdir) \
+ -I$(top_srcdir)/widgets \
-DGETTEXT_PACKAGE="\"$(GETTEXT_PACKAGE)\"" \
-DLOCALEDIR="\"$(LOCALEDIR)\"" \
$(EVOLUTION_CFLAGS) \
diff --git a/plugins/publish-calendar/publish-calendar.c b/plugins/publish-calendar/publish-calendar.c
index 43e093eff2..e1818d7bac 100644
--- a/plugins/publish-calendar/publish-calendar.c
+++ b/plugins/publish-calendar/publish-calendar.c
@@ -776,7 +776,7 @@ action_publish (EPlugin *ep, ECalMenuTargetSelect *t)
error_queue_add (g_strdup (_("Could not create publish thread.")), error);
}
-static void
+static gpointer
publish_uris_set_timeout (GSList *uris)
{
GSList *l;
@@ -804,6 +804,8 @@ publish_uris_set_timeout (GSList *uris)
}
g_slist_foreach (uris, (GFunc) g_free, NULL);
g_slist_free (uris);
+
+ return NULL;
}
gint
diff --git a/plugins/tnef-attachments/Makefile.am b/plugins/tnef-attachments/Makefile.am
index 262096ee87..2273e6ed80 100644
--- a/plugins/tnef-attachments/Makefile.am
+++ b/plugins/tnef-attachments/Makefile.am
@@ -1,3 +1,11 @@
+if OS_WIN32
+NO_UNDEFINED_REQUIRED_LIBS = \
+ $(EVOLUTION_MAIL_LIBS) \
+ $(GNOME_PLATFORM_LIBS) \
+ $(top_builddir)/e-util/libeutil.la \
+ $(top_builddir)/mail/libevolution-mail.la
+endif
+
AM_CPPFLAGS = \
-I$(top_srcdir) \
-I$(top_srcdir)/widgets \
diff --git a/plugins/vcard-inline/Makefile.am b/plugins/vcard-inline/Makefile.am
index e26b46879b..dd8f92fd1a 100644
--- a/plugins/vcard-inline/Makefile.am
+++ b/plugins/vcard-inline/Makefile.am
@@ -1,3 +1,10 @@
+if OS_WIN32
+NO_UNDEFINED_REQUIRED_LIBS = \
+ $(top_builddir)/mail/libevolution-mail.la \
+ $(top_builddir)/e-util/libeutil.la \
+ $(GNOME_PLATFORM_LIBS)
+endif
+
AM_CPPFLAGS = \
-I$(top_srcdir) \
$(EVOLUTION_ADDRESSBOOK_CFLAGS) \