[KoCo-CVS] [Commit] KoreanCodecs/korean/c euc_kr.py
Brought to you by:
perky
From: Chang <pe...@us...> - 2002-04-28 21:40:35
|
perky 02/04/27 23:54:11 Modified: korean/c euc_kr.py Log: - Fix unlimited access on boundary problem on readline_finalize - Let python.c.euc_kr uses _koco.StreamReader as stream reader Revision Changes Path 1.2 +3 -48 KoreanCodecs/korean/c/euc_kr.py Index: euc_kr.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/korean/c/euc_kr.py,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- euc_kr.py 16 Mar 2002 01:59:18 -0000 1.1 +++ euc_kr.py 28 Apr 2002 06:54:11 -0000 1.2 @@ -1,6 +1,6 @@ # Hye-Shik Chang <15 Mar 2002> # -# $Id: euc_kr.py,v 1.1 2002/03/16 01:59:18 perky Exp $ +# $Id: euc_kr.py,v 1.2 2002/04/28 06:54:11 perky Exp $ import codecs import _koco @@ -12,53 +12,8 @@ class StreamWriter(Codec, codecs.StreamWriter): pass -class StreamReader(Codec, codecs.StreamReader): - - def __init__(self, stream, errors='strict'): - codecs.StreamReader.__init__(self, stream, errors) - self.data = '' - - def _read(self, func, size): - if size == 0: - return u'' - if size is None or size < 0: - data = self.data + func() - self.data = '' - else: - data = self.data + func(max(size, 2) - len(self.data)) - size = len(data) - p = 0 - while p < size: - if data[p] < "\x80": - p = p + 1 - elif p + 2 <= size: - p = p + 2 - else: - break - data, self.data = data[:p], data[p:] - return self.decode(data)[0] - - def read(self, size=-1): - return self._read(self.stream.read, size) - - def readline(self, size=-1): - return self._read(self.stream.readline, size) - - def readlines(self, size=-1): - data = self._read(self.stream.read, size) - buffer = [] - end = 0 - while 1: - pos = data.find(u'\n', end) - if pos < 0: - if end < len(data): - buffer.append(data[end:]) - break - buffer.append(data[end:pos+1]) - end = pos+1 - return buffer - def reset(self): - self.data = '' +class StreamReader(Codec, _koco.StreamReader, codecs.StreamReader): + encoding = 'euc-kr' ### encodings module API |