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
|