21 lines
759 B
Plaintext
21 lines
759 B
Plaintext
local fn CommaQuibbler( s as CFArrayRef ) as CFStringRef
|
|
CFStringRef result = NULL
|
|
|
|
select ( len(s) )
|
|
case 0: exit fn = @"{}"
|
|
case 1: exit fn = fn StringWithFormat( @"{%@}", s[0] )
|
|
case 2: exit fn = fn StringWithFormat( @"{%@ and %@}", s[0], s[1] )
|
|
case else
|
|
result = fn StringWithFormat( @"{%@}", fn ArrayComponentsJoinedByString( s, @", " ) )
|
|
CFRange lastComma = fn StringRangeOfStringWithOptions( result, @",", NSBackwardsSearch )
|
|
result = fn StringByReplacingCharactersInRange( result, lastComma, @" and" )
|
|
end select
|
|
end fn = result
|
|
|
|
print fn CommaQuibbler( @[] )
|
|
print fn CommaQuibbler( @[@"ABC"] )
|
|
print fn CommaQuibbler( @[@"ABC", @"DEF"] )
|
|
print fn CommaQuibbler( @[@"ABC", @"DEF", @"G", @"H"] )
|
|
|
|
HandleEvents
|