summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabian Groffen <grobian@gentoo.org>2010-02-11 19:44:49 +0000
committerFabian Groffen <grobian@gentoo.org>2010-02-11 19:44:49 +0000
commitf094e887b8722210d4561619da42843f4f052fc7 (patch)
tree1781f282af853a9c7b4b6597beb63201a8e1d1a6 /mail-client/mutt/files
parentAdd font_pkg_setup to pkg_setup so the eclass sets up the prefix compat varia... (diff)
downloadhistorical-f094e887b8722210d4561619da42843f4f052fc7.tar.gz
historical-f094e887b8722210d4561619da42843f4f052fc7.tar.bz2
historical-f094e887b8722210d4561619da42843f4f052fc7.zip
Add patch from upstream to preserve From when copying mail from e.g. mbox to imap.
Package-Manager: portage-2.2.00.15335-prefix/cvs/Darwin powerpc
Diffstat (limited to 'mail-client/mutt/files')
-rw-r--r--mail-client/mutt/files/mutt-1.5.20-copy-From-to-imap-b2b97c7a2ae6.patch72
1 files changed, 72 insertions, 0 deletions
diff --git a/mail-client/mutt/files/mutt-1.5.20-copy-From-to-imap-b2b97c7a2ae6.patch b/mail-client/mutt/files/mutt-1.5.20-copy-From-to-imap-b2b97c7a2ae6.patch
new file mode 100644
index 000000000000..f6e24fc75447
--- /dev/null
+++ b/mail-client/mutt/files/mutt-1.5.20-copy-From-to-imap-b2b97c7a2ae6.patch
@@ -0,0 +1,72 @@
+http://dev.mutt.org/trac/changeset/b2b97c7a2ae6
+http://dev.mutt.org/trac/ticket/3381
+
+Set internaldate of messages appended to IMAP mailboxes
+
+
+Index: imap/imap_private.h
+===================================================================
+--- imap/imap_private.h (revision 5661:b1488cf4f14c)
++++ imap/imap_private.h (revision 5949:b2b97c7a2ae6)
+@@ -70,4 +70,7 @@
+ #define IMAP_CMD_PASS (1<<1)
+ #define IMAP_CMD_QUEUE (1<<2)
++
++/* length of "DD-MMM-YYYY HH:MM:SS +ZZzz" (null-terminated) */
++#define IMAP_DATELEN 27
+
+ enum
+@@ -282,4 +285,5 @@
+ char* imap_next_word (char* s);
+ time_t imap_parse_date (char* s);
++void imap_make_date (char* buf, time_t timestamp);
+ void imap_qualify_path (char *dest, size_t len, IMAP_MBOX *mx, char* path);
+ void imap_quote_string (char* dest, size_t slen, const char* src);
+Index: imap/message.c
+===================================================================
+--- imap/message.c (revision 5930:ed7eb5de7536)
++++ imap/message.c (revision 5949:b2b97c7a2ae6)
+@@ -595,4 +595,5 @@
+ char mbox[LONG_STRING];
+ char mailbox[LONG_STRING];
++ char internaldate[IMAP_DATELEN];
+ size_t len;
+ progress_t progressbar;
+@@ -636,5 +637,6 @@
+
+ imap_munge_mbox_name (mbox, sizeof (mbox), mailbox);
+- snprintf (buf, sizeof (buf), "APPEND %s (%s%s%s%s%s) {%lu}", mbox,
++ imap_make_date (internaldate, msg->received);
++ snprintf (buf, sizeof (buf), "APPEND %s (%s%s%s%s%s) \"%s\" {%lu}", mbox,
+ msg->flags.read ? "\\Seen" : "",
+ msg->flags.read && (msg->flags.replied || msg->flags.flagged) ? " " : "",
+@@ -642,4 +644,5 @@
+ msg->flags.replied && msg->flags.flagged ? " " : "",
+ msg->flags.flagged ? "\\Flagged" : "",
++ internaldate,
+ (unsigned long) len);
+
+Index: imap/util.c
+===================================================================
+--- imap/util.c (revision 5867:0fb94d6eee38)
++++ imap/util.c (revision 5949:b2b97c7a2ae6)
+@@ -578,4 +578,19 @@
+ }
+
++/* format date in IMAP style: DD-MMM-YYYY HH:MM:SS +ZZzz.
++ * Caller should provide a buffer of IMAP_DATELEN bytes */
++void imap_make_date (char *buf, time_t timestamp)
++{
++ struct tm* tm = localtime (&timestamp);
++ time_t tz = mutt_local_tz (timestamp);
++
++ tz /= 60;
++
++ snprintf (buf, IMAP_DATELEN, "%02d-%s-%d %02d:%02d:%02d %+03d%02d",
++ tm->tm_mday, Months[tm->tm_mon], tm->tm_year + 1900,
++ tm->tm_hour, tm->tm_min, tm->tm_sec,
++ (int) tz / 60, (int) abs (tz) % 60);
++}
++
+ /* imap_qualify_path: make an absolute IMAP folder target, given IMAP_MBOX
+ * and relative path. */