diff -uNr qpdfview-0.4.16.orig/application.pro qpdfview-0.4.16/application.pro --- qpdfview-0.4.16.orig/application.pro 2015-11-14 21:48:59.000000000 +0100 +++ qpdfview-0.4.16/application.pro 2019-10-03 09:43:54.790000000 +0200 @@ -221,6 +221,8 @@ !without_pkgconfig:system(pkg-config --exists synctex) { CONFIG += link_pkgconfig PKGCONFIG += synctex + + system(pkg-config --atleast-version=1.19 synctex):DEFINES += HAS_SYNCTEX_2 } else { HEADERS += synctex/synctex_parser.h synctex/synctex_parser_utils.h synctex/synctex_parser_local.h SOURCES += synctex/synctex_parser.c synctex/synctex_parser_utils.c diff -uNr qpdfview-0.4.16.orig/sources/documentview.cpp qpdfview-0.4.16/sources/documentview.cpp --- qpdfview-0.4.16.orig/sources/documentview.cpp 2015-11-14 21:48:59.000000000 +0100 +++ qpdfview-0.4.16/sources/documentview.cpp 2019-10-03 10:57:57.150000000 +0200 @@ -54,6 +54,15 @@ #include +#ifndef HAS_SYNCTEX_2 + +typedef synctex_scanner_t synctex_scanner_p; +typedef synctex_node_t synctex_node_p; + +#define synctex_scanner_next_result(scanner) synctex_next_result(scanner) + +#endif // HAS_SYNCTEX_2 + #endif // WITH_SYNCTEX #include "settings.h" @@ -950,14 +959,14 @@ if(const PageItem* page = dynamic_cast< PageItem* >(itemAt(pos))) { - if(synctex_scanner_t scanner = synctex_scanner_new_with_output_file(m_fileInfo.absoluteFilePath().toLocal8Bit(), 0, 1)) + if(synctex_scanner_p scanner = synctex_scanner_new_with_output_file(m_fileInfo.absoluteFilePath().toLocal8Bit(), 0, 1)) { const int sourcePage = page->index() + 1; const QPointF sourcePos = page->sourcePos(page->mapFromScene(mapToScene(pos))); if(synctex_edit_query(scanner, sourcePage, sourcePos.x(), sourcePos.y()) > 0) { - for(synctex_node_t node = synctex_next_result(scanner); node != 0; node = synctex_next_result(scanner)) + for(synctex_node_p node = synctex_scanner_next_result(scanner); node != 0; node = synctex_scanner_next_result(scanner)) { sourceLink.name = QString::fromLocal8Bit(synctex_scanner_get_name(scanner, synctex_node_tag(node))); sourceLink.line = qMax(synctex_node_line(node), 0); diff -uNr qpdfview-0.4.16.orig/sources/main.cpp qpdfview-0.4.16/sources/main.cpp --- qpdfview-0.4.16.orig/sources/main.cpp 2015-11-14 21:48:59.000000000 +0100 +++ qpdfview-0.4.16/sources/main.cpp 2019-10-03 10:59:01.240000000 +0200 @@ -44,6 +44,16 @@ #include +#ifndef HAS_SYNCTEX_2 + +typedef synctex_scanner_t synctex_scanner_p; +typedef synctex_node_t synctex_node_p; + +#define synctex_scanner_next_result(scanner) synctex_next_result(scanner) +#define synctex_display_query(scanner, file, line, column, page) synctex_display_query(scanner, file, line, column) + +#endif // HAS_SYNCTEX_2 + #endif // WITH_SYNCTEX #include "renderparam.h" @@ -317,13 +327,11 @@ if(!file.sourceName.isNull()) { - synctex_scanner_t scanner = synctex_scanner_new_with_output_file(file.filePath.toLocal8Bit(), 0, 1); - - if(scanner != 0) + if(synctex_scanner_p scanner = synctex_scanner_new_with_output_file(file.filePath.toLocal8Bit(), 0, 1)) { - if(synctex_display_query(scanner, file.sourceName.toLocal8Bit(), file.sourceLine, file.sourceColumn) > 0) + if(synctex_display_query(scanner, file.sourceName.toLocal8Bit(), file.sourceLine, file.sourceColumn, -1) > 0) { - for(synctex_node_t node = synctex_next_result(scanner); node != 0; node = synctex_next_result(scanner)) + for(synctex_node_p node = synctex_scanner_next_result(scanner); node != 0; node = synctex_scanner_next_result(scanner)) { int page = synctex_node_page(node); QRectF enclosingBox(synctex_node_box_visible_h(node), synctex_node_box_visible_v(node), synctex_node_box_visible_width(node), synctex_node_box_visible_height(node));