[prev in list] [next in list] [prev in thread] [next in thread]
List: squeak-dev
Subject: [squeak-dev] The Trunk: Monticello-nice.546.mcz
From: commits () source ! squeak ! org
Date: 2013-05-30 22:48:08
[Download RAW message or body]
Nicolas Cellier uploaded a new version of Monticello to project The Trunk:
http://source.squeak.org/trunk/Monticello-nice.546.mcz
==================== Summary ====================
Name: Monticello-nice.546
Author: nice
Time: 31 May 2013, 12:47:59.453 am
UUID: ff2975ee-c296-4d65-8b8a-9b512607a2be
Ancestors: Monticello-kb.545
Let's encode .mcz/snapshot/source.st in UTF8
Let's decode UTF8 in MCStReader.
Previously, it was encoded in latin-1 (iso-8859-L1) for ByteString and UTF-32BE for \
WideString. And would always be decoded in latin-1 by MCStReader.
Note that compatibility with legacy code is handled by catching InvalidUTF8 \
exception.
An alternative would be to use a BOM in new snapshot. However, since the \
snapshot/source.st is not used by Squeak tools, it's not really worth.
=============== Diff against Monticello-kb.545 ===============
Item was changed:
----- Method: MCMczWriter>>serializeDefinitions: (in category 'serializing') -----
serializeDefinitions: aCollection
+ ^(String streamContents: [:aStream |
+ | writer |
+ writer := self snapshotWriterClass on: aStream.
+ writer writeDefinitions: aCollection])
+ squeakToUtf8!
- | writer s |
- s := RWBinaryOrTextStream on: String new.
- writer := self snapshotWriterClass on: s.
- writer writeDefinitions: aCollection.
- ^ s contents!
Item was changed:
----- Method: MCStReader>>readStream (in category 'evaluating') -----
readStream
+ | contents |
+ contents := stream contents.
+ contents := [contents utf8ToSqueak] on: InvalidUTF8 do: [:exc |
+ "Case of legacy encoding, presumably it is latin-1 and we do not need to do \
anything + But if contents starts with a null character, it might be a case of \
WideString encoded in UTF-32BE" + exc return: (((contents beginsWith: Character \
null asString) and: [ contents size \\ 4 = 0 ]) + ifTrue: [WideString \
fromByteArray: contents asByteArray] + ifFalse: [contents])].
^ ('!!!!
+ ', contents) readStream!
- ', stream contents) readStream!
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic