[squeak-dev] The Trunk: TrueType-topa.30.mcz
commits at source.squeak.org
commits at source.squeak.org
Fri Mar 6 21:58:03 UTC 2015
Tobias Pape uploaded a new version of TrueType to project The Trunk:
http://source.squeak.org/trunk/TrueType-topa.30.mcz
==================== Summary ====================
Name: TrueType-topa.30
Author: topa
Time: 6 March 2015, 10:52:16.177 pm
UUID: cf2b3756-eef6-488c-9072-3b357b939970
Ancestors: TrueType-bf.29
Cope for some ttc fonts actually being PostScript-Based opentype fonts our TTF code cannot deal with.
Also: Include system fonts on OS X
=============== Diff against TrueType-bf.29 ===============
Item was changed:
----- Method: TTFileDescription class>>fontPathsDo: (in category 'font paths') -----
fontPathsDo: aBlock
"Evaluate aBlock with all of the font paths that should be searched on the current platform"
"Start with the current directory"
aBlock value: FileDirectory default pathName.
"Then subdirectory 'fonts'"
aBlock value: (FileDirectory default directoryNamed: 'fonts') pathName.
"Platform specific directories"
Smalltalk platformName caseOf:{
['Win32'] -> [
"Standard Windows fonts directory"
aBlock value: 'C:\Windows\Fonts'.
].
['Mac OS'] -> [
+ "Standard system fonts directories"
+ #('/System/Library/Fonts' '/Library/Fonts') do: [:fontDir |
+ aBlock value: fontDir].
- "Standard system fonts directory"
- aBlock value: '/Library/Fonts'.
].
['unix'] -> [ | base |
"Standard fonts are in /usr/share/fonts/*"
base := '/usr/share/fonts'.
(FileDirectory on: base) directoryNames
do:[:dn| aBlock value: base, '/', dn].
].
} otherwise:[].
!
Item was changed:
----- Method: TTFileDescription>>on:offset: (in category 'initialize') -----
on: aFileName offset: fontOffset
"Initialize the receiver from a file name"
fileName := aFileName.
fileOffset := fontOffset.
self withFileDo:[:fontFile|
+ "Some TTC fonts may actually be collection of PostScript-Based OpenType fonts"
+ (self findTable: 'CFF ' in: fontFile)
+ ifTrue: [^ nil]
+ ifFalse: [fontFile position: fileOffset "reset"].
"Some bitmap fonts are called .ttf; skip anything that doesn't have a header"
(self findTable: 'head' in: fontFile) ifFalse:[^nil].
self processFontHeaderTable: fontFile.
(self findTable: 'maxp' in: fontFile)
ifFalse:[^self error: 'File does not have a profile table'].
self processMaximumProfileTable: fontFile.
(self findTable: 'name' in: fontFile)
ifFalse:[^self error: 'File does not have a naming table'].
self processNamingTable: fontFile.
(self findTable: 'hhea' in: fontFile)
ifFalse:[^self error: 'File does not have a horizontal header table'].
self processHorizontalHeaderTable: fontFile.
(self findTable: 'OS/2' in: fontFile)
ifTrue:[self processOS2Table: fontFile].
(self findTable: 'hmtx' in: fontFile)
ifFalse:[^self error: 'File does not have a horizontal header table'].
hmtxTableOffset := fontFile position.
(self findTable: 'loca' in: fontFile)
ifFalse:[^self error: 'File does not have a naming table'].
indexToLocOffset := fontFile position.
(self findTable: 'glyf' in: fontFile)
ifFalse:[^self error: 'File does not have a naming table'].
glyphTableOffset := fontFile position.
(self findTable: 'cmap' in: fontFile)
ifFalse:[^self error: 'File does not have a header table'].
self processCharacterMappingTable: fontFile.
].!
More information about the Squeak-dev
mailing list
|