The Trunk: Multilingual-nice.120.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Multilingual-nice.120.mcz

commits-2
Nicolas Cellier uploaded a new version of Multilingual to project The Trunk:
http://source.squeak.org/trunk/Multilingual-nice.120.mcz

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

Name: Multilingual-nice.120
Author: nice
Time: 11 June 2010, 10:22:16.414 pm
UUID: 72090c02-6d02-2948-b919-965751b913dd
Ancestors: Multilingual-ar.119

Use nextLine to handle any case of in image LF leakage

=============== Diff against Multilingual-ar.119 ===============

Item was changed:
  ----- Method: Unicode class>>parseUnicodeDataFrom: (in category 'class methods') -----
  parseUnicodeDataFrom: stream
  "
  self halt.
  self parseUnicodeDataFile
  "
 
  | line fieldEnd point fieldStart toNumber generalCategory decimalProperty |
 
  toNumber := [:quad | ('16r', quad) asNumber].
 
  GeneralCategory := SparseLargeTable new: 16rE0080 chunkSize: 1024 arrayClass: Array base: 1 defaultValue:  'Cn'.
  DecimalProperty := SparseLargeTable new: 16rE0080 chunkSize: 32 arrayClass: Array base: 1 defaultValue: -1.
 
  16r3400 to: 16r4DB5 do: [:i | GeneralCategory at: i+1 put: 'Lo'].
  16r4E00 to: 16r9FA5 do: [:i | GeneralCategory at: i+1 put: 'Lo'].
  16rAC00 to: 16rD7FF do: [:i | GeneralCategory at: i+1 put: 'Lo'].
 
+ [(line := stream nextLine) size > 0] whileTrue: [
- [(line := stream upTo: Character cr) size > 0] whileTrue: [
  fieldEnd := line indexOf: $; startingAt: 1.
  point := toNumber value: (line copyFrom: 1 to: fieldEnd - 1).
  point > 16rE007F ifTrue: [
  GeneralCategory zapDefaultOnlyEntries.
  DecimalProperty zapDefaultOnlyEntries.
  ^ self].
  2 to: 3 do: [:i |
  fieldStart := fieldEnd + 1.
  fieldEnd := line indexOf: $; startingAt: fieldStart.
  ].
  generalCategory := line copyFrom: fieldStart to: fieldEnd - 1.
  GeneralCategory at: point+1 put: generalCategory.
  generalCategory = 'Nd' ifTrue: [
  4 to: 7 do: [:i |
  fieldStart := fieldEnd + 1.
  fieldEnd := line indexOf: $; startingAt: fieldStart.
  ].
  decimalProperty :=  line copyFrom: fieldStart to: fieldEnd - 1.
  DecimalProperty at: point+1 put: decimalProperty asNumber.
  ].
  ].
  GeneralCategory zapDefaultOnlyEntries.
  DecimalProperty zapDefaultOnlyEntries.
  !

Item was changed:
  ----- Method: CombinedChar class>>parseCompositionMappingFrom: (in category 'as yet unclassified') -----
  parseCompositionMappingFrom: stream
  "
  self halt.
  self parseCompositionMapping
  "
 
  | line fieldEnd point fieldStart compositions toNumber diacritical result |
 
  toNumber := [:quad | ('16r', quad) asNumber].
 
  Compositions := IdentityDictionary new: 2048.
  Decompositions := IdentityDictionary new: 2048.
  Diacriticals := IdentitySet new: 2048.
 
+ [(line := stream nextLine) size > 0] whileTrue: [
- [(line := stream upTo: Character cr) size > 0] whileTrue: [
  fieldEnd := line indexOf: $; startingAt: 1.
  point := ('16r', (line copyFrom: 1 to: fieldEnd - 1)) asNumber.
  2 to: 6 do: [:i |
  fieldStart := fieldEnd + 1.
  fieldEnd := line indexOf: $; startingAt: fieldStart.
  ].
  compositions := line copyFrom: fieldStart to: fieldEnd - 1.
  (compositions size > 0 and: [compositions first ~= $<]) ifTrue: [
  compositions := compositions substrings collect: toNumber.
  compositions size > 1 ifTrue: [
  diacritical := compositions first.
  Diacriticals add: diacritical.
  result := compositions second.
  (Decompositions includesKey: point) ifTrue: [
  self error: 'should not happen'.
  ] ifFalse: [
  Decompositions at: point put: (Array with: diacritical with: result).
  ].
  (Compositions includesKey: diacritical) ifTrue: [
  (Compositions at: diacritical) at: result put: point.
  ] ifFalse: [
  Compositions at: diacritical
  put: (IdentityDictionary new at: result put: point; yourself).
  ].
  ].
  ].
  ].
  !