/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * This file is part of the libpagemaker 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 #ifndef PACKAGE #define PACKAGE "libpagemaker" #endif #ifndef VERSION #define VERSION "UNKNOWN VERSION" #endif #define TOOL "pmd2raw" namespace { int printUsage() { printf("`" TOOL "' is used to test " PACKAGE ".\n"); printf("\n"); printf("Usage: " TOOL " [OPTION] INPUT\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 and exit\n"); printf("\n"); printf("Report bugs to .\n"); return -1; } int printVersion() { printf(TOOL " " 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 (!libpagemaker::PMDocument::isSupported(&input)) { fprintf(stderr, "ERROR: Unsupported file format (unsupported version) or file is encrypted!\n"); return 1; } librevenge::RVNGRawDrawingGenerator painter(printIndentLevel); if (!libpagemaker::PMDocument::parse(&input, &painter)) return 1; return 0; } /* vim:set shiftwidth=2 softtabstop=2 expandtab: */