diff options
author | Adrian Johnson <ajohnson@redneon.com> | 2016-09-28 06:10:20 +0930 |
---|---|---|
committer | Adrian Johnson <ajohnson@redneon.com> | 2016-09-28 06:10:20 +0930 |
commit | 86e50e156952713f0ce3ecc7b6f03f06dc0902c1 (patch) | |
tree | fed7ea7c0513cf027fa236a1367019e031d41916 | |
parent | 183dbf3249e8db2398b63a749eb010bc0a89dc35 (diff) |
Revert "pdfinfo: add -dests option to print named destinations"
This reverts commit 183dbf3249e8db2398b63a749eb010bc0a89dc35.
-rw-r--r-- | cmake/modules/PopplerMacros.cmake | 2 | ||||
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | utils/pdfinfo.1 | 4 | ||||
-rw-r--r-- | utils/pdfinfo.cc | 140 |
4 files changed, 2 insertions, 145 deletions
diff --git a/cmake/modules/PopplerMacros.cmake b/cmake/modules/PopplerMacros.cmake index e9b75b94..6cadf404 100644 --- a/cmake/modules/PopplerMacros.cmake +++ b/cmake/modules/PopplerMacros.cmake @@ -104,7 +104,7 @@ if(CMAKE_COMPILER_IS_GNUCXX) set(DEFAULT_COMPILE_WARNINGS_YES "-Wall -Wcast-align -fno-exceptions -fno-check-new -fno-common") set(DEFAULT_COMPILE_WARNINGS_KDE "-Wno-long-long -Wundef -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -Wcast-align -Wconversion -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common") - set(CMAKE_CXX_FLAGS "-std=c++11 -Wnon-virtual-dtor -Woverloaded-virtual ${CMAKE_CXX_FLAGS}") + set(CMAKE_CXX_FLAGS "-Wnon-virtual-dtor -Woverloaded-virtual ${CMAKE_CXX_FLAGS}") set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g") set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG") set(CMAKE_CXX_FLAGS_DEBUG "-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline") diff --git a/configure.ac b/configure.ac index 9ce36e10..c4cfc2c6 100644 --- a/configure.ac +++ b/configure.ac @@ -85,7 +85,6 @@ AC_ARG_ENABLE(build-type, enable_build_type=no) if test "x$GCC" = "xyes"; then - CXXFLAGS="-std=c++11 $CXXFLAGS" case "$enable_build_type" in relwithdebinfo) CFLAGS="-O2 -g $CFLAGS" diff --git a/utils/pdfinfo.1 b/utils/pdfinfo.1 index b699dff1..741219fc 100644 --- a/utils/pdfinfo.1 +++ b/utils/pdfinfo.1 @@ -113,10 +113,6 @@ Prints dates in ISO-8601 format (including the time zone). .B \-rawdates Prints the raw (undecoded) date strings, directly from the PDF file. .TP -.B \-dests -Print a list of all named destinations. If a page range is specified using "\-f" and "\-l", only -destinations in the page range are listed. -.TP .BI \-enc " encoding-name" Sets the encoding to use for text output. This defaults to "UTF-8". .TP diff --git a/utils/pdfinfo.cc b/utils/pdfinfo.cc index 50e756ea..9cfdc0ff 100644 --- a/utils/pdfinfo.cc +++ b/utils/pdfinfo.cc @@ -36,7 +36,6 @@ #include <string.h> #include <time.h> #include <math.h> -#include <map> #include "parseargs.h" #include "printencodings.h" #include "goo/GooString.h" @@ -78,7 +77,6 @@ static GBool printHelp = gFalse; static GBool printEnc = gFalse; static GBool printStructure = gFalse; static GBool printStructureText = gFalse; -static GBool printDests = gFalse; static const ArgDesc argDesc[] = { {"-f", argInt, &firstPage, 0, @@ -99,8 +97,6 @@ static const ArgDesc argDesc[] = { "print the dates in ISO-8601 format"}, {"-rawdates", argFlag, &rawDates, 0, "print the undecoded date strings directly from the PDF file"}, - {"-dests", argFlag, &printDests, 0, - "print all named destinations in the PDF"}, {"-enc", argString, textEncName, sizeof(textEncName), "output text encoding name"}, {"-listenc",argFlag, &printEnc, 0, @@ -293,135 +289,6 @@ static void printStruct(const StructElement *element, unsigned indent) { } } -struct RefCompare { - bool operator() (const Ref& lhs, const Ref& rhs) const { - return lhs.num < rhs.num; - } -}; - -struct GooStringCompare { - bool operator() (GooString* lhs, GooString* rhs) const { - return lhs->cmp(const_cast<GooString*>(rhs)) < 0; - } -}; - -static void printLinkDest(LinkDest *dest) { - char buf[100]; - - switch (dest->getKind()) { - case destXYZ: - sprintf(buf, "[ XYZ "); - if (dest->getChangeLeft()) { - sprintf(buf+strlen(buf), "%4.f ", dest->getLeft()); - } else { - strcat(buf, "null "); - } - if (dest->getChangeTop()) { - sprintf(buf+strlen(buf), "%4.f ", dest->getTop()); - } else { - strcat(buf, "null "); - } - if (dest->getChangeZoom()) { - sprintf(buf+strlen(buf), "%4.2f ", dest->getZoom()); - } else { - strcat(buf, "null "); - } - break; - case destFit: - sprintf(buf, "[ Fit "); - break; - case destFitH: - if (dest->getChangeTop()) { - sprintf(buf, "[ FitH %4.f ", dest->getTop()); - } else { - sprintf(buf, "[ FitH null "); - } - break; - case destFitV: - if (dest->getChangeLeft()) { - sprintf(buf, "[ FitV %4.f ", dest->getLeft()); - } else { - strcat(buf, "[ FitV null "); - } - break; - case destFitR: - sprintf(buf, "[ FitR %4.f %4.f %4.f %4.f ", - dest->getLeft(), - dest->getBottom(), - dest->getRight(), - dest->getTop()); - break; - case destFitB: - sprintf(buf, "[ FitB "); - break; - case destFitBH: - if (dest->getChangeTop()) { - sprintf(buf, "[ FitBH %4.f ", dest->getTop()); - } else { - sprintf(buf, "[ FitBH null "); - } - break; - case destFitBV: - if (dest->getChangeLeft()) { - sprintf(buf, "[ FitBV %4.f ", dest->getLeft()); - } else { - strcat(buf, "[ FitBV null "); - } - break; - } - - strcat(buf, " "); - buf[26] = ']'; - buf[27] = 0; - printf(buf); -} - -static void printDestinations(PDFDoc *doc, UnicodeMap *uMap) { - std::map<Ref,std::map<GooString*,LinkDest*,GooStringCompare>, RefCompare > map; - - int numDests = doc->getCatalog()->numDestNameTree(); - for (int i = 0; i < numDests; i++) { - GooString *name = doc->getCatalog()->getDestNameTreeName(i); - LinkDest *dest = doc->getCatalog()->getDestNameTreeDest(i); - if (dest->isPageRef()) { - map[dest->getPageRef()].insert(std::make_pair(name, dest)); - } - } - - numDests = doc->getCatalog()->numDests(); - for (int i = 0; i < numDests; i++) { - GooString *name = new GooString(doc->getCatalog()->getDestsName(i)); - LinkDest *dest = doc->getCatalog()->getDestsDest(i); - if (dest->isPageRef()) { - map[dest->getPageRef()].insert(std::make_pair(name, dest)); - } - } - - printf("Page Destination Name\n"); - for (int i = firstPage; i <= lastPage; i++) { - Ref *ref = doc->getCatalog()->getPageRef(i); - auto pageDests = map.find(*ref); - if (pageDests != map.end()) { - for (auto& it: pageDests->second) { - it.first->getCString()[4] = 0; - printf("%4d ", i); - printLinkDest(it.second); - printf(" \""); - Unicode *u; - char buf[8]; - int n, len; - len = TextStringToUCS4(it.first, &u); - for (int i = 0; i < len; i++) { - n = uMap->mapUnicode(u[i], buf, sizeof(buf)); - fwrite(buf, 1, n, stdout); - } - gfree(u); - printf("\"\n"); - } - } - } -} - void printInfo(PDFDoc *doc, UnicodeMap *uMap, long long filesize, GBool multiPage) { Page *page; Object info; @@ -687,6 +554,7 @@ int main(int argc, char *argv[]) { } if (lastPage == 0) { multiPage = gFalse; + lastPage = 1; } else { multiPage = gTrue; } @@ -720,8 +588,6 @@ int main(int argc, char *argv[]) { printStruct(structTree->getChild(i), 0); } } - } else if (printDests) { - printDestinations(doc, uMap); } else { // print info long long filesize = 0; @@ -736,10 +602,6 @@ int main(int argc, char *argv[]) { filesize = Gftell(f); fclose(f); } - - if (multiPage == gFalse) - lastPage = 1; - printInfo(doc, uMap, filesize, multiPage); } exitCode = 0; |