diff options
author | Michael Webster <[email protected]> | 2022-07-18 10:43:47 -0400 |
---|---|---|
committer | Luke from DC <[email protected]> | 2022-08-04 19:49:30 +0000 |
commit | 886866b1437119ae9a21b4957d327071cf453308 (patch) | |
tree | 9419a47605a59eb1c69460e23bc90efabd804a47 /backend | |
parent | acb33ad155ef1a98c2d240900cd11727d9dab465 (diff) | |
download | atril-886866b1437119ae9a21b4957d327071cf453308.tar.bz2 atril-886866b1437119ae9a21b4957d327071cf453308.tar.xz |
epub: Fix index loading for certain documents - look for epub:type
instead of epub:id.
Add a null check as well.
ref:
https://help.apple.com/itc/booksassetguide/en.lproj/itc0f175a5b9.html#apdd3c4c6d1c0904
https://idpf.org/epub/301/spec/epub-contentdocs-20140626.html#sec-xhtml-nav
Diffstat (limited to 'backend')
-rw-r--r-- | backend/epub/epub-document.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/backend/epub/epub-document.c b/backend/epub/epub-document.c index c22d3e47..9840ca3c 100644 --- a/backend/epub/epub-document.c +++ b/backend/epub/epub-document.c @@ -1199,7 +1199,13 @@ setup_index_from_navfile(gchar *tocpath) GList *index = NULL; open_xml_document(tocpath); set_xml_root_node(NULL); - xmlNodePtr nav = xml_get_pointer_to_node((xmlChar*)"nav",(xmlChar*)"id",(xmlChar*)"toc"); + xmlNodePtr nav = xml_get_pointer_to_node((xmlChar*)"nav",(xmlChar*)"type",(xmlChar*)"toc"); + + if (nav == NULL) { + xml_free_doc(); + return NULL; + } + xmlretval=NULL; xml_parse_children_of_node(nav,(xmlChar*)"ol", NULL,NULL); gchar *navdirend = g_strrstr(tocpath,"/"); |