]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Added class MHMailbox
authorJack Jansen <jack.jansen@cwi.nl>
Mon, 23 Oct 1995 13:59:53 +0000 (13:59 +0000)
committerJack Jansen <jack.jansen@cwi.nl>
Mon, 23 Oct 1995 13:59:53 +0000 (13:59 +0000)
Added optional third parameter to seek.

Lib/mailbox.py

index e93512a1c896c96ac29b8f7fc1ae66dece0b20ce..8a54b46ea062de2129007b077f1d4e413fea508b 100755 (executable)
@@ -4,6 +4,8 @@
 # Jack Jansen, CWI, March 1994.
 #
 import rfc822
+import os
+import regex
 
 class _Mailbox:
        def __init__(self, fp):
@@ -59,8 +61,13 @@ class _Subfile:
        def tell(self):
                return self.pos - self.start
 
-       def seek(self, pos):
-               self.pos = pos + self.start
+       def seek(self, pos, whence=0):
+               if whence == 0:
+                   self.pos = self.start + pos
+               elif whence == 1:
+                   self.pos = self.pos + pos
+               elif whence == 2:
+                   self.pos = self.stop + pos
 
        def close(self):
                pass
@@ -103,14 +110,37 @@ class MmdfMailbox(_Mailbox):
                                self.fp.seek(pos)
                                return
 
+class MHMailbox:
+    def __init__(self, dirname):
+       pat = regex.compile('^[0-9][0-9]*$')
+       self.dirname = dirname
+       files = os.listdir(self.dirname)
+       self.boxes = []
+       for f in files:
+           if pat.match(f) == len(f):
+               self.boxes.append(f)
+
+    def next(self):
+       if not self.boxes:
+           return None
+       fn = self.boxes[0]
+       del self.boxes[0]
+       fp = open(os.path.join(self.dirname, fn))
+       return rfc822.Message(fp)
+           
+    
 if __name__ == '__main__':
        import posix
        import time
        import sys
        import string
-       mbox = '/usr/mail/'+posix.environ['USER']
-       fp = open(mbox, 'r')
-       mb = UnixMailbox(fp)
+##     mbox = '/usr/mail/'+posix.environ['USER']
+##     fp = open(mbox, 'r')
+##     mb = UnixMailbox(fp)
+
+       mbox = posix.environ['HOME']+'/Mail/inbox'
+       mb = MHMailbox(mbox)
+       
        msgs = []
        while 1:
                msg = mb.next()