Ignore:
Timestamp:
Mar 19, 2014, 11:31:01 PM (11 years ago)
Author:
dmik
Message:

python: Merge vendor 2.7.6 to trunk.

Location:
python/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • python/trunk

  • python/trunk/Lib/encodings/utf_16.py

    r2 r391  
    3535        self.encoder = None
    3636
     37    def getstate(self):
     38        # state info we return to the caller:
     39        # 0: stream is in natural order for this platform
     40        # 2: endianness hasn't been determined yet
     41        # (we're never writing in unnatural order)
     42        return (2 if self.encoder is None else 0)
     43
     44    def setstate(self, state):
     45        if state:
     46            self.encoder = None
     47        else:
     48            if sys.byteorder == 'little':
     49                self.encoder = codecs.utf_16_le_encode
     50            else:
     51                self.encoder = codecs.utf_16_be_encode
     52
    3753class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
    3854    def __init__(self, errors='strict'):
     
    5975class StreamWriter(codecs.StreamWriter):
    6076    def __init__(self, stream, errors='strict'):
    61         self.bom_written = False
    6277        codecs.StreamWriter.__init__(self, stream, errors)
     78        self.encoder = None
     79
     80    def reset(self):
     81        codecs.StreamWriter.reset(self)
     82        self.encoder = None
    6383
    6484    def encode(self, input, errors='strict'):
    65         self.bom_written = True
    66         result = codecs.utf_16_encode(input, errors)
    67         if sys.byteorder == 'little':
    68             self.encode = codecs.utf_16_le_encode
     85        if self.encoder is None:
     86            result = codecs.utf_16_encode(input, errors)
     87            if sys.byteorder == 'little':
     88                self.encoder = codecs.utf_16_le_encode
     89            else:
     90                self.encoder = codecs.utf_16_be_encode
     91            return result
    6992        else:
    70             self.encode = codecs.utf_16_be_encode
    71         return result
     93            return self.encoder(input, errors)
    7294
    7395class StreamReader(codecs.StreamReader):
Note: See TracChangeset for help on using the changeset viewer.