mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-15 23:50:44 +00:00
289bc4ac18
It is impossible to suppress initial HTML preamble for directories, i.e. <HEAD><TITLE>Index of dir</TITLE></HEAD><BODY> It means that it is impossible to change <TITLE> or add any <META HTTP-EQUIV...> tags to <HEAD> section or change <BODY> attributes without HTML syntax violation (.asis, cern_meta, etc. not helps here too). Fix: I add "SuppressHTMLPreamble" option to "IndexOptions". When this option is set _and_ HEADER.html (or what you set as it) is present and readable, standard <HEAD><TITLE>Index of dir</TITLE></HEAD><BODY> preamble will be suppressed assuming you have right HTML preamble in your HEADER.html. It solves all problems mentioned above.
128 lines
3.4 KiB
Plaintext
128 lines
3.4 KiB
Plaintext
*** src/mod_dir.c.orig Sat Jun 22 00:12:07 1996
|
|
--- src/mod_dir.c Sun Nov 3 08:33:16 1996
|
|
***************
|
|
*** 83,88 ****
|
|
--- 83,89 ----
|
|
#define SUPPRESS_LAST_MOD 8
|
|
#define SUPPRESS_SIZE 16
|
|
#define SUPPRESS_DESC 32
|
|
+ #define SUPPRESS_HTML_PREAMBLE 64
|
|
|
|
struct item {
|
|
char *type;
|
|
***************
|
|
*** 205,210 ****
|
|
--- 206,213 ----
|
|
opts |= SUPPRESS_SIZE;
|
|
else if(!strcasecmp(w,"SuppressDescription"))
|
|
opts |= SUPPRESS_DESC;
|
|
+ else if(!strcasecmp(w,"SuppressHTMLPreamble"))
|
|
+ opts |= SUPPRESS_HTML_PREAMBLE;
|
|
else if(!strcasecmp(w,"None"))
|
|
opts = 0;
|
|
else
|
|
***************
|
|
*** 404,411 ****
|
|
* Actually generating output
|
|
*/
|
|
|
|
|
|
! int insert_readme(char *name, char *readme_fname, int rule, request_rec *r) {
|
|
char *fn;
|
|
FILE *f;
|
|
struct stat finfo;
|
|
--- 407,421 ----
|
|
* Actually generating output
|
|
*/
|
|
|
|
+ void put_html_preamble(char *title_name, request_rec *r)
|
|
+ {
|
|
+ rvputs(r, "<HEAD><TITLE>Index of ", title_name,
|
|
+ "</TITLE></HEAD><BODY>\n", NULL);
|
|
+ }
|
|
|
|
! int insert_readme(char *name, char *readme_fname, int rule,
|
|
! char *title_name, request_rec *r)
|
|
! {
|
|
char *fn;
|
|
FILE *f;
|
|
struct stat finfo;
|
|
***************
|
|
*** 419,430 ****
|
|
if(stat(fn,&finfo) == -1)
|
|
return 0;
|
|
plaintext=1;
|
|
- if(rule) rputs("<HR>\n", r);
|
|
- rputs("<PRE>\n", r);
|
|
}
|
|
- else if (rule) rputs("<HR>\n", r);
|
|
if(!(f = pfopen(r->pool,fn,"r")))
|
|
return 0;
|
|
if (!plaintext)
|
|
send_fd(f, r);
|
|
else
|
|
--- 429,442 ----
|
|
if(stat(fn,&finfo) == -1)
|
|
return 0;
|
|
plaintext=1;
|
|
}
|
|
if(!(f = pfopen(r->pool,fn,"r")))
|
|
return 0;
|
|
+ if(!rule && plaintext && title_name != NULL)
|
|
+ put_html_preamble(title_name, r);
|
|
+ if(rule) rputs("<HR>\n", r);
|
|
+ if(plaintext) rputs("<PRE>\n", r);
|
|
+
|
|
if (!plaintext)
|
|
send_fd(f, r);
|
|
else
|
|
***************
|
|
*** 714,724 ****
|
|
while (title_endp > title_name && *title_endp == '/')
|
|
*title_endp-- = '\0';
|
|
|
|
! rvputs(r, "<HEAD><TITLE>Index of ", title_name, "</TITLE></HEAD><BODY>\n",
|
|
! NULL);
|
|
|
|
! if((!(tmp = find_header(dir_conf,r))) || (!(insert_readme(name,tmp,0,r))))
|
|
rvputs(r, "<H1>Index of ", title_name, "</H1>\n", NULL);
|
|
|
|
/*
|
|
* Since we don't know how many dir. entries there are, put them into a
|
|
--- 726,743 ----
|
|
while (title_endp > title_name && *title_endp == '/')
|
|
*title_endp-- = '\0';
|
|
|
|
! if(!(dir_opts & SUPPRESS_HTML_PREAMBLE))
|
|
! put_html_preamble(title_name, r);
|
|
|
|
! if((!(tmp = find_header(dir_conf,r))) ||
|
|
! (!(insert_readme(name, tmp, 0,
|
|
! ((dir_opts & SUPPRESS_HTML_PREAMBLE) ?
|
|
! title_name : NULL), r))))
|
|
! {
|
|
! if(dir_opts & SUPPRESS_HTML_PREAMBLE)
|
|
! put_html_preamble(title_name, r);
|
|
rvputs(r, "<H1>Index of ", title_name, "</H1>\n", NULL);
|
|
+ }
|
|
|
|
/*
|
|
* Since we don't know how many dir. entries there are, put them into a
|
|
***************
|
|
*** 751,757 ****
|
|
|
|
if (dir_opts & FANCY_INDEXING)
|
|
if((tmp = find_readme(dir_conf, r)))
|
|
! insert_readme(name,tmp,1,r);
|
|
else {
|
|
rputs("</UL>", r);
|
|
}
|
|
--- 770,776 ----
|
|
|
|
if (dir_opts & FANCY_INDEXING)
|
|
if((tmp = find_readme(dir_conf, r)))
|
|
! insert_readme(name,tmp,1,NULL,r);
|
|
else {
|
|
rputs("</UL>", r);
|
|
}
|