From kde-bugs-dist Sun Jul 31 22:40:59 2011 From: Philipp Woelfel Date: Sun, 31 Jul 2011 22:40:59 +0000 To: kde-bugs-dist Subject: [Bug 274294] okular's synctex support doesn't work with lua(la)tex Message-Id: X-MARC-Message: https://marc.info/?l=kde-bugs-dist&m=131215208821466 https://bugs.kde.org/show_bug.cgi?id=274294 --- Comment #15 from Philipp Woelfel 2011-07-31 22:40:58 --- In linux, the synctex filename parser compares just the plain strings using strcmp. For windows it actually compares the filenames character in a loop and gets rid of case sensitivity and treats "/" and "\" equivalently. So here is a non-developer's dirty fix: In generators/poppler/synctex/synctex_parser_utils.c, function _synctex_is_equivalent_file_name I replaced the part between "#else" and "#endif" with with the following: # else next_character: if(SYNCTEX_IS_PATH_SEPARATOR(*lhs)) {/* lhs points to a path separator */ if(!SYNCTEX_IS_PATH_SEPARATOR(*rhs)) {/* but not rhs */ return synctex_NO; } for (; *(lhs + 1) == '.' && SYNCTEX_IS_PATH_SEPARATOR(*(lhs + 2)); lhs += 2); for (; *(rhs + 1) == '.' && SYNCTEX_IS_PATH_SEPARATOR(*(rhs + 2)); rhs += 2); } else if(SYNCTEX_IS_PATH_SEPARATOR(*rhs)) {/* rhs points to a path separator but not lhs */ return synctex_NO; } else if (!*lhs) {/* lhs is at the end of the string */ return *rhs ? synctex_NO : synctex_YES; } else if(!*rhs) {/* rhs is at the end of the string but not lhs */ return synctex_NO; } ++lhs; ++rhs; goto next_character; /* return 0 == strcmp(lhs,rhs)?synctex_YES:synctex_NO; */ # endif This is just a copy of the windows part of the code minus comparing uppercase symbols plus 2 for-loops taken from the sumatraPDF code (http://blog.kowalczyk.info/software/sumatrapdf/free-pdf-reader.html) Perhaps it's not very clean, but it works for me... -- Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are watching all bug changes.