commit ebbdf5242a69d7413e5d54b46a97b7bc98204565
parent 529d65fc3caf229006abac859f817e4cdc697c57
Author: Ricardo Mones <mones@claws-mail.org>
Date: Fri, 12 Jun 2009 10:02:11 +0000
2009-06-12 [mones] 3.7.1cvs74
* src/compose.c
* src/messageview.c
* src/prefs_account.c
* src/prefs_account.h
* src/common/utils.c
* src/common/utils.h
Added preference to use account address in generated
Message-Id. Fixes Debian bug #531052
Diffstat:
9 files changed, 53 insertions(+), 9 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -1,3 +1,14 @@
+2009-06-12 [mones] 3.7.1cvs74
+
+ * src/compose.c
+ * src/messageview.c
+ * src/prefs_account.c
+ * src/prefs_account.h
+ * src/common/utils.c
+ * src/common/utils.h
+ Added preference to use account address in generated
+ Message-Id. Fixes Debian bug #531052
+
2009-06-12 [colin] 3.7.1cvs73
* src/common/ssl.c
diff --git a/PATCHSETS b/PATCHSETS
@@ -3813,3 +3813,4 @@
( cvs diff -u -r 1.382.2.516 -r 1.382.2.517 src/compose.c; ) > 3.7.1cvs71.patchset
( cvs diff -u -r 1.9.2.40 -r 1.9.2.41 src/common/ssl.c; ) > 3.7.1cvs72.patchset
( cvs diff -u -r 1.9.2.41 -r 1.9.2.42 src/common/ssl.c; ) > 3.7.1cvs73.patchset
+( cvs diff -u -r 1.382.2.517 -r 1.382.2.518 src/compose.c; cvs diff -u -r 1.94.2.204 -r 1.94.2.205 src/messageview.c; cvs diff -u -r 1.105.2.153 -r 1.105.2.154 src/prefs_account.c; cvs diff -u -r 1.49.2.43 -r 1.49.2.44 src/prefs_account.h; cvs diff -u -r 1.36.2.171 -r 1.36.2.172 src/common/utils.c; cvs diff -u -r 1.20.2.70 -r 1.20.2.71 src/common/utils.h; ) > 3.7.1cvs74.patchset
diff --git a/configure.ac b/configure.ac
@@ -12,7 +12,7 @@ MINOR_VERSION=7
MICRO_VERSION=1
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=73
+EXTRA_VERSION=74
EXTRA_RELEASE=
EXTRA_GTK2_VERSION=
diff --git a/src/common/utils.c b/src/common/utils.c
@@ -3815,7 +3815,7 @@ gint g_int_compare(gconstpointer a, gconstpointer b)
return GPOINTER_TO_INT(a) - GPOINTER_TO_INT(b);
}
-gchar *generate_msgid(gchar *buf, gint len)
+gchar *generate_msgid(gchar *buf, gint len, gchar *user_addr)
{
struct tm *lt;
time_t t;
@@ -3828,10 +3828,20 @@ gchar *generate_msgid(gchar *buf, gint len)
lt = localtime_r(&t, &buft);
if (strcmp(buf, "") == 0) {
- addr = g_strconcat("@", get_domain_name(), NULL);
+ if (user_addr != NULL) {
+ addr = g_strconcat(user_addr, "@", get_domain_name(), NULL);
+ }
+ else {
+ addr = g_strconcat("@", get_domain_name(), NULL);
+ }
}
else {
- addr = g_strconcat("@", buf, NULL);
+ if (user_addr != NULL) {
+ addr = g_strconcat(user_addr, "@", buf, NULL);
+ }
+ else {
+ addr = g_strconcat("@", buf, NULL);
+ }
}
g_snprintf(buf, len, "%04d%02d%02d%02d%02d%02d.%08x%s",
diff --git a/src/common/utils.h b/src/common/utils.h
@@ -536,7 +536,7 @@ const gchar * line_has_quote_char (const gchar *str,
gint g_int_compare (gconstpointer a, gconstpointer b);
-gchar *generate_msgid (gchar *buf, gint len);
+gchar *generate_msgid (gchar *buf, gint len, gchar *user_addr);
gchar *generate_mime_boundary (const gchar *prefix);
gint quote_cmd_argument(gchar * result, guint size,
diff --git a/src/compose.c b/src/compose.c
@@ -5065,7 +5065,11 @@ static gint compose_redirect_write_headers(Compose *compose, FILE *fp)
}
if (compose->account->gen_msgid) {
- generate_msgid(buf, sizeof(buf));
+ gchar *addr = NULL;
+ if (compose->account->msgid_with_addr) {
+ addr = compose->account->address;
+ }
+ generate_msgid(buf, sizeof(buf), addr);
err |= (fprintf(fp, "Resent-Message-ID: <%s>\n", buf) < 0);
compose->msgid = g_strdup(buf);
} else {
@@ -6033,7 +6037,11 @@ static gchar *compose_get_header(Compose *compose)
}
if (compose->account->gen_msgid) {
- generate_msgid(buf, sizeof(buf));
+ gchar *addr = NULL;
+ if (compose->account->msgid_with_addr) {
+ addr = compose->account->address;
+ }
+ generate_msgid(buf, sizeof(buf), addr);
g_string_append_printf(header, "Message-ID: <%s>\n", buf);
compose->msgid = g_strdup(buf);
} else {
diff --git a/src/messageview.c b/src/messageview.c
@@ -964,7 +964,11 @@ static gint disposition_notification_send(MsgInfo *msginfo)
}
if (account->gen_msgid) {
- generate_msgid(buf, sizeof(buf));
+ gchar *addr = NULL;
+ if (account->msgid_with_addr) {
+ addr = account->address;
+ }
+ generate_msgid(buf, sizeof(buf), addr);
if (fprintf(fp, "Message-ID: <%s>\n", buf) < 0) {
fclose(fp);
diff --git a/src/prefs_account.c b/src/prefs_account.c
@@ -282,6 +282,7 @@ typedef struct AdvancedPage
GtkWidget *nntpport_spinbtn;
GtkWidget *domain_checkbtn;
GtkWidget *domain_entry;
+ GtkWidget *msgid_with_addr_checkbtn;
GtkWidget *crosspost_checkbtn;
GtkWidget *crosspost_colormenu;
@@ -793,6 +794,10 @@ static PrefParam advanced_param[] = {
{"domain", NULL, &tmp_ac_prefs.domain, P_STRING,
&advanced_page.domain_entry,
prefs_set_data_from_entry, prefs_set_entry},
+
+ {"msgid_with_addr", "FALSE", &tmp_ac_prefs.msgid_with_addr, P_BOOL,
+ &advanced_page.msgid_with_addr_checkbtn,
+ prefs_set_data_from_toggle, prefs_set_toggle},
#ifndef G_OS_WIN32
{"set_tunnelcmd", "FALSE", &tmp_ac_prefs.set_tunnelcmd, P_BOOL,
&advanced_page.tunnelcmd_checkbtn,
@@ -2529,6 +2534,7 @@ static void advanced_create_widget_func(PrefsPage * _page,
GtkWidget *spinbtn_nntpport;
GtkWidget *checkbtn_domain;
GtkWidget *entry_domain;
+ GtkWidget *checkbtn_msgid_with_addr;
GtkWidget *checkbtn_crosspost;
GtkWidget *colormenu_crosspost;
GtkWidget *menu;
@@ -2615,7 +2621,9 @@ static void advanced_create_widget_func(PrefsPage * _page,
_("The domain name will be used in the right part of "
"the generated Message-Ids, and when connecting to "
"SMTP servers."));
-
+ PACK_HBOX (hbox1);
+ PACK_CHECK_BUTTON (hbox1, checkbtn_msgid_with_addr,
+ _("Send account mail address in Message-Id"));
#ifndef G_OS_WIN32
PACK_HBOX (hbox1);
@@ -2705,6 +2713,7 @@ static void advanced_create_widget_func(PrefsPage * _page,
page->nntpport_spinbtn = spinbtn_nntpport;
page->domain_checkbtn = checkbtn_domain;
page->domain_entry = entry_domain;
+ page->msgid_with_addr_checkbtn = checkbtn_msgid_with_addr;
page->crosspost_checkbtn = checkbtn_crosspost;
page->crosspost_colormenu = colormenu_crosspost;
diff --git a/src/prefs_account.h b/src/prefs_account.h
@@ -164,6 +164,7 @@ struct _PrefsAccount
gushort nntpport;
gboolean set_domain;
gchar *domain;
+ gboolean msgid_with_addr;
gboolean mark_crosspost_read;
gint crosspost_col;