version 1.109, 2015/10/06 18:32:19 |
version 1.114, 2015/11/05 20:55:41 |
|
|
#include "mandoc_aux.h" |
#include "mandoc_aux.h" |
#include "mandoc.h" |
#include "mandoc.h" |
#include "roff.h" |
#include "roff.h" |
|
#include "mdoc.h" |
|
#include "man.h" |
#include "main.h" |
#include "main.h" |
#include "manconf.h" |
#include "manconf.h" |
#include "mansearch.h" |
#include "mansearch.h" |
Line 75 static void pg_searchres(const struct req *, |
|
Line 77 static void pg_searchres(const struct req *, |
|
static void pg_show(struct req *, const char *); |
static void pg_show(struct req *, const char *); |
static void resp_begin_html(int, const char *); |
static void resp_begin_html(int, const char *); |
static void resp_begin_http(int, const char *); |
static void resp_begin_http(int, const char *); |
|
static void resp_copy(const char *); |
static void resp_end_html(void); |
static void resp_end_html(void); |
static void resp_searchform(const struct req *); |
static void resp_searchform(const struct req *); |
static void resp_show(const struct req *, const char *); |
static void resp_show(const struct req *, const char *); |
Line 366 resp_begin_http(int code, const char *msg) |
|
Line 369 resp_begin_http(int code, const char *msg) |
|
} |
} |
|
|
static void |
static void |
|
resp_copy(const char *filename) |
|
{ |
|
char buf[4096]; |
|
ssize_t sz; |
|
int fd; |
|
|
|
if ((fd = open(filename, O_RDONLY)) != -1) { |
|
fflush(stdout); |
|
while ((sz = read(fd, buf, sizeof(buf))) > 0) |
|
write(STDOUT_FILENO, buf, sz); |
|
} |
|
} |
|
|
|
static void |
resp_begin_html(int code, const char *msg) |
resp_begin_html(int code, const char *msg) |
{ |
{ |
|
|
Line 375 resp_begin_html(int code, const char *msg) |
|
Line 392 resp_begin_html(int code, const char *msg) |
|
"<HTML>\n" |
"<HTML>\n" |
"<HEAD>\n" |
"<HEAD>\n" |
"<META CHARSET=\"UTF-8\" />\n" |
"<META CHARSET=\"UTF-8\" />\n" |
"<LINK REL=\"stylesheet\" HREF=\"%s/man-cgi.css\"" |
"<LINK REL=\"stylesheet\" HREF=\"%s/mandoc.css\"" |
" TYPE=\"text/css\" media=\"all\">\n" |
" TYPE=\"text/css\" media=\"all\">\n" |
"<LINK REL=\"stylesheet\" HREF=\"%s/man.css\"" |
|
" TYPE=\"text/css\" media=\"all\">\n" |
|
"<TITLE>%s</TITLE>\n" |
"<TITLE>%s</TITLE>\n" |
"</HEAD>\n" |
"</HEAD>\n" |
"<BODY>\n" |
"<BODY>\n" |
"<!-- Begin page content. //-->\n", |
"<!-- Begin page content. //-->\n", |
CSS_DIR, CSS_DIR, CUSTOMIZE_TITLE); |
CSS_DIR, CUSTOMIZE_TITLE); |
|
|
|
resp_copy(MAN_DIR "/header.html"); |
} |
} |
|
|
static void |
static void |
resp_end_html(void) |
resp_end_html(void) |
{ |
{ |
|
|
|
resp_copy(MAN_DIR "/footer.html"); |
|
|
puts("</BODY>\n" |
puts("</BODY>\n" |
"</HTML>"); |
"</HTML>"); |
} |
} |
Line 399 resp_searchform(const struct req *req) |
|
Line 418 resp_searchform(const struct req *req) |
|
{ |
{ |
int i; |
int i; |
|
|
puts(CUSTOMIZE_BEGIN); |
|
puts("<!-- Begin search form. //-->"); |
puts("<!-- Begin search form. //-->"); |
printf("<DIV ID=\"mancgi\">\n" |
printf("<DIV ID=\"mancgi\">\n" |
"<FORM ACTION=\"%s\" METHOD=\"get\">\n" |
"<FORM ACTION=\"%s\" METHOD=\"get\">\n" |
Line 819 format(const struct req *req, const char *file) |
|
Line 837 format(const struct req *req, const char *file) |
|
{ |
{ |
struct manoutput conf; |
struct manoutput conf; |
struct mparse *mp; |
struct mparse *mp; |
struct mchars *mchars; |
|
struct roff_man *man; |
struct roff_man *man; |
void *vp; |
void *vp; |
int fd; |
int fd; |
Line 830 format(const struct req *req, const char *file) |
|
Line 847 format(const struct req *req, const char *file) |
|
return; |
return; |
} |
} |
|
|
mchars = mchars_alloc(); |
mchars_alloc(); |
mp = mparse_alloc(MPARSE_SO, MANDOCLEVEL_BADARG, NULL, |
mp = mparse_alloc(MPARSE_SO, MANDOCLEVEL_BADARG, NULL, req->q.manpath); |
mchars, req->q.manpath); |
|
mparse_readfd(mp, fd, file); |
mparse_readfd(mp, fd, file); |
close(fd); |
close(fd); |
|
|
Line 852 format(const struct req *req, const char *file) |
|
Line 868 format(const struct req *req, const char *file) |
|
req->q.manpath, file); |
req->q.manpath, file); |
pg_error_internal(); |
pg_error_internal(); |
mparse_free(mp); |
mparse_free(mp); |
mchars_free(mchars); |
mchars_free(); |
return; |
return; |
} |
} |
|
|
vp = html_alloc(mchars, &conf); |
vp = html_alloc(&conf); |
|
|
if (man->macroset == MACROSET_MDOC) |
if (man->macroset == MACROSET_MDOC) { |
|
mdoc_validate(man); |
html_mdoc(vp, man); |
html_mdoc(vp, man); |
else |
} else { |
|
man_validate(man); |
html_man(vp, man); |
html_man(vp, man); |
|
} |
|
|
html_free(vp); |
html_free(vp); |
mparse_free(mp); |
mparse_free(mp); |
mchars_free(mchars); |
mchars_free(); |
free(conf.man); |
free(conf.man); |
} |
} |
|
|