/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * This file is part of the libmspub project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include #include #include #include #include #include #ifndef PACKAGE #define PACKAGE "libmspub" #endif #ifndef VERSION #define VERSION "UNKNOWN VERSION" #endif namespace { int printUsage() { printf("`pub2raw' is used to test " PACKAGE ".\n"); printf("\n"); printf("Usage: pub2raw [OPTION] FILE\n"); printf("\n"); printf("Options:\n"); printf("\t--callgraph display the call graph nesting level\n"); printf("\t--help show this help message\n"); printf("\t--version show version information\n"); printf("\n"); printf("Report bugs to .\n"); return -1; } int printVersion() { printf("pub2raw " VERSION "\n"); return 0; } } // anonymous namespace int main(int argc, char *argv[]) { bool printIndentLevel = false; char *file = nullptr; if (argc < 2) return printUsage(); for (int i = 1; i < argc; i++) { if (!strcmp(argv[i], "--callgraph")) printIndentLevel = true; else if (!strcmp(argv[i], "--version")) return printVersion(); else if (!file && strncmp(argv[i], "--", 2)) file = argv[i]; else return printUsage(); } if (!file) return printUsage(); librevenge::RVNGFileStream input(file); if (!libmspub::MSPUBDocument::isSupported(&input)) { fprintf(stderr, "ERROR: Unsupported file format!\n"); return 1; } librevenge::RVNGRawDrawingGenerator painter(printIndentLevel); libmspub::MSPUBDocument::parse(&input, &painter); return 0; } /* vim:set shiftwidth=2 softtabstop=2 expandtab: */