/*
* Here are the routines of man2html that output a HREF string.
*/
#include
#include
#include
#include /* tolower() */
#include /* strlen() */
#include "defs.h"
/*
* The default is to use cgibase. With relative html style
* we generate URLs of the form "../manX/page.html".
*/
static int relat_html_style = 0;
/*
* The default is to use cgibase. With current html style
* we generate URLs of the form "./page.html".
*/
static int current_html_style = 0;
/*
* Either the user is non-local (or local, but using httpd),
* in which case we use http:/cgi-bin, or the user is local
* and uses lynx, and we use lynxcgi:/home/httpd/cgi-bin.
*/
static char *man2htmlpath = "/cgi-bin/man/man2html"; /* default */
static char *cgibase_format = "http://%s"; /* host.domain:port */
static char *cgibase_ll_format = "lynxcgi:%s"; /* directory */
static char *cgibase = "http://localhost"; /* default */
/*
* Separator between URL and argument string.
*
* With http:/a/b?c+d+e the script is called
* with PATH_INFO=/a/b and QUERY_STRING=c+d+e and args $1=c, $2=d, $3=e.
* With lynxcgi:?c+d+e no PATH_INFO is possible.
*/
static char sep = '?'; /* or '/' */
/* What shall we say in case of relat_html_style? */
static char *signature = "
\n"
"This document was created by\n"
"man2html,\n"
"using the manual pages.
\n"
"%s\n";
#define TIMEFORMAT "%T GMT, %B %d, %Y"
#define TIMEBUFSZ 500
void print_sig()
{
char timebuf[TIMEBUFSZ];
struct tm *timetm;
time_t clock;
timebuf[0] = 0;
#ifdef TIMEFORMAT
sprintf(timebuf, "Time: ");
clock=time(NULL);
timetm=localtime(&clock);
snprintf(timebuf, TIMEBUFSZ, "%s%s", timebuf, asctime(timetm));
timebuf[TIMEBUFSZ-1] = 0;
#endif
fprintf(out, signature, timebuf);
}
void
include_file_html(char *g) {
fprintf(out, "%s>", g,g);
}
void
man_page_html(char *sec, char *h) {
if (current_html_style) {
if (!h)
fprintf(out, ""
"Return to Main Contents");
else
fprintf(out, "%s",
h, h);
} else if (relat_html_style) {
if (!h)
fprintf(out, ""
"Return to Main Contents");
else
fprintf(out, "%s",
sec, h, sec, h);
} else {
if (!h)
fprintf(out, "Return to Main Contents",
cgibase, man2htmlpath);
else if (!sec)
fprintf(out, "%s",
cgibase, man2htmlpath, sep, h, h);
else
fprintf(out, "%s",
cgibase, man2htmlpath, sep, sec, h, h);
}
}
void
ftp_html(char *f) {
fprintf(out, "%s", f, f);
}
void
www_html(char *f) {
fprintf(out, "%s", f, f);
}
void
mailto_html(char *g) {
fprintf(out, "%s", g, g);
}
void
url_html(char *g) {
fprintf(out, "%s", g, g);
}