--- archivemail-0.7.0/archivemail.orig 2006-11-03 01:21:22.000000000 +0200 +++ archivemail-0.7.0/archivemail 2007-05-10 12:04:16.000000000 +0300 @@ -779,7 +779,10 @@ # the headers have no valid dates -- last resort, try the file timestamp # this will not work for mbox mailboxes try: - file_name = message.fp.name + if sys.hexversion >= 0x020500F0: + file_name = message.fp._file.name + else: + file_name = message.fp.name except AttributeError: # we are looking at a 'mbox' mailbox - argh! # Just return the current time - this will never get archived :( @@ -788,7 +791,7 @@ if not os.path.isfile(file_name): unexpected_error("mailbox file name '%s' has gone missing" % \ file_name) - time_message = os.path.getmtime(message.fp.name) + time_message = os.path.getmtime(file_name) vprint("using valid time found from '%s' last-modification time" % \ file_name) return time_message @@ -806,7 +809,11 @@ """ status = "" x_status = "" - match = re.search(":2,(.+)$", message.fp.name) + if sys.hexversion >= 0x020500F0: + fpname = message.fp._file.name + else: + fpname = message.fp.name + match = re.search(":2,(.+)$", fpname) if match: flags = match.group(1) for flag in flags: @@ -825,7 +832,7 @@ # files in the maildir 'cur' directory are no longer new, # they are the same as messages with 'Status: O' headers in mbox - last_dir = os.path.basename(os.path.dirname(message.fp.name)) + last_dir = os.path.basename(os.path.dirname(fpname)) if last_dir == "cur": status = status + "O" @@ -881,7 +888,10 @@ return 1 file_name = None try: - file_name = message.fp.name + if sys.hexversion >= 0x020500F0: + file_name = message.fp._file.name + else: + file_name = message.fp.name except AttributeError: pass # maildir mailboxes use the filename suffix to indicate flagged status @@ -901,7 +911,10 @@ return 0 file_name = None try: - file_name = message.fp.name + if sys.hexversion >= 0x020500F0: + file_name = message.fp._file.name + else: + file_name = message.fp.name except AttributeError: pass # maildir mailboxes use the filename suffix to indicate read status @@ -918,7 +931,10 @@ file_name = None message_size = None try: - file_name = message.fp.name + if sys.hexversion >= 0x020500F0: + file_name = message.fp._file.name + else: + file_name = message.fp.name except AttributeError: pass if file_name: @@ -1269,7 +1285,11 @@ if type == "maildir": add_status_headers(msg) archive.write(msg) - if not options.dry_run: delete_queue.append(msg.fp.name) + if sys.hexversion >= 0x020500F0: + fpname = msg.fp._file.name + else: + fpname = msg.fp.name + if not options.dry_run: delete_queue.append(fpname) else: vprint("decision: retain message") msg = original.next()