httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rob Hartill <r...@imdb.com>
Subject 1.2b2 addition: SuppressHTMLPreamble Option (fwd)
Date Wed, 11 Dec 1996 20:53:58 GMT

We've seen this before but he's sent it again:   (acked)

----- Forwarded message from =?KOI8-R?Q?Andrey_Chernov=2C_=E1=CE=C4=D2=C5=CA_=FE=C5=D2=CE=CF=D7?=
-----

Date: Wed, 11 Dec 1996 22:57:55 +0300 (MSK)
From: =?KOI8-R?Q?Andrey_Chernov=2C_=E1=CE=C4=D2=C5=CA_=FE=C5=D2=CE=CF=D7?= <ache@nagual.ru>
X-Sender: ache@lsd.relcom.eu.net
To: apache-bugs@apache.org
Subject: 1.2b2 addition: SuppressHTMLPreamble Option
Message-ID: <Pine.BSF.3.95.961211225547.14193A-100000@lsd.relcom.eu.net>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII


   Currently it is impossible to suppress initial HTML preamble for
   directories, i.e.

   <HEAD><TITLE>Index of directory</TITLE></HEAD><BODY>

   It means that it is impossible to change <TITLE> or add any <META
   HTTP-EQUIV...> tags (f.e. for character set indication) to <HEAD>
   section or change <BODY> attributes (like BACKGROUND=...) without HTML
   syntax violation (.asis, cern_meta, mod_headers, etc. not helps here
   too).
   
   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 directory</TITLE></HEAD><BODY>
   preamble will be suppressed assuming you have right HTML preamble in
   your HEADER.html. It solves all problems mentioned above.

*** src/mod_dir.c.orig	Sun Dec  1 23:28:59 1996
--- src/mod_dir.c	Wed Dec 11 21:54:12 1996
***************
*** 81,86 ****
--- 81,87 ----
  #define SUPPRESS_LAST_MOD 8
  #define SUPPRESS_SIZE 16
  #define SUPPRESS_DESC 32
+ #define SUPPRESS_HTML_PREAMBLE 64
  
  struct item {
      char *type;
***************
*** 203,208 ****
--- 204,211 ----
              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
***************
*** 402,409 ****
   * Actually generating output
   */
  
  
! int insert_readme(char *name, char *readme_fname, int rule, request_rec *r) {
      char *fn;
      FILE *f;
      struct stat finfo;
--- 405,419 ----
   * 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;
***************
*** 417,428 ****
          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
--- 427,440 ----
          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
***************
*** 712,722 ****
      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 
--- 724,741 ----
      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);
      }



-- 
Andrey A. Chernov
<ache@nagual.ru>
http://www.nagual.ru/~ache/


----- End of forwarded message from =?KOI8-R?Q?Andrey_Chernov=2C_=E1=CE=C4=D2=C5=CA_=FE=C5=D2=CE=CF=D7?=
-----

-- 
Rob Hartill.       Internet Movie Database Ltd.    http://www.imdb.com/  

Mime
View raw message