aboutsummaryrefslogtreecommitdiffstats
path: root/qpdf/test_parsedoffset.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2022-04-02 23:14:10 +0200
committerJay Berkenbilt <ejb@ql.org>2022-04-04 14:10:40 +0200
commit12f1eb15ca3fed6310402847559a7c99d3c77847 (patch)
tree8935675b623c6f3b4914b8b44f7fa5f2816a9241 /qpdf/test_parsedoffset.cc
parentf20fa61eb4c323eb1642c69c236b3d9a1f8b2cdb (diff)
downloadqpdf-12f1eb15ca3fed6310402847559a7c99d3c77847.tar.zst
Programmatically apply new formatting to code
Run this: for i in **/*.cc **/*.c **/*.h **/*.hh; do clang-format < $i >| $i.new && mv $i.new $i done
Diffstat (limited to 'qpdf/test_parsedoffset.cc')
-rw-r--r--qpdf/test_parsedoffset.cc165
1 files changed, 59 insertions, 106 deletions
diff --git a/qpdf/test_parsedoffset.cc b/qpdf/test_parsedoffset.cc
index 2fea9cdb..aecaf404 100644
--- a/qpdf/test_parsedoffset.cc
+++ b/qpdf/test_parsedoffset.cc
@@ -2,40 +2,31 @@
#include <qpdf/QPDFObjectHandle.hh>
#include <algorithm>
+#include <cstdlib>
#include <iostream>
#include <map>
#include <set>
#include <sstream>
#include <string>
#include <vector>
-#include <cstdlib>
-void usage()
+void
+usage()
{
- std::cerr
- << "Usage: test_parsedoffset INPUT.pdf"
- << std::endl;
+ std::cerr << "Usage: test_parsedoffset INPUT.pdf" << std::endl;
}
-std::string make_objdesc(qpdf_offset_t offset, QPDFObjectHandle obj)
+std::string
+make_objdesc(qpdf_offset_t offset, QPDFObjectHandle obj)
{
std::stringstream ss;
- ss << "offset = "
- << offset
- << " (0x"
- << std::hex << offset << std::dec
+ ss << "offset = " << offset << " (0x" << std::hex << offset << std::dec
<< "), ";
- if (obj.isIndirect())
- {
- ss << "indirect "
- << obj.getObjectID()
- << "/"
- << obj.getGeneration()
+ if (obj.isIndirect()) {
+ ss << "indirect " << obj.getObjectID() << "/" << obj.getGeneration()
<< ", ";
- }
- else
- {
+ } else {
ss << "direct, ";
}
@@ -44,65 +35,53 @@ std::string make_objdesc(qpdf_offset_t offset, QPDFObjectHandle obj)
return ss.str();
}
-void walk(size_t stream_number, QPDFObjectHandle obj,
- std::vector<
- std::vector<
- std::pair<qpdf_offset_t, std::string>
- >
- >
- &result)
+void
+walk(
+ size_t stream_number,
+ QPDFObjectHandle obj,
+ std::vector<std::vector<std::pair<qpdf_offset_t, std::string>>>& result)
{
qpdf_offset_t offset = obj.getParsedOffset();
std::pair<qpdf_offset_t, std::string> p =
std::make_pair(offset, make_objdesc(offset, obj));
- if (result.size() < stream_number + 1)
- {
+ if (result.size() < stream_number + 1) {
result.resize(stream_number + 1);
}
result[stream_number].push_back(p);
- if (obj.isArray())
- {
+ if (obj.isArray()) {
std::vector<QPDFObjectHandle> array = obj.getArrayAsVector();
- for(std::vector<QPDFObjectHandle>::iterator iter = array.begin();
- iter != array.end(); ++iter)
- {
- if (!iter->isIndirect())
- {
+ for (std::vector<QPDFObjectHandle>::iterator iter = array.begin();
+ iter != array.end();
+ ++iter) {
+ if (!iter->isIndirect()) {
// QPDF::GetAllObjects() enumerates all indirect objects.
// So only the direct objects are recursed here.
walk(stream_number, *iter, result);
}
}
- }
- else if(obj.isDictionary())
- {
+ } else if (obj.isDictionary()) {
std::set<std::string> keys = obj.getKeys();
- for(std::set<std::string>::iterator iter = keys.begin();
- iter != keys.end(); ++iter)
- {
+ for (std::set<std::string>::iterator iter = keys.begin();
+ iter != keys.end();
+ ++iter) {
QPDFObjectHandle item = obj.getKey(*iter);
- if (!item.isIndirect())
- {
+ if (!item.isIndirect()) {
// QPDF::GetAllObjects() enumerates all indirect objects.
// So only the direct objects are recursed here.
walk(stream_number, item, result);
}
}
- }
- else if(obj.isStream())
- {
+ } else if (obj.isStream()) {
walk(stream_number, obj.getDict(), result);
}
}
-void process(std::string fn,
- std::vector<
- std::vector<
- std::pair<qpdf_offset_t, std::string>
- >
- > &result)
+void
+process(
+ std::string fn,
+ std::vector<std::vector<std::pair<qpdf_offset_t, std::string>>>& result)
{
QPDF qpdf;
qpdf.processFile(fn.c_str());
@@ -110,39 +89,29 @@ void process(std::string fn,
std::map<QPDFObjGen, QPDFXRefEntry> xrefs = qpdf.getXRefTable();
for (std::vector<QPDFObjectHandle>::iterator iter = objs.begin();
- iter != objs.end(); ++iter)
- {
- if (xrefs.count(iter->getObjGen()) == 0)
- {
- std::cerr
- << iter->getObjectID()
- << "/"
- << iter->getGeneration()
- << " is not found in xref table"
- << std::endl;
+ iter != objs.end();
+ ++iter) {
+ if (xrefs.count(iter->getObjGen()) == 0) {
+ std::cerr << iter->getObjectID() << "/" << iter->getGeneration()
+ << " is not found in xref table" << std::endl;
std::exit(2);
}
QPDFXRefEntry xref = xrefs[iter->getObjGen()];
size_t stream_number;
- switch (xref.getType())
- {
- case 0:
- std::cerr
- << iter->getObjectID()
- << "/"
- << iter->getGeneration()
- << " xref entry is free"
- << std::endl;
+ switch (xref.getType()) {
+ case 0:
+ std::cerr << iter->getObjectID() << "/" << iter->getGeneration()
+ << " xref entry is free" << std::endl;
std::exit(2);
- case 1:
+ case 1:
stream_number = 0;
break;
- case 2:
+ case 2:
stream_number = static_cast<size_t>(xref.getObjStreamNumber());
break;
- default:
+ default:
std::cerr << "unknown xref entry type" << std::endl;
std::exit(2);
}
@@ -151,58 +120,42 @@ void process(std::string fn,
}
}
-int main(int argc, char *argv[])
+int
+main(int argc, char* argv[])
{
- if (argc != 2)
- {
+ if (argc != 2) {
usage();
std::exit(2);
}
- try
- {
- std::vector<
- std::vector<
- std::pair<qpdf_offset_t, std::string>
- >
- > table;
+ try {
+ std::vector<std::vector<std::pair<qpdf_offset_t, std::string>>> table;
process(argv[1], table);
- for (size_t i = 0; i < table.size(); ++i)
- {
- if (table[i].size() == 0)
- {
+ for (size_t i = 0; i < table.size(); ++i) {
+ if (table[i].size() == 0) {
continue;
}
std::sort(table[i].begin(), table[i].end());
- if (i == 0)
- {
+ if (i == 0) {
std::cout << "--- objects not in streams ---" << std::endl;
- }
- else
- {
- std::cout
- << "--- objects in stream " << i << " ---" << std::endl;
+ } else {
+ std::cout << "--- objects in stream " << i << " ---"
+ << std::endl;
}
- for (std::vector<
- std::pair<qpdf_offset_t, std::string>
- >::iterator
+ for (std::vector<std::pair<qpdf_offset_t, std::string>>::iterator
iter = table[i].begin();
- iter != table[i].end(); ++iter)
- {
- std::cout
- << iter->second
- << std::endl;
+ iter != table[i].end();
+ ++iter) {
+ std::cout << iter->second << std::endl;
}
}
std::cout << "succeeded" << std::endl;
- }
- catch (std::exception& e)
- {
+ } catch (std::exception& e) {
std::cerr << e.what() << std::endl;
std::exit(2);
}