Argh, yes, I am sorry. I can no longer reproduce it either, must have occurred in a hacking image.
I tested with the latest 7 and all was OK, even with a full Unicode comment like
foo
�� �� �� �� "��l��ve Fran��ais - 100 ���"
�� �� �� �� ^ foo
> On 20 Mar 2018, at 17:12, Martin Dias <tinchodias@gmail.com> wrote:
>
> Couldn't reproduce in latest Pharo 7 32 bits.
>
> From stack trace: it's strange that ZnUTF8Encoder>>nextCodePointFromStream: got that nil when parsing the stream.
>
> Martin
>
> On Wed, Mar 14, 2018 at 8:32 AM, Guillermo Polito <guillermopolito@gmail.com> wrote:
> I cannot reproduce it from here... does your file have non-ascii characters?
>
> On Wed, Mar 14, 2018 at 10:55 AM, Sven Van Caekenberghe <sven@stfx.eu> wrote:
> World Menu > Tools > Code Changes
>
> click on any change, boom.
>
> [ :error |
> (OmFileStoreReadingError
>�� �� �� �� ��readingError: error
>�� �� �� �� ��on: self fileReference
>�� �� �� �� ��position: readStream position) signal ] in [ :readStream |
> [ ^ aBlockClosure value: readStream ]
>�� �� �� �� ��on: Error
>�� �� �� �� ��do: [ :error |
>�� �� �� �� �� �� �� �� ��(OmFileStoreReadingError
>�� �� �� �� �� �� �� �� �� �� �� �� ��readingError: error
>�� �� �� �� �� �� �� �� �� �� �� �� ��on: self fileReference
>�� �� �� �� �� �� �� �� �� �� �� �� ��position: readStream position) signal ] ] in OmBlockFileStore(OmFileStore)>>readEntriesWith: in Block: [ :error | ...
> BlockClosure>>cull:
> Context>>evaluateSignal:
> Context>>handleSignal:
> Context>>handleSignal:
> MessageNotUnderstood(Exception)>>signal
> UndefinedObject(Object)>>doesNotUnderstand: #<
> ZnUTF8Encoder>>nextCodePointFromStream:
> ZnUTF8Encoder(ZnCharacterEncoder)>> nextFromStream:
> ZnCharacterReadStream>>nextElement
> [ :out |
> | partialMatch pattern matched |
> partialMatch := (self collectionSpecies new: aCollection size)
>�� �� �� �� ��writeStream.
> pattern := aCollection readStream.
> matched := false.
> [ matched or: [ self atEnd or: [ pattern atEnd ] ] ]
>�� �� �� �� ��whileFalse: [ | ch |
>�� �� �� �� �� �� �� �� ��(ch := self nextElement) = pattern next
>�� �� �� �� �� �� �� �� �� �� �� �� ��ifTrue: [ pattern atEnd
>�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��ifTrue: [ matched := true ]
>�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��ifFalse: [ partialMatch nextPut: ch ] ]
>�� �� �� �� �� �� �� �� �� �� �� �� ��ifFalse: [ pattern reset.
>�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��out nextPutAll: partialMatch contents.
>�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��partialMatch reset.
>�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��out nextPut: ch ] ].
> matched
>�� �� �� �� ��ifFalse: [ out nextPutAll: partialMatch contents ] ] in ZnCharacterReadStream>>upToAll: in Block: [ :out | ...
> String class(SequenceableCollection class)>>new:streamContents:
> String class(SequenceableCollection class)>>streamContents:
> ZnCharacterReadStream>>upToAll:
> [ stream upToAll: token ] in OmSTONEntryReader>>nextEntryPositionIfFound: ifNone: in Block: [ stream upToAll: token ]
> BlockClosure>>on:do:
> OmSTONEntryReader>>nextEntryPositionIfFound: ifNone:
> OmSTONEntryReader>>entryPositionsDo:
> OmSTONEntryReader>>entryPositionsUpTo:
> [ :readStream |
> readStream position: startPosition.
> ^ self newEntryReader
>�� �� �� �� ��stream: readStream;
>�� �� �� �� ��entryPositionsUpTo: endPosition ] in OmBlockFileStore>>entryPositionsStartingAt:upTo: in Block: [ :readStream | ...
> [ ^ aBlockClosure value: readStream ] in [ :readStream |
> [ ^ aBlockClosure value: readStream ]
>�� �� �� �� ��on: Error
>�� �� �� �� ��do: [ :error |
>�� �� �� �� �� �� �� �� ��(OmFileStoreReadingError
>�� �� �� �� �� �� �� �� �� �� �� �� ��readingError: error
>�� �� �� �� �� �� �� �� �� �� �� �� ��on: self fileReference
>�� �� �� �� �� �� �� �� �� �� �� �� ��position: readStream position) signal ] ] in OmBlockFileStore(OmFileStore)>>readEntriesWith: in Block: [ ^ aBlockClosure value: readStream ]
> BlockClosure>>on:do:
> [ :readStream |
> [ ^ aBlockClosure value: readStream ]
>�� �� �� �� ��on: Error
>�� �� �� �� ��do: [ :error |
>�� �� �� �� �� �� �� �� ��(OmFileStoreReadingError
>�� �� �� �� �� �� �� �� �� �� �� �� ��readingError: error
>�� �� �� �� �� �� �� �� �� �� �� �� ��on: self fileReference
>�� �� �� �� �� �� �� �� �� �� �� �� ��position: readStream position) signal ] ] in OmBlockFileStore(OmFileStore)>>readEntriesWith: in Block: [ :readStream | ...
> [ aBlock value: stream ] in FileReference(AbstractFileReference)>> readStreamDo: in Block: [ aBlock value: stream ]
> BlockClosure>>ensure:
> FileReference(AbstractFileReference)>> readStreamDo:
> OmBlockFileStore(OmFileStore)>>readEntriesWith:
> OmBlockFileStore>>entryPositionsStartingAt:upTo:
> OmBlock>>refresh
> OmBlock>>checkIfMustRefreshBlock
>
>
>
>
>
> --
>
> Guille Polito
> Research Engineer
>
> Centre de Recherche en Informatique, Signal et Automatique de Lille
> CRIStAL - UMR 9189
> French National Center for Scientific Research - http://www.cnrs.fr
>
> Web: http://guillep.github.io
> Phone: +33 06 52 70 66 13
>