Blob Blame History Raw
--- archivemail	2006-11-03 01:21:22.000000000 +0200
+++ 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()