'From Squeak3.11alpha of 13 February 2010 [latest update: #9483] on 9 March 2010 at 11:11:23 am'! !CharacterScanner methodsFor: 'initialize' stamp: 'ul 3/8/2010 04:44'! initializeStringMeasurer stopConditions := TextStopConditions new ! ! !CharacterScanner methodsFor: 'scanner methods' stamp: 'nice 2/28/2010 19:10'! scanMultiCharactersCombiningFrom: startIndex to: stopIndex in: sourceString rightX: rightX stopConditions: stops kern: kernDelta "Implement a workaround for unicode composing. a MultiCharacterScanner should better be used to handle combination." ^self scanMultiCharactersFrom: startIndex to: stopIndex in: sourceString rightX: rightX stopConditions: stops kern: kernDelta! ! !CharacterScanner class methodsFor: 'class initialization' stamp: 'nice 3/8/2010 11:51'! initialize " CharacterScanner initialize " | a | a := TextStopConditions new. a at: 1 + 1 put: #embeddedObject. a at: Tab asciiValue + 1 put: #tab. a at: CR asciiValue + 1 put: #cr. a at: Character lf asciiValue + 1 put: #cr. NilCondition := a copy. DefaultStopConditions := a copy. PaddedSpaceCondition := a copy. PaddedSpaceCondition at: Space asciiValue + 1 put: #paddedSpace. SpaceCondition := a copy. SpaceCondition at: Space asciiValue + 1 put: #space. ! ! CharacterScanner initialize!