From 2cb320edb54190ad384b7ba7b01547f1e838ef28 Mon Sep 17 00:00:00 2001 From: kichik Date: Mon, 3 Nov 2003 09:10:19 +0000 Subject: [PATCH] CHM documentation generates using Halibut. Thanks Nike! git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@3090 212acab6-be3b-0410-9dea-997c60f758d6 --- Docs/src/bin/halibut.exe | Bin 69120 -> 65536 bytes Docs/src/bin/halibut/bk_xhtml.c | 127 ++++++++++++++++++++++++++++---- Docs/src/bin/halibut/contents.c | 1 + Docs/src/bin/halibut/error.c | 3 +- Docs/src/bin/halibut/halibut.h | 2 + Docs/src/bin/halibut/input.c | 30 +++++--- Docs/src/bin/halibut/main.c | 2 + Docs/src/bin/halibut/makefile | 6 +- Docs/src/bin/halibut/malloc.c | 1 + Docs/src/bin/halibut/misc.c | 2 +- Docs/src/bin/halibut/tree234.c | 2 +- Docs/src/bin/halibut/ustring.c | 2 +- Docs/src/build.bat | 22 ++++-- Docs/src/chm_config.but | 24 ++++++ Docs/src/chmlink.js | 44 +++++++++++ Docs/src/history.but | 8 +- Docs/src/langs.but | 8 +- Docs/src/modernui.but | 2 +- Docs/src/nsis.hhp | 21 ++++++ Docs/src/pages.but | 2 +- Docs/src/sec.but | 2 +- Docs/src/tutorial.but | 10 +-- Docs/src/ui.but | 2 +- Docs/src/var.but | 2 +- 24 files changed, 268 insertions(+), 57 deletions(-) create mode 100644 Docs/src/chm_config.but create mode 100644 Docs/src/chmlink.js create mode 100644 Docs/src/nsis.hhp diff --git a/Docs/src/bin/halibut.exe b/Docs/src/bin/halibut.exe index 834e414ef4c8f594442772bdb7a88177186a6858..2e69731ac8809a4489a74f069c488240e214b470 100644 GIT binary patch delta 23462 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 diff --git a/Docs/src/bin/halibut/bk_xhtml.c b/Docs/src/bin/halibut/bk_xhtml.c index 25b97afb..c90db812 100644 --- a/Docs/src/bin/halibut/bk_xhtml.c +++ b/Docs/src/bin/halibut/bk_xhtml.c @@ -76,6 +76,8 @@ typedef struct { wchar_t *author, *description; wchar_t *head_end, *body, *body_start, *body_end, *address_start, *address_end, *nav_attrs; + wchar_t *rlink_prefix, *rlink_suffix; + wchar_t *chm_toc_file, *chm_ind_file; int suppress_address; xhtmlheadfmt fchapter, *fsect; int nfsect; @@ -101,6 +103,8 @@ static void xhtml_para(FILE *, word *); static void xhtml_codepara(FILE *, word *); static void xhtml_heading(FILE *, paragraph *); +static void chm_doheader(FILE *, word *); +static void chm_dofooter(FILE *); /* File-global variables are much easier than passing these things * all over the place. Evil, but easier. We can replace this with a single * structure at some point. @@ -115,6 +119,9 @@ static xhtmlfile *lastfile; static xhtmlfile *xhtml_last_file = NULL; static int last_level = -1; static xhtmlsection *currentsection; +static FILE* chm_toc = NULL; +static FILE* chm_ind = NULL; + static xhtmlconfig xhtml_configure(paragraph * source) { @@ -143,7 +150,10 @@ static xhtmlconfig xhtml_configure(paragraph * source) ret.address_end = NULL; ret.nav_attrs = NULL; ret.suppress_address = FALSE; - + ret.chm_toc_file = NULL; + ret.chm_ind_file = NULL; + chm_toc = NULL; + chm_ind = NULL; ret.fchapter.just_numbers = FALSE; ret.fchapter.number_suffix = ustrdup(L": "); ret.nfsect = 2; @@ -152,6 +162,8 @@ static xhtmlconfig xhtml_configure(paragraph * source) ret.fsect[0].number_suffix = ustrdup(L": "); ret.fsect[1].just_numbers = TRUE; ret.fsect[1].number_suffix = ustrdup(L" "); + ret.rlink_prefix = NULL; + ret.rlink_suffix = NULL; for (; source; source = source->next) { @@ -195,6 +207,12 @@ static xhtmlconfig xhtml_configure(paragraph * source) } else if (!ustricmp(source->keyword, L"xhtml-author")) { ret.author = uadv(source->keyword); + } else if (!ustricmp(source->keyword, L"chm-toc-file")) + { + ret.chm_toc_file = uadv(source->keyword); + } else if (!ustricmp(source->keyword, L"chm-ind-file")) + { + ret.chm_ind_file = uadv(source->keyword); } else if (!ustricmp(source->keyword, L"xhtml-description")) { ret.description = uadv(source->keyword); @@ -226,6 +244,12 @@ static xhtmlconfig xhtml_configure(paragraph * source) } else if (!ustricmp(source->keyword, L"xhtml-chapter-suffix")) { ret.fchapter.number_suffix = ustrdup(uadv(source->keyword)); + } else if (!ustricmp(source->keyword, L"xhtml-rlink-prefix")) + { + ret.rlink_prefix = uadv(source->keyword); + } else if (!ustricmp(source->keyword, L"xhtml-rlink-suffix")) + { + ret.rlink_suffix = uadv(source->keyword); } else if (!ustricmp(source->keyword, L"xhtml-section-numeric")) { wchar_t *p = uadv(source->keyword); @@ -646,11 +670,8 @@ static void xhtml_do_file(xhtmlfile * file); static void xhtml_do_top_file(xhtmlfile * file, paragraph * sourceform); static void xhtml_do_paras(FILE * fp, paragraph * p); static int xhtml_do_contents_limit(FILE * fp, xhtmlfile * file, int limit); -static int xhtml_do_contents_section_limit(FILE * fp, - xhtmlsection * section, - int limit); -static int xhtml_add_contents_entry(FILE * fp, xhtmlsection * section, - int limit); +static int xhtml_do_contents_section_limit(FILE * fp, xhtmlsection * section, int limit); +static int xhtml_add_contents_entry(FILE * fp, xhtmlsection * section, int limit); static int xhtml_do_contents(FILE * fp, xhtmlfile * file); static int xhtml_do_naked_contents(FILE * fp, xhtmlfile * file); static void xhtml_do_sections(FILE * fp, xhtmlsection * sections); @@ -945,17 +966,39 @@ static void xhtml_do_file(xhtmlfile * file) static void xhtml_do_top_file(xhtmlfile * file, paragraph * sourceform) { paragraph *p; + char fname[_MAX_PATH]; int done = FALSE; FILE *fp = fopen(file->filename, "w"); + ustrtoa(conf.chm_toc_file, fname, _MAX_PATH); + if(*fname) + { + chm_toc = fopen(fname, "w"); + if (chm_toc == NULL) + fatal(err_cantopenw, fname); + } + else + chm_toc = NULL; + + ustrtoa(conf.chm_ind_file, fname, _MAX_PATH); + if(*fname){ + chm_ind = fopen(fname, "w"); + if (chm_ind == NULL) + fatal(err_cantopenw, fname); + } + else + chm_ind = NULL; if (fp == NULL) fatal(err_cantopenw, file->filename); + /* Do the title -- only one allowed */ for (p = sourceform; p && !done; p = p->next) { if (p->type == para_Title) { xhtml_doheader(fp, p->words); + if(chm_toc)chm_doheader(chm_toc, p->words); + if(chm_ind)chm_doheader(chm_ind, p->words); done = TRUE; } } @@ -1008,7 +1051,11 @@ static void xhtml_do_top_file(xhtmlfile * file, paragraph * sourceform) } xhtml_dofooter(fp); + if(chm_toc)chm_dofooter(chm_toc); + if(chm_ind)chm_dofooter(chm_ind); fclose(fp); + if(chm_toc)fclose(chm_toc); + if(chm_ind)fclose(chm_ind); } /* Convert a Unicode string to an ASCII one. '?' is @@ -1053,6 +1100,7 @@ static int xhtml_do_contents(FILE * fp, xhtmlfile * file) { last_level--; fprintf(fp, "\n"); + if(chm_toc)fprintf(chm_toc, "\n"); } } return count; @@ -1077,6 +1125,7 @@ static int xhtml_do_naked_contents(FILE * fp, xhtmlfile * file) { last_level--; fprintf(fp, "\n"); + if(chm_toc)fprintf(chm_toc, "\n"); } } return count; @@ -1125,8 +1174,7 @@ xhtml_do_contents_section_deep_limit(FILE * fp, xhtmlsection * section, * limit contents depth. */ static int -xhtml_do_contents_section_limit(FILE * fp, xhtmlsection * section, - int limit) +xhtml_do_contents_section_limit(FILE * fp, xhtmlsection * section, int limit) { int count = 0; if (!section) @@ -1156,19 +1204,26 @@ xhtml_add_contents_entry(FILE * fp, xhtmlsection * section, int limit) { last_level--; fprintf(fp, "\n"); + if(chm_toc)fprintf(chm_toc, "\n"); } while (last_level < section->level) { last_level++; fprintf(fp, "