Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / vendor / phenx / php-font-lib / src / FontLib / EOT / Header.php
diff --git a/vendor/phenx/php-font-lib/src/FontLib/EOT/Header.php b/vendor/phenx/php-font-lib/src/FontLib/EOT/Header.php
new file mode 100644 (file)
index 0000000..960e36a
--- /dev/null
@@ -0,0 +1,113 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link    https://github.com/PhenX/php-font-lib
+ * @author  Fabien Ménager <fabien.menager@gmail.com>
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+
+namespace FontLib\EOT;
+
+use Exception;
+use FontLib\Font;
+
+/**
+ * TrueType font file header.
+ *
+ * @package php-font-lib
+ *
+ * @property File $font
+ */
+class Header extends \FontLib\Header {
+  protected $def = array(
+    "format"        => self::uint32,
+    "numTables"     => self::uint16,
+    "searchRange"   => self::uint16,
+    "entrySelector" => self::uint16,
+    "rangeShift"    => self::uint16,
+  );
+
+  public function parse() {
+    $font = $this->font;
+
+    $this->data = $font->unpack(array(
+      "EOTSize"            => self::uint32,
+      "FontDataSize"       => self::uint32,
+      "Version"            => self::uint32,
+      "Flags"              => self::uint32,
+      "FontPANOSE"         => array(self::uint8, 10),
+      "Charset"            => self::uint8,
+      "Italic"             => self::uint8,
+      "Weight"             => self::uint32,
+      "fsType"             => self::uint16,
+      "MagicNumber"        => self::uint16,
+      "UnicodeRange1"      => self::uint32,
+      "UnicodeRange2"      => self::uint32,
+      "UnicodeRange3"      => self::uint32,
+      "UnicodeRange4"      => self::uint32,
+      "CodePageRange1"     => self::uint32,
+      "CodePageRange2"     => self::uint32,
+      "CheckSumAdjustment" => self::uint32,
+      "Reserved1"          => self::uint32,
+      "Reserved2"          => self::uint32,
+      "Reserved3"          => self::uint32,
+      "Reserved4"          => self::uint32,
+    ));
+
+    $this->data["Padding1"] = $font->readUInt16();
+    $this->readString("FamilyName");
+
+    $this->data["Padding2"] = $font->readUInt16();
+    $this->readString("StyleName");
+
+    $this->data["Padding3"] = $font->readUInt16();
+    $this->readString("VersionName");
+
+    $this->data["Padding4"] = $font->readUInt16();
+    $this->readString("FullName");
+
+    switch ($this->data["Version"]) {
+      default:
+        throw new Exception("Unknown EOT version " . $this->data["Version"]);
+
+      case 0x00010000:
+        // Nothing to do more
+        break;
+
+      case 0x00020001:
+        $this->data["Padding5"] = $font->readUInt16();
+        $this->readString("RootString");
+        break;
+
+      case 0x00020002:
+        $this->data["Padding5"] = $font->readUInt16();
+        $this->readString("RootString");
+
+        $this->data["RootStringCheckSum"] = $font->readUInt32();
+        $this->data["EUDCCodePage"]       = $font->readUInt32();
+
+        $this->data["Padding6"] = $font->readUInt16();
+        $this->readString("Signature");
+
+        $this->data["EUDCFlags"]    = $font->readUInt32();
+        $this->data["EUDCFontSize"] = $font->readUInt32();
+        break;
+    }
+
+    if (!empty($this->data["RootString"])) {
+      $this->data["RootString"] = explode("\0", $this->data["RootString"]);
+    }
+  }
+
+  private function readString($name) {
+    $font = $this->font;
+    $size = $font->readUInt16();
+
+    $this->data["{$name}Size"] = $size;
+    $this->data[$name]         = Font::UTF16ToUTF8($font->read($size));
+  }
+
+  public function encode() {
+    //return $this->font->pack($this->def, $this->data);
+  }
+}
\ No newline at end of file