Hi all,
I'm trying to test MultiByteFileStream>>next:innerFor: and I am running into some perplexing results. Here is the test code I wrote, trying to get a Character cr at the end of a String: testString := 'é è à' , (Character cr) asString . filename := 'test-file-' , 99 atRandom printString , '.txt'. MultiByteFileStream forceNewFileNamed: filename do: [ :stream | stream next: 10 innerFor: testString. ]. and the code for MultiByteFileStream>>next:innerFor: next: n innerFor: aString | peekChar state | "if we just read a CR, and the next character is an LF, then skip the LF" aString size = 0 ifTrue: [^ aString]. (aString last = Character cr) ifTrue: [ state := converter saveStateOf: self. peekChar := self bareNext. "super peek doesn't work because it relies on #next" (peekChar notNil and: [peekChar ~= Character lf]) ifTrue: [ converter restoreStateOf: self with: state. ]. ]. ^ aString withSqueakLineEndings. I can't get the line: (aString last = Character cr) to return "True" so that I can test the path into this part of the method. Would anyone be able to explain how to do that, or maybe what approach to take to test this method? Many thanks, Sheridan
