From 12f1eb15ca3fed6310402847559a7c99d3c77847 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Sat, 2 Apr 2022 17:14:10 -0400 Subject: 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 --- examples/pdf-bookmarks.cc | 166 ++++++++++++++++++---------------------------- 1 file changed, 64 insertions(+), 102 deletions(-) (limited to 'examples/pdf-bookmarks.cc') diff --git a/examples/pdf-bookmarks.cc b/examples/pdf-bookmarks.cc index e049e423..de0af8e6 100644 --- a/examples/pdf-bookmarks.cc +++ b/examples/pdf-bookmarks.cc @@ -1,12 +1,12 @@ -#include -#include -#include +#include #include -#include #include -#include -#include +#include #include +#include +#include +#include +#include // This program demonstrates extraction of bookmarks using the qpdf // outlines API. Note that all the information shown by this program @@ -20,67 +20,62 @@ static bool show_open = false; static bool show_targets = false; static std::map page_map; -void usage() +void +usage() { - std::cerr << "Usage: " << whoami << " [options] file.pdf [password]" - << std::endl - << "Options:" << std::endl - << " --numbers give bookmarks outline-style numbers" - << std::endl - << " --lines draw lines to show bookmark hierarchy" - << std::endl - << " --show-open indicate whether a bookmark is initially open" - << std::endl - << " --show-targets show target if possible" - << std::endl; + std::cerr + << "Usage: " << whoami << " [options] file.pdf [password]" << std::endl + << "Options:" << std::endl + << " --numbers give bookmarks outline-style numbers" + << std::endl + << " --lines draw lines to show bookmark hierarchy" + << std::endl + << " --show-open indicate whether a bookmark is initially open" + << std::endl + << " --show-targets show target if possible" << std::endl; exit(2); } -void print_lines(std::vector& numbers) +void +print_lines(std::vector& numbers) { - for (unsigned int i = 0; i < numbers.size() - 1; ++i) - { - if (numbers.at(i)) - { + for (unsigned int i = 0; i < numbers.size() - 1; ++i) { + if (numbers.at(i)) { std::cout << "| "; - } - else - { + } else { std::cout << " "; } } } -void generate_page_map(QPDF& qpdf) +void +generate_page_map(QPDF& qpdf) { QPDFPageDocumentHelper dh(qpdf); int n = 0; - for (auto const& page : dh.getAllPages()) - { + for (auto const& page : dh.getAllPages()) { page_map[page.getObjectHandle().getObjGen()] = ++n; } } -void show_bookmark_details(QPDFOutlineObjectHelper outline, - std::vector numbers) +void +show_bookmark_details(QPDFOutlineObjectHelper outline, std::vector numbers) { // No default so gcc will warn on missing tag - switch (style) - { - case st_none: + switch (style) { + case st_none: QTC::TC("examples", "pdf-bookmarks none"); break; - case st_numbers: + case st_numbers: QTC::TC("examples", "pdf-bookmarks numbers"); - for (auto const& number : numbers) - { + for (auto const& number : numbers) { std::cout << number << "."; } std::cout << " "; break; - case st_lines: + case st_lines: QTC::TC("examples", "pdf-bookmarks lines"); print_lines(numbers); std::cout << "|" << std::endl; @@ -89,42 +84,32 @@ void show_bookmark_details(QPDFOutlineObjectHelper outline, break; } - if (show_open) - { + if (show_open) { int count = outline.getCount(); - if (count) - { + if (count) { QTC::TC("examples", "pdf-bookmarks has count"); - if (count > 0) - { + if (count > 0) { // hierarchy is open at this point QTC::TC("examples", "pdf-bookmarks open"); std::cout << "(v) "; - } - else - { + } else { QTC::TC("examples", "pdf-bookmarks closed"); std::cout << "(>) "; } - } - else - { + } else { QTC::TC("examples", "pdf-bookmarks no count"); std::cout << "( ) "; } } - if (show_targets) - { + if (show_targets) { QTC::TC("examples", "pdf-bookmarks targets"); std::string target = "unknown"; QPDFObjectHandle dest_page = outline.getDestPage(); - if (! dest_page.isNull()) - { + if (!dest_page.isNull()) { QTC::TC("examples", "pdf-bookmarks dest"); QPDFObjGen og = dest_page.getObjGen(); - if (page_map.count(og)) - { + if (page_map.count(og)) { target = QUtil::int_to_string(page_map[og]); } } @@ -134,8 +119,9 @@ void show_bookmark_details(QPDFOutlineObjectHelper outline, std::cout << outline.getTitle() << std::endl; } -void extract_bookmarks(std::vector outlines, - std::vector& numbers) +void +extract_bookmarks( + std::vector outlines, std::vector& numbers) { // For style == st_numbers, numbers.at(n) contains the numerical // label for the outline, so we count up from 1. @@ -144,8 +130,7 @@ void extract_bookmarks(std::vector outlines, // is, so we count up to zero. numbers.push_back( (style == st_lines) ? -QIntC::to_int(outlines.size()) : 0); - for (auto& outline : outlines) - { + for (auto& outline : outlines) { ++(numbers.back()); show_bookmark_details(outline, numbers); extract_bookmarks(outline.getKids(), numbers); @@ -153,87 +138,64 @@ void extract_bookmarks(std::vector outlines, numbers.pop_back(); } -int main(int argc, char* argv[]) +int +main(int argc, char* argv[]) { whoami = QUtil::getWhoami(argv[0]); - if ((argc == 2) && (strcmp(argv[1], "--version") == 0)) - { + if ((argc == 2) && (strcmp(argv[1], "--version") == 0)) { std::cout << whoami << " version 1.5" << std::endl; exit(0); } int arg; - for (arg = 1; arg < argc; ++arg) - { - if (argv[arg][0] == '-') - { - if (strcmp(argv[arg], "--numbers") == 0) - { + for (arg = 1; arg < argc; ++arg) { + if (argv[arg][0] == '-') { + if (strcmp(argv[arg], "--numbers") == 0) { style = st_numbers; - } - else if (strcmp(argv[arg], "--lines") == 0) - { + } else if (strcmp(argv[arg], "--lines") == 0) { style = st_lines; - } - else if (strcmp(argv[arg], "--show-open") == 0) - { + } else if (strcmp(argv[arg], "--show-open") == 0) { show_open = true; - } - else if (strcmp(argv[arg], "--show-targets") == 0) - { + } else if (strcmp(argv[arg], "--show-targets") == 0) { show_targets = true; - } - else - { + } else { usage(); } - } - else - { + } else { break; } } - if (arg >= argc) - { + if (arg >= argc) { usage(); } char const* filename = argv[arg++]; char const* password = ""; - if (arg < argc) - { + if (arg < argc) { password = argv[arg++]; } - if (arg != argc) - { + if (arg != argc) { usage(); } - try - { + try { QPDF qpdf; qpdf.processFile(filename, password); QPDFOutlineDocumentHelper odh(qpdf); - if (odh.hasOutlines()) - { + if (odh.hasOutlines()) { std::vector numbers; - if (show_targets) - { + if (show_targets) { generate_page_map(qpdf); } extract_bookmarks(odh.getTopLevelOutlines(), numbers); - } - else - { + } else { std::cout << filename << " has no bookmarks" << std::endl; } - } - catch (std::exception &e) - { + } catch (std::exception& e) { std::cerr << whoami << " processing file " << filename << ": " << e.what() << std::endl; exit(2); -- cgit v1.2.3-54-g00ecf