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 / File.php
diff --git a/vendor/phenx/php-font-lib/src/FontLib/EOT/File.php b/vendor/phenx/php-font-lib/src/FontLib/EOT/File.php
new file mode 100644 (file)
index 0000000..13d5925
--- /dev/null
@@ -0,0 +1,160 @@
+<?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;
+
+/**
+ * EOT font file.
+ *
+ * @package php-font-lib
+ */
+class File extends \FontLib\TrueType\File {
+  const TTEMBED_SUBSET                   = 0x00000001;
+  const TTEMBED_TTCOMPRESSED             = 0x00000004;
+  const TTEMBED_FAILIFVARIATIONSIMULATED = 0x00000010;
+  const TTMBED_EMBEDEUDC                 = 0x00000020;
+  const TTEMBED_VALIDATIONTESTS          = 0x00000040; // Deprecated
+  const TTEMBED_WEBOBJECT      = 0x00000080;
+  const TTEMBED_XORENCRYPTDATA = 0x10000000;
+
+  /**
+   * @var Header
+   */
+  public $header;
+
+  function parseHeader() {
+    if (!empty($this->header)) {
+      return;
+    }
+
+    $this->header = new Header($this);
+    $this->header->parse();
+  }
+
+  function parse() {
+    $this->parseHeader();
+
+    $flags = $this->header->data["Flags"];
+
+    if ($flags & self::TTEMBED_TTCOMPRESSED) {
+      $mtx_version    = $this->readUInt8();
+      $mtx_copy_limit = $this->readUInt8() << 16 | $this->readUInt8() << 8 | $this->readUInt8();
+      $mtx_offset_1   = $this->readUInt8() << 16 | $this->readUInt8() << 8 | $this->readUInt8();
+      $mtx_offset_2   = $this->readUInt8() << 16 | $this->readUInt8() << 8 | $this->readUInt8();
+      /*
+      var_dump("$mtx_version $mtx_copy_limit $mtx_offset_1 $mtx_offset_2");
+
+      $pos = $this->pos();
+      $size = $mtx_offset_1 - $pos;
+      var_dump("pos: $pos");
+      var_dump("size: $size");*/
+    }
+
+    if ($flags & self::TTEMBED_XORENCRYPTDATA) {
+      // Process XOR
+    }
+    // TODO Read font data ...
+  }
+
+    /**
+     * Little endian version of the read method
+     *
+     * @param int $n The number of bytes to read
+     *
+     * @return string
+     */
+  public function read($n) {
+    if ($n < 1) {
+      return "";
+    }
+
+    $string = fread($this->f, $n);
+    $chunks = str_split($string, 2);
+    $chunks = array_map("strrev", $chunks);
+
+    return implode("", $chunks);
+  }
+
+  public function readUInt32() {
+    $uint32 = parent::readUInt32();
+
+    return $uint32 >> 16 & 0x0000FFFF | $uint32 << 16 & 0xFFFF0000;
+  }
+
+  /**
+   * Get font copyright
+   *
+   * @return string|null
+   */
+  function getFontCopyright() {
+    return null;
+  }
+
+  /**
+   * Get font name
+   *
+   * @return string|null
+   */
+  function getFontName() {
+    return $this->header->data["FamilyName"];
+  }
+
+  /**
+   * Get font subfamily
+   *
+   * @return string|null
+   */
+  function getFontSubfamily() {
+    return $this->header->data["StyleName"];
+  }
+
+  /**
+   * Get font subfamily ID
+   *
+   * @return string|null
+   */
+  function getFontSubfamilyID() {
+    return $this->header->data["StyleName"];
+  }
+
+  /**
+   * Get font full name
+   *
+   * @return string|null
+   */
+  function getFontFullName() {
+    return $this->header->data["FullName"];
+  }
+
+  /**
+   * Get font version
+   *
+   * @return string|null
+   */
+  function getFontVersion() {
+    return $this->header->data["VersionName"];
+  }
+
+  /**
+   * Get font weight
+   *
+   * @return string|null
+   */
+  function getFontWeight() {
+    return $this->header->data["Weight"];
+  }
+
+  /**
+   * Get font Postscript name
+   *
+   * @return string|null
+   */
+  function getFontPostscriptName() {
+    return null;
+  }
+}