(data, start)
| 5055 | |
| 5056 | // Parse the `kern` table which contains kerning pairs. |
| 5057 | function parseKernTable(data, start) { |
| 5058 | var pairs = {}; |
| 5059 | var p = new parse.Parser(data, start); |
| 5060 | var tableVersion = p.parseUShort(); |
| 5061 | check.argument(tableVersion === 0, 'Unsupported kern table version.'); |
| 5062 | // Skip nTables. |
| 5063 | p.skip('uShort', 1); |
| 5064 | var subTableVersion = p.parseUShort(); |
| 5065 | check.argument(subTableVersion === 0, 'Unsupported kern sub-table version.'); |
| 5066 | // Skip subTableLength, subTableCoverage |
| 5067 | p.skip('uShort', 2); |
| 5068 | var nPairs = p.parseUShort(); |
| 5069 | // Skip searchRange, entrySelector, rangeShift. |
| 5070 | p.skip('uShort', 3); |
| 5071 | for (var i = 0; i < nPairs; i += 1) { |
| 5072 | var leftIndex = p.parseUShort(); |
| 5073 | var rightIndex = p.parseUShort(); |
| 5074 | var value = p.parseShort(); |
| 5075 | pairs[leftIndex + ',' + rightIndex] = value; |
| 5076 | } |
| 5077 | |
| 5078 | return pairs; |
| 5079 | } |
| 5080 | |
| 5081 | exports.parse = parseKernTable; |
| 5082 |
nothing calls this directly
no outgoing calls
no test coverage detected