what version of Pharo?
System > System Reporter > Image > Latest update ?
cheers -ben

On Fri, Mar 13, 2015 at 6:08 AM, <sheridan@sheridan-mahoney.com> wrote:

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

��

��