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 / Table.php
diff --git a/vendor/phenx/php-font-lib/src/FontLib/Table/Table.php b/vendor/phenx/php-font-lib/src/FontLib/Table/Table.php
new file mode 100644 (file)
index 0000000..b127112
--- /dev/null
@@ -0,0 +1,93 @@
+<?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\Table;
+
+use FontLib\TrueType\File;
+use FontLib\Font;
+use FontLib\BinaryStream;
+
+/**
+ * Generic font table.
+ *
+ * @package php-font-lib
+ */
+class Table extends BinaryStream {
+  /**
+   * @var DirectoryEntry
+   */
+  protected $entry;
+  protected $def = array();
+
+  public $data;
+
+  final public function __construct(DirectoryEntry $entry) {
+    $this->entry = $entry;
+    $entry->setTable($this);
+  }
+
+  /**
+   * @return File
+   */
+  public function getFont() {
+    return $this->entry->getFont();
+  }
+
+  protected function _encode() {
+    if (empty($this->data)) {
+      Font::d("  >> Table is empty");
+
+      return 0;
+    }
+
+    return $this->getFont()->pack($this->def, $this->data);
+  }
+
+  protected function _parse() {
+    $this->data = $this->getFont()->unpack($this->def);
+  }
+
+  protected function _parseRaw() {
+    $this->data = $this->getFont()->read($this->entry->length);
+  }
+
+  protected function _encodeRaw() {
+    return $this->getFont()->write($this->data, $this->entry->length);
+  }
+
+  public function toHTML() {
+    return "<pre>" . var_export($this->data, true) . "</pre>";
+  }
+
+  final public function encode() {
+    $this->entry->startWrite();
+
+    if (false && empty($this->def)) {
+      $length = $this->_encodeRaw();
+    }
+    else {
+      $length = $this->_encode();
+    }
+
+    $this->entry->endWrite();
+
+    return $length;
+  }
+
+  final public function parse() {
+    $this->entry->startRead();
+
+    if (false && empty($this->def)) {
+      $this->_parseRaw();
+    }
+    else {
+      $this->_parse();
+    }
+
+    $this->entry->endRead();
+  }
+}
\ No newline at end of file