Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / vendor / phenx / php-font-lib / src / FontLib / Table / Type / kern.php
1 <?php
2 /**
3  * @package php-font-lib
4  * @link    https://github.com/PhenX/php-font-lib
5  * @author  Fabien Ménager <fabien.menager@gmail.com>
6  * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
7  */
8
9 namespace FontLib\Table\Type;
10 use FontLib\Table\Table;
11
12 /**
13  * `kern` font table.
14  *
15  * @package php-font-lib
16  */
17 class kern extends Table {
18   protected function _parse() {
19     $font = $this->getFont();
20
21     $data = $font->unpack(array(
22       "version"         => self::uint16,
23       "nTables"         => self::uint16,
24
25       // only the first subtable will be parsed
26       "subtableVersion" => self::uint16,
27       "length"          => self::uint16,
28       "coverage"        => self::uint16,
29     ));
30
31     $data["format"] = ($data["coverage"] >> 8);
32
33     $subtable = array();
34
35     switch ($data["format"]) {
36       case 0:
37         $subtable = $font->unpack(array(
38           "nPairs"        => self::uint16,
39           "searchRange"   => self::uint16,
40           "entrySelector" => self::uint16,
41           "rangeShift"    => self::uint16,
42         ));
43
44         $pairs = array();
45         $tree  = array();
46
47         $values = $font->readUInt16Many($subtable["nPairs"] * 3);
48         for ($i = 0, $idx = 0; $i < $subtable["nPairs"]; $i++) {
49           $left  = $values[$idx++];
50           $right = $values[$idx++];
51           $value = $values[$idx++];
52
53           if ($value >= 0x8000) {
54             $value -= 0x10000;
55           }
56
57           $pairs[] = array(
58             "left"  => $left,
59             "right" => $right,
60             "value" => $value,
61           );
62
63           $tree[$left][$right] = $value;
64         }
65
66         //$subtable["pairs"] = $pairs;
67         $subtable["tree"] = $tree;
68         break;
69
70       case 1:
71       case 2:
72       case 3:
73         break;
74     }
75
76     $data["subtable"] = $subtable;
77
78     $this->data = $data;
79   }
80 }