[Python-checkins] python/dist/src/Lib mailbox.py,1.41,1.42

akuchling at users.sourceforge.net akuchling at users.sourceforge.net
Wed Jul 7 16:09:24 CEST 2004


Update of /cvsroot/python/python/dist/src/Lib
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7754

Modified Files:
	mailbox.py 
Log Message:
[Bug #925107] Make .readline() consider self.stop.  This makes read() and readline() very similar, so they're refactored into _read.  Patch by Johannes Gijsbers.
2.3 bugfix candidate.

Index: mailbox.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/mailbox.py,v
retrieving revision 1.41
retrieving revision 1.42
diff -C2 -d -r1.41 -r1.42
*** mailbox.py	7 Feb 2004 02:16:24 -0000	1.41
--- mailbox.py	7 Jul 2004 14:09:21 -0000	1.42
***************
*** 44,69 ****
          self.pos = self.start
  
!     def read(self, length = None):
          if self.pos >= self.stop:
              return ''
          remaining = self.stop - self.pos
!         if length is None or length < 0:
!             length = remaining
!         elif length > remaining:
              length = remaining
          self.fp.seek(self.pos)
!         data = self.fp.read(length)
          self.pos = self.fp.tell()
          return data
  
      def readline(self, length = None):
!         if self.pos >= self.stop:
!             return ''
!         if length is None:
!             length = self.stop - self.pos
!         self.fp.seek(self.pos)
!         data = self.fp.readline(length)
!         self.pos = self.fp.tell()
!         return data
  
      def readlines(self, sizehint = -1):
--- 44,64 ----
          self.pos = self.start
  
! 
!     def _read(self, length, read_function):
          if self.pos >= self.stop:
              return ''
          remaining = self.stop - self.pos
!         if length is None or length < 0 or length > remaining:
              length = remaining
          self.fp.seek(self.pos)
!         data = read_function(length)
          self.pos = self.fp.tell()
          return data
  
+     def read(self, length = None):
+         self._read(length, self.fp.read)
+ 
      def readline(self, length = None):
!         self._read(length, self.fp.readline)
  
      def readlines(self, sizehint = -1):



More information about the Python-checkins mailing list