diff options
Diffstat (limited to 'cpp/woff2-decompress.cc')
-rw-r--r-- | cpp/woff2-decompress.cc | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/cpp/woff2-decompress.cc b/cpp/woff2-decompress.cc deleted file mode 100644 index dc9a281..0000000 --- a/cpp/woff2-decompress.cc +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// A very simple commandline tool for decompressing woff2 format files -// (given as argc[1]), writing the decompressed version to stdout. - -#include <fcntl.h> -#include <sys/stat.h> -#include <unistd.h> - -#include <cstdio> -#include <cstdlib> - -#include "opentype-sanitiser.h" -#include "woff2.h" - -namespace { - -int Usage(const char *argv0) { - std::fprintf(stderr, "Usage: %s woff2_file > dest_ttf_file\n", argv0); - return 1; -} - -} // namespace - -int main(int argc, char **argv) { - if (argc != 2) return Usage(argv[0]); - if (::isatty(1)) return Usage(argv[0]); - - const int fd = ::open(argv[1], O_RDONLY); - if (fd < 0) { - ::perror("open"); - return 1; - } - - struct stat st; - ::fstat(fd, &st); - - uint8_t *data = new uint8_t[st.st_size]; - if (::read(fd, data, st.st_size) != st.st_size) { - ::perror("read"); - return 1; - } - ::close(fd); - - size_t decompressed_size = ots::ComputeWOFF2FinalSize(data, st.st_size); - if (decompressed_size == 0) { - std::fprintf(stderr, "Error computing decompressed file size!\n"); - return 1; - } - uint8_t *buf = new uint8_t[decompressed_size]; - const bool result = ots::ConvertWOFF2ToTTF(buf, decompressed_size, - data, st.st_size); - - if (!result) { - std::fprintf(stderr, "Failed to decompress file!\n"); - } - fwrite(buf, 1, decompressed_size, stdout); - return !result; -} |