[squeak-dev] The Inbox: Collections-ul.625.mcz

commits at source.squeak.org commits at source.squeak.org
Fri May 1 18:01:26 UTC 2015


A new version of Collections was added to project The Inbox:
http://source.squeak.org/inbox/Collections-ul.625.mcz

==================== Summary ====================

Name: Collections-ul.625
Author: ul
Time: 1 May 2015, 1:41:40.726 pm
UUID: d09538cd-53f4-42d7-8070-224fde4a4ae2
Ancestors: Collections-ul.624

Use the ClassificationTable in #asLowercase, #asUppercase (the obsolete behavior is gone), #isAlphaNumeric, #isDigit, #isLetter, #isLowercase and #isUppercase of Character.

=============== Diff against Collections-ul.624 ===============

Item was changed:
  ----- Method: Character>>asLowercase (in category 'converting') -----
  asLowercase
+ 	"Answer the receiver's matching lowercase Character."
+ 	
+ 	value > 255 ifFalse: [ 
+ 		| result |
+ 		(result := (ClassificationTable at: value + 1) bitAnd: 16rFF) > 0
+ 			ifTrue: [ ^self class value: result ] ].
+ 	^self class value: (self encodedCharSet toLowercaseCode: value)!
- 	"If the receiver is uppercase, answer its matching lowercase Character."
- 	"A tentative implementation.  Eventually this should consult the Unicode table."
- 
- 	| v |
- 	v := self charCode.
- 	(((8r101 <= v and: [v <= 8r132]) or: [16rC0 <= v and: [v <= 16rD6]]) or: [16rD8 <= v and: [v <= 16rDE]])
- 		ifTrue: [^ Character value: v + 8r40].
- 	v < 256 ifTrue: [^self].
- 	^self class value: ((value < 16r400000
- 		ifTrue: [Unicode]
- 		ifFalse: [self encodedCharSet charsetClass])
- 			toLowercaseCode: v)!

Item was changed:
  ----- Method: Character>>asUppercase (in category 'converting') -----
  asUppercase
+ 	"Answer the receiver's matching uppercase Character."
+ 	
+ 	value > 255 ifFalse: [ 
+ 		| result |
+ 		(result := ((ClassificationTable at: value + 1) bitShift: -8) bitAnd: 16rFF) > 0
+ 			ifTrue: [ ^self class value: result ] ].
+ 	^self class value: (self encodedCharSet toUppercaseCode: value)!
- 	"If the receiver is lowercase, answer its matching uppercase Character."
- 	"A tentative implementation.  Eventually this should consult the Unicode table."	
- 
- 	| v |
- 	v := self charCode.
- 	(((8r141 <= v and: [v <= 8r172]) or: [16rE0 <= v and: [v <= 16rF6]]) or: [16rF8 <= v and: [v <= 16rFE]])
- 		ifTrue: [^ Character value: v - 8r40].
- 	v < 256 ifTrue: [^self].
- 	^self class value: ((value < 16r400000
- 		ifTrue: [Unicode]
- 		ifFalse: [self encodedCharSet charsetClass])
- 			toUppercaseCode: v)!

Item was changed:
  ----- Method: Character>>isAlphaNumeric (in category 'testing') -----
  isAlphaNumeric
  	"Answer whether the receiver is a letter or a digit."
  
+ 	value > 255 ifFalse: [ ^((ClassificationTable at: value + 1) bitAnd: AlphaNumericMask) > 0 ].
  	^self encodedCharSet isAlphaNumeric: self!

Item was changed:
  ----- Method: Character>>isDigit (in category 'testing') -----
  isDigit
  
+ 	value > 255 ifFalse: [ ^((ClassificationTable at: value + 1) bitAnd: DigitBit) > 0 ].
  	^self encodedCharSet isDigit: self.
  !

Item was changed:
  ----- Method: Character>>isLetter (in category 'testing') -----
  isLetter
  
+ 	value > 255 ifFalse: [ ^((ClassificationTable at: value + 1) bitAnd: LetterMask) > 0 ].
+ 	^self encodedCharSet isLetter: self!
- 	^self encodedCharSet isLetter: self.
- !

Item was changed:
  ----- Method: Character>>isLowercase (in category 'testing') -----
  isLowercase
  
+ 	value > 255 ifFalse: [ ^((ClassificationTable at: value + 1) bitAnd: LowercaseBit) > 0 ].
  	^self encodedCharSet isLowercase: self.
  !

Item was changed:
  ----- Method: Character>>isUppercase (in category 'testing') -----
  isUppercase
  
+ 	value > 255 ifFalse: [ ^((ClassificationTable at: value + 1) bitAnd: UppercaseBit) > 0 ].
  	^self encodedCharSet isUppercase: self.
  !



More information about the Squeak-dev mailing list