When converting from other formats to mbox, don't preserve existing 'Status' and

'X-Status' mbox headers, we better overwrite them with correct values.
This commit is contained in:
Nikolaus Schulz 2007-11-02 23:35:50 +00:00
parent c0552fcd06
commit 74c871644e
2 changed files with 15 additions and 21 deletions

View File

@ -24,6 +24,9 @@ Version 0.7.1 - UNRELEASED
* archivemail now accepts --days=0
* Fixed crash if --warn-duplicate is used with IMAP (Thanks Christian
Brabandt) Closes: Debian bug #434786 (the Debian package already has a fix)
* When converting from other formats to mbox, archivemail used to preserve
existing 'Status' and 'X-Status' mbox headers; these are now silently
overwritten to ensure they have correct values.
Version 0.7.0 - 2 November 2006
* Fixed long options --filter-append and --pwfile to accept their arguments.

View File

@ -851,19 +851,14 @@ def add_status_headers(message):
if last_dir == "cur":
status = status + "O"
# Maildir messages should not already have 'Status' and 'X-Status'
# headers, although I have seen it done. If they do already have them, just
# preserve them rather than trying to overwrite/verify them.
old_status = message.get('Status')
if old_status:
vprint("preserving existing Status header '%s'" % old_status)
elif status:
# Overwrite existing 'Status' and 'X-Status' headers. They add no value in
# maildirs, and we better don't listen to them.
del message['Status']
if status:
vprint("converting maildir status into Status header '%s'" % status)
message['Status'] = status
old_x_status = message.get('X-Status')
if old_x_status:
vprint("preserving existing X-Status header '%s'" % old_x_status)
elif x_status:
del message['X-Status']
if x_status:
vprint("converting maildir status into X-Status header '%s'" % x_status)
message['X-Status'] = x_status
@ -888,18 +883,14 @@ def add_status_headers_imap(message, flags):
if flags.count("\\Recent") == 0:
status = status + "O"
# As with maildir folders, preserve Status and X-Status headers
# if they exist (they shouldn't)
old_status = message.get('Status')
if old_status:
vprint("preserving existing Status header '%s'" % old_status)
elif status:
# As with maildir folders, overwrite Status and X-Status headers
# if they exist.
del message['Status']
if status:
vprint("converting imap status into Status header '%s'" % status)
message['Status'] = status
old_x_status = message.get('X-Status')
if old_x_status:
vprint("preserving existing X-Status header '%s'" % old_x_status)
elif x_status:
del message['X-Status']
if x_status:
vprint("converting imap status into X-Status header '%s'" % x_status)
message['X-Status'] = x_status