indexdata *idx) {
paragraph *p;
FILE *fp;
- char const *sep;
manconfig conf;
+ int done_copyright;
IGNORE(keywords); /* we don't happen to need this */
IGNORE(idx); /* or this */
}
/* .TH name-of-program manual-section */
- {
+ fprintf(fp, ".TH");
+ if (conf.th && *conf.th) {
char *c;
- if (conf.th && *conf.th) {
- wchar_t *wp;
- fprintf(fp, ".TH");
-
- for (wp = conf.th; *wp; wp = uadv(wp)) {
- fputs(" \"", fp);
- man_convert(wp, 0, &c, QUOTE_QUOTES);
- fputs(c, fp);
- sfree(c);
- fputc('"', fp);
- }
- fputc('\n', fp);
+ wchar_t *wp;
+
+ for (wp = conf.th; *wp; wp = uadv(wp)) {
+ fputs(" \"", fp);
+ man_convert(wp, 0, &c, QUOTE_QUOTES);
+ fputs(c, fp);
+ sfree(c);
+ fputc('"', fp);
}
}
+ fputc('\n', fp);
fprintf(fp, ".UC\n");
- /* Do the preamble and copyright */
- sep = "";
- for (p = sourceform; p; p = p->next)
- if (p->type == para_Preamble) {
- fprintf(fp, "%s", sep);
- man_text(fp, p->words, TRUE, 0);
- sep = "\n";
- }
- for (p = sourceform; p; p = p->next)
- if (p->type == para_Copyright) {
- fprintf(fp, "%s", sep);
- man_text(fp, p->words, TRUE, 0);
- sep = "\n";
- }
+ done_copyright = FALSE;
for (p = sourceform; p; p = p->next) switch (p->type) {
/*
case para_Biblio: /* only touch BiblioCited */
case para_VersionID:
case para_Copyright:
- case para_Preamble:
case para_NoCite:
case para_Title:
break;
case para_UnnumberedChapter:
case para_Heading:
case para_Subsect:
+
+ if (!done_copyright) {
+ paragraph *p;
+
+ /*
+ * The copyright comes just before the first chapter
+ * title.
+ */
+ for (p = sourceform; p; p = p->next)
+ if (p->type == para_Copyright) {
+ fprintf(fp, ".PP\n");
+ man_text(fp, p->words, TRUE, 0);
+ }
+ done_copyright = TRUE;
+ }
+
{
int depth;
if (p->type == para_Subsect)
break;
case para_LcontPush:
+ case para_QuotePush:
fprintf(fp, ".RS\n");
break;
case para_LcontPop:
+ case para_QuotePop:
fprintf(fp, ".RE\n");
break;
}