[squeak-dev] The Trunk: Multilingual-dtl.233.mcz

Levente Uzonyi leves at caesar.elte.hu
Mon Jan 22 12:44:02 UTC 2018


On Mon, 22 Jan 2018, Tobias Pape wrote:

>
>> On 22.01.2018, at 11:16, Eliot Miranda <eliot.miranda at gmail.com> wrote:
>> 
>> Hi David,
>>
>>    can you add a comment to the method near the sending of position that explains?  e.g. "send position so that this works with multibyte rncodings such as UTF8".  Otherwise the temptation may remain to repeat the mistake.
>
> That's one reason why I always prefer accessors over direct inst-vars ;P

The sole reason the accessor must be used in this case is the misuse of 
inheritance.

Levente

> Best
> 	-Tobias *tongue-in-cheek*
>
>> 
>> _,,,^..^,,,_ (phone)
>> 
>>> On Jan 21, 2018, at 10:48 AM, Tobias Pape <Das.Linux at gmx.de> wrote:
>>> 
>>> Cool!
>>> 
>>> Since Multilingual-tonyg.218 was part of a fix for Mantis#4665 (bugs.squeak.org/bug_view_advanced_page.php?bug_id=4665),
>>> can we make sure that we don't have a regression because of that? 
>>> :)
>>> 
>>> Best regards
>>>   -Tobias
>>>> On 21.01.2018, at 17:03, commits at source.squeak.org wrote:
>>>> 
>>>> David T. Lewis uploaded a new version of Multilingual to project The Trunk:
>>>> http://source.squeak.org/trunk/Multilingual-dtl.233.mcz
>>>> 
>>>> ==================== Summary ====================
>>>> 
>>>> Name: Multilingual-dtl.233
>>>> Author: dtl
>>>> Time: 21 January 2018, 11:03:22.374228 am
>>>> UUID: 271b4b88-c037-4669-b2d2-15375755dcb4
>>>> Ancestors: Multilingual-pre.232
>>>> 
>>>> MutliByteFileStream>>upToPosition: fix provided by Bob Arning.
>>>> 
>>>> See squeak-dev discussion thread "MultiByteFileStream upToAll: strange bug" for background and diagnosis. The problem was introduced in Multilingual-tonyg.218 and merged to trunk in Multilingual-pre.230
>>>> 
>>>> Condensed email from Bob:
>>>> 
>>>> To: squeak-dev at lists.squeakfoundation.org
>>>> From: Bob Arning
>>>> Date: Sun, 21 Jan 2018 07:01:37 -0500
>>>> Subject: Re: [squeak-dev] MultiByteFileStream upToAll: strange bug
>>>> 
>>>> The culprit is MultiByteFileStream>>upToPosition: which was referencing the instVar <position> directly. Changing that to "self position" allows it to stop at the right place.
>>>> 
>>>> =============== Diff against Multilingual-pre.232 ===============
>>>> 
>>>> Item was changed:
>>>> ----- Method: MultiByteFileStream>>upToPosition: (in category 'accessing') -----
>>>> upToPosition: anInteger
>>>>   "Answer a subcollection containing items starting from the current position and ending including the given position. Usefully different to #next: in that positions measure *bytes* from the file, where #next: wants to measure *characters*."
>>>>   ^self collectionSpecies new: 1000 streamContents: [ :stream |
>>>>       | ch |
>>>> +        [ (ch := self next) == nil or: [ self position > anInteger ] ] 
>>>> -        [ (ch := self next) == nil or: [ position > anInteger ] ]
>>>>           whileFalse: [ stream nextPut: ch ] ]!
>>>> 
>>>> 
>>> 
>>> 
>>


More information about the Squeak-dev mailing list