diff options
Diffstat (limited to 'Lib/encodings/utf_8_sig.py')
-rw-r--r-- | Lib/encodings/utf_8_sig.py | 31 |
1 files changed, 9 insertions, 22 deletions
diff --git a/Lib/encodings/utf_8_sig.py b/Lib/encodings/utf_8_sig.py index 1bb4792..8784694 100644 --- a/Lib/encodings/utf_8_sig.py +++ b/Lib/encodings/utf_8_sig.py @@ -12,8 +12,7 @@ import codecs ### Codec APIs def encode(input, errors='strict'): - return (codecs.BOM_UTF8 + codecs.utf_8_encode(input, errors)[0], - len(input)) + return (codecs.BOM_UTF8 + codecs.utf_8_encode(input, errors)[0], len(input)) def decode(input, errors='strict'): prefix = 0 @@ -31,8 +30,7 @@ class IncrementalEncoder(codecs.IncrementalEncoder): def encode(self, input, final=False): if self.first: self.first = 0 - return codecs.BOM_UTF8 + \ - codecs.utf_8_encode(input, self.errors)[0] + return codecs.BOM_UTF8 + codecs.utf_8_encode(input, self.errors)[0] else: return codecs.utf_8_encode(input, self.errors)[0] @@ -49,7 +47,7 @@ class IncrementalEncoder(codecs.IncrementalEncoder): class IncrementalDecoder(codecs.BufferedIncrementalDecoder): def __init__(self, errors='strict'): codecs.BufferedIncrementalDecoder.__init__(self, errors) - self.first = 1 + self.first = True def _buffer_decode(self, input, errors, final): if self.first: @@ -57,30 +55,19 @@ class IncrementalDecoder(codecs.BufferedIncrementalDecoder): if codecs.BOM_UTF8.startswith(input): # not enough data to decide if this really is a BOM # => try again on the next call - return ("", 0) + return (u"", 0) else: - self.first = 0 + self.first = None else: - self.first = 0 + self.first = None if input[:3] == codecs.BOM_UTF8: - (output, consumed) = \ - codecs.utf_8_decode(input[3:], errors, final) + (output, consumed) = codecs.utf_8_decode(input[3:], errors, final) return (output, consumed+3) return codecs.utf_8_decode(input, errors, final) def reset(self): codecs.BufferedIncrementalDecoder.reset(self) - self.first = 1 - - def getstate(self): - state = codecs.BufferedIncrementalDecoder.getstate(self) - # state[1] must be 0 here, as it isn't passed along to the caller - return (state[0], self.first) - - def setstate(self, state): - # state[1] will be ignored by BufferedIncrementalDecoder.setstate() - codecs.BufferedIncrementalDecoder.setstate(self, state) - self.first = state[1] + self.first = True class StreamWriter(codecs.StreamWriter): def reset(self): @@ -107,7 +94,7 @@ class StreamReader(codecs.StreamReader): if codecs.BOM_UTF8.startswith(input): # not enough data to decide if this is a BOM # => try again on the next call - return ("", 0) + return (u"", 0) elif input[:3] == codecs.BOM_UTF8: self.decode = codecs.utf_8_decode (output, consumed) = codecs.utf_8_decode(input[3:],errors) |