[squeak-dev] The Inbox: Collections-cmm.1022.mcz

Chris Muller asqueaker at gmail.com
Sat Nov 19 05:24:43 UTC 2022


I don't know why subStrings: should behave differently for empty fields as
non-empty.

Before this change, empty fields are ignored:

    'a:b::d' subStrings: ':'  ==> " #('a' 'b' 'd') "
    '::::' subStrings: ':' ==> #()

after this change, empty fields are honored:

    'a:b::d' subStrings: ':'  ==> " #('a' 'b' '' 'd') "
    '::::' subStrings: ':' ==>  #('' '' '' '')

Thoughts?

 - Chris

On Fri, Nov 18, 2022 at 11:14 PM <commits at source.squeak.org> wrote:

> Chris Muller uploaded a new version of Collections to project The Inbox:
> http://source.squeak.org/inbox/Collections-cmm.1022.mcz
>
> ==================== Summary ====================
>
> Name: Collections-cmm.1022
> Author: cmm
> Time: 18 November 2022, 11:14:01.223447 pm
> UUID: 9a05d251-4f02-43de-94e8-0f077ec51680
> Ancestors: Collections-nice.1021
>
> Allow empty fields when using #subStrings:.
>
> =============== Diff against Collections-nice.1021 ===============
>
> Item was changed:
>   ----- Method: String>>subStrings: (in category 'converting') -----
>   subStrings: separators
>         "Answer an array containing the substrings in the receiver
> separated
>         by the elements of separators."
>         | char result sourceStream subString |
> -       #Collectn.
> -       "Changed 2000/04/08 For ANSI <readableString> protocol."
>         (separators isString or:[separators allSatisfy: [:element |
> element isCharacter]]) ifFalse:
>                 [^ self error: 'separators must be Characters.'].
>         sourceStream := ReadStream on: self.
>         result := OrderedCollection new.
>         subString := String new.
>         [sourceStream atEnd]
>                 whileFalse:
>                         [char := sourceStream next.
>                         (separators includes: char)
> +                               ifTrue: [result add: subString copy.
> +                                                       subString :=
> String new]
> -                               ifTrue: [subString notEmpty
> -                                               ifTrue:
> -                                                       [result add:
> subString copy.
> -                                                       subString :=
> String new]]
>                                 ifFalse: [subString := subString , (String
> with: char)]].
>         subString notEmpty ifTrue: [result add: subString copy].
>         ^ result asArray!
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20221118/8293c456/attachment.html>


More information about the Squeak-dev mailing list