Fix extra > in table-of-contents.

pull/193/head
Michael Sweet 7 years ago
parent e824dc0f56
commit d035af36e8
  1. 23
      mxmldoc.c

@ -915,7 +915,11 @@ build_toc(mxml_node_t *doc, /* I - Documentation */
if (!*ptr) if (!*ptr)
continue; continue;
*ptr++ = '\0'; while (*ptr && *ptr != '>')
*ptr++ = '\0';
if (*ptr)
*ptr++ = '\0';
} }
else else
{ {
@ -3389,6 +3393,7 @@ write_element(FILE *out, /* I - Output file */
} }
#if defined(HAVE_ARCHIVE_H) || defined(__APPLE__)
/* /*
* 'write_epub()' - Write documentation as an EPUB file. * 'write_epub()' - Write documentation as an EPUB file.
*/ */
@ -3916,7 +3921,6 @@ write_epub(const char *section, /* I - Section */
{ {
if (tentry->level > toc_level) if (tentry->level > toc_level)
{ {
fputs(" <ol>\n", fp);
toc_level = tentry->level; toc_level = tentry->level;
} }
else if (tentry->level < toc_level) else if (tentry->level < toc_level)
@ -3928,7 +3932,7 @@ write_epub(const char *section, /* I - Section */
fprintf(fp, " %s<a href=\"body.xhtml#%s\">", toc_level == 1 ? "<li>" : " <li>", tentry->anchor); fprintf(fp, " %s<a href=\"body.xhtml#%s\">", toc_level == 1 ? "<li>" : " <li>", tentry->anchor);
write_string(fp, tentry->title, OUTPUT_EPUB); write_string(fp, tentry->title, OUTPUT_EPUB);
if ((i + 1) < toc->num_entries && tentry[1].level > toc_level) if ((i + 1) < toc->num_entries && tentry[1].level > toc_level)
fputs("</a>\n", fp); fputs("</a><ol>\n", fp);
else else
fputs("</a></li>\n", fp); fputs("</a></li>\n", fp);
} }
@ -3960,7 +3964,6 @@ write_epub(const char *section, /* I - Section */
archive_entry_set_pathname(entry, "mimetype"); archive_entry_set_pathname(entry, "mimetype");
archive_entry_set_size(entry, strlen(mimetype)); archive_entry_set_size(entry, strlen(mimetype));
archive_entry_set_filetype(entry, AE_IFREG); archive_entry_set_filetype(entry, AE_IFREG);
// archive_entry_set_perm(entry, 0644);
archive_write_header(epub, entry); archive_write_header(epub, entry);
archive_write_data(epub, mimetype, strlen(mimetype)); archive_write_data(epub, mimetype, strlen(mimetype));
archive_entry_free(entry); archive_entry_free(entry);
@ -3970,7 +3973,6 @@ write_epub(const char *section, /* I - Section */
archive_entry_set_pathname(entry, "META-INF"); archive_entry_set_pathname(entry, "META-INF");
archive_entry_set_size(entry, 0); archive_entry_set_size(entry, 0);
archive_entry_set_filetype(entry, AE_IFDIR); archive_entry_set_filetype(entry, AE_IFDIR);
// archive_entry_set_perm(entry, 0755);
archive_write_header(epub, entry); archive_write_header(epub, entry);
archive_entry_free(entry); archive_entry_free(entry);
@ -3979,7 +3981,6 @@ write_epub(const char *section, /* I - Section */
archive_entry_set_pathname(entry, "META-INF/container.xml"); archive_entry_set_pathname(entry, "META-INF/container.xml");
archive_entry_set_size(entry, strlen(container_xml)); archive_entry_set_size(entry, strlen(container_xml));
archive_entry_set_filetype(entry, AE_IFREG); archive_entry_set_filetype(entry, AE_IFREG);
// archive_entry_set_perm(entry, 0644);
archive_write_header(epub, entry); archive_write_header(epub, entry);
archive_write_data(epub, container_xml, strlen(container_xml)); archive_write_data(epub, container_xml, strlen(container_xml));
archive_entry_free(entry); archive_entry_free(entry);
@ -3989,7 +3990,6 @@ write_epub(const char *section, /* I - Section */
archive_entry_set_pathname(entry, "OEBPS"); archive_entry_set_pathname(entry, "OEBPS");
archive_entry_set_size(entry, 0); archive_entry_set_size(entry, 0);
archive_entry_set_filetype(entry, AE_IFDIR); archive_entry_set_filetype(entry, AE_IFDIR);
// archive_entry_set_perm(entry, 0755);
archive_write_header(epub, entry); archive_write_header(epub, entry);
archive_entry_free(entry); archive_entry_free(entry);
@ -4000,7 +4000,6 @@ write_epub(const char *section, /* I - Section */
archive_entry_set_pathname(entry, "OEBPS/body.xhtml"); archive_entry_set_pathname(entry, "OEBPS/body.xhtml");
archive_entry_set_size(entry, xhtmlinfo.st_size); archive_entry_set_size(entry, xhtmlinfo.st_size);
archive_entry_set_filetype(entry, AE_IFREG); archive_entry_set_filetype(entry, AE_IFREG);
// archive_entry_set_perm(entry, 0644);
archive_write_header(epub, entry); archive_write_header(epub, entry);
if ((fp = fopen(xhtmlfile, "r")) != NULL) if ((fp = fopen(xhtmlfile, "r")) != NULL)
{ {
@ -4012,7 +4011,7 @@ write_epub(const char *section, /* I - Section */
fclose(fp); fclose(fp);
} }
// unlink(xhtmlfile); unlink(xhtmlfile);
archive_entry_free(entry); archive_entry_free(entry);
/* OEBPS/content.opf file */ /* OEBPS/content.opf file */
@ -4020,7 +4019,6 @@ write_epub(const char *section, /* I - Section */
archive_entry_set_pathname(entry, "OEBPS/content.opf"); archive_entry_set_pathname(entry, "OEBPS/content.opf");
archive_entry_set_size(entry, strlen(content_opf_string)); archive_entry_set_size(entry, strlen(content_opf_string));
archive_entry_set_filetype(entry, AE_IFREG); archive_entry_set_filetype(entry, AE_IFREG);
// archive_entry_set_perm(entry, 0644);
archive_write_header(epub, entry); archive_write_header(epub, entry);
archive_write_data(epub, content_opf_string, strlen(content_opf_string)); archive_write_data(epub, content_opf_string, strlen(content_opf_string));
archive_entry_free(entry); archive_entry_free(entry);
@ -4030,7 +4028,6 @@ write_epub(const char *section, /* I - Section */
archive_entry_set_pathname(entry, "OEBPS/toc.ncx"); archive_entry_set_pathname(entry, "OEBPS/toc.ncx");
archive_entry_set_size(entry, strlen(toc_ncx_string)); archive_entry_set_size(entry, strlen(toc_ncx_string));
archive_entry_set_filetype(entry, AE_IFREG); archive_entry_set_filetype(entry, AE_IFREG);
// archive_entry_set_perm(entry, 0644);
archive_write_header(epub, entry); archive_write_header(epub, entry);
archive_write_data(epub, toc_ncx_string, strlen(toc_ncx_string)); archive_write_data(epub, toc_ncx_string, strlen(toc_ncx_string));
archive_entry_free(entry); archive_entry_free(entry);
@ -4042,7 +4039,6 @@ write_epub(const char *section, /* I - Section */
archive_entry_set_pathname(entry, "OEBPS/toc.xhtml"); archive_entry_set_pathname(entry, "OEBPS/toc.xhtml");
archive_entry_set_size(entry, toc_xhtmlinfo.st_size); archive_entry_set_size(entry, toc_xhtmlinfo.st_size);
archive_entry_set_filetype(entry, AE_IFREG); archive_entry_set_filetype(entry, AE_IFREG);
// archive_entry_set_perm(entry, 0644);
archive_write_header(epub, entry); archive_write_header(epub, entry);
if ((fp = fopen(toc_xhtmlfile, "r")) != NULL) if ((fp = fopen(toc_xhtmlfile, "r")) != NULL)
{ {
@ -4054,12 +4050,13 @@ write_epub(const char *section, /* I - Section */
fclose(fp); fclose(fp);
} }
// unlink(toc_xhtmlfile); unlink(toc_xhtmlfile);
archive_entry_free(entry); archive_entry_free(entry);
archive_write_close(epub); archive_write_close(epub);
archive_write_finish(epub); archive_write_finish(epub);
} }
#endif /* HAVE_ARCHIVE_H || __APPLE__ */
/* /*

Loading…
Cancel
Save