summaryrefslogtreecommitdiffstats
path: root/Source/ThirdParty/woff2/src/woff2_decompress.cc
diff options
context:
space:
mode:
authorKonstantin Tokarev <annulen@yandex.ru>2016-09-28 16:39:37 +0300
committerKonstantin Tokarev <annulen@yandex.ru>2017-02-02 12:31:01 +0000
commit9daf1655d7e4eaaa6ed5f44055a4b4fd399fd25c (patch)
tree322337ad0acbc75732f916376ec6d36e7ec0e5bc /Source/ThirdParty/woff2/src/woff2_decompress.cc
parent6882a04fb36642862b11efe514251d32070c3d65 (diff)
Imported WebKit commit eb954cdcf58f9b915b2fcb6f8e4cb3a60650a4f3
Change-Id: I8dda875c38075d43b76fe3a21acb0ffa102bb82d Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
Diffstat (limited to 'Source/ThirdParty/woff2/src/woff2_decompress.cc')
-rw-r--r--Source/ThirdParty/woff2/src/woff2_decompress.cc54
1 files changed, 54 insertions, 0 deletions
diff --git a/Source/ThirdParty/woff2/src/woff2_decompress.cc b/Source/ThirdParty/woff2/src/woff2_decompress.cc
new file mode 100644
index 000000000..7668c4e82
--- /dev/null
+++ b/Source/ThirdParty/woff2/src/woff2_decompress.cc
@@ -0,0 +1,54 @@
+// Copyright 2013 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// A very simple commandline tool for decompressing woff2 format files to true
+// type font files.
+
+#include <string>
+
+
+#include "file.h"
+#include "./woff2_dec.h"
+
+int main(int argc, char **argv) {
+ using std::string;
+
+ if (argc != 2) {
+ fprintf(stderr, "One argument, the input filename, must be provided.\n");
+ return 1;
+ }
+
+ string filename(argv[1]);
+ string outfilename = filename.substr(0, filename.find_last_of(".")) + ".ttf";
+ fprintf(stdout, "Processing %s => %s\n",
+ filename.c_str(), outfilename.c_str());
+ string input = woff2::GetFileContent(filename);
+
+ size_t decompressed_size = woff2::ComputeWOFF2FinalSize(
+ reinterpret_cast<const uint8_t*>(input.data()), input.size());
+ string output(decompressed_size, 0);
+ const bool ok = woff2::ConvertWOFF2ToTTF(
+ reinterpret_cast<uint8_t*>(&output[0]), decompressed_size,
+ reinterpret_cast<const uint8_t*>(input.data()), input.size());
+
+ if (!ok) {
+ fprintf(stderr, "Decompression failed\n");
+ return 1;
+ }
+
+ woff2::SetFileContents(outfilename, output);
+
+ return 0;
+}
+