summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Johnson <ajohnson@redneon.com>2016-09-28 06:10:20 +0930
committerAdrian Johnson <ajohnson@redneon.com>2016-09-28 06:10:20 +0930
commit86e50e156952713f0ce3ecc7b6f03f06dc0902c1 (patch)
treefed7ea7c0513cf027fa236a1367019e031d41916
parent183dbf3249e8db2398b63a749eb010bc0a89dc35 (diff)
Revert "pdfinfo: add -dests option to print named destinations"
-rw-r--r--cmake/modules/PopplerMacros.cmake2
-rw-r--r--configure.ac1
-rw-r--r--utils/pdfinfo.14
-rw-r--r--utils/pdfinfo.cc140
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;