httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From c...@hyperreal.org
Subject cvs commit: apache-1.3/src/modules/standard mod_autoindex.c
Date Fri, 02 Oct 1998 21:35:42 GMT
coar        98/10/02 14:35:40

  Modified:    htdocs/manual/mod mod_autoindex.html
               src/modules/standard mod_autoindex.c
  Log:
  	Back off a portion of the incremental-IndexOptions patch;
  	unprefixed keywords should clear all inherited options and
  	start setting the local directory's options from scratch.
  	Otherwise, 'keyword' and '+keyword' are essentially identical,
  	and clearing inheritance a pain.
  
  Revision  Changes    Path
  1.26      +4 -8      apache-1.3/htdocs/manual/mod/mod_autoindex.html
  
  Index: mod_autoindex.html
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/htdocs/manual/mod/mod_autoindex.html,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- mod_autoindex.html	1998/09/28 22:32:10	1.25
  +++ mod_autoindex.html	1998/10/02 21:35:33	1.26
  @@ -637,8 +637,8 @@
   Whenever a '+' or '-' prefixed keyword is encountered, it is applied
   to the current <SAMP>IndexOptions</SAMP> settings (which may have been
   inherited from an upper-level directory).  However, whenever an unprefixed
  -keyword is processed, it clears all incremental settings.  Consider
  -the following example:
  +keyword is processed, it clears all inherited options and any incremental
  +settings encountered so far.  Consider the following example:
   </P>
   <BLOCKQUOTE><CODE>IndexOptions +ScanHTMLTitles -IconsAreLinks FancyIndexing
   <BR>
  @@ -654,13 +654,9 @@
   </P>
   <P>
   To unconditionally set the <CODE>IndexOptions</CODE> for a
  -particular directory, clearing the inherited settings, use
  +particular directory, clearing the inherited settings, specify
  +keywords without either '+' or '-' prefixes.
   </P>
  -<BLOCKQUOTE><CODE>
  -IndexOptions None
  -<BR>
  -IndexOptions <EM>new-setting</EM> ...
  -</CODE></BLOCKQUOTE>
   </DD>
   </DL>
   <HR>
  
  
  
  1.95      +24 -9     apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.94
  retrieving revision 1.95
  diff -u -r1.94 -r1.95
  --- mod_autoindex.c	1998/09/28 22:32:12	1.94
  +++ mod_autoindex.c	1998/10/02 21:35:38	1.95
  @@ -512,23 +512,38 @@
       if (add->opts & NO_OPTIONS) {
   	/*
   	 * If the current directory says 'no options' then we also
  -	 * clear any incremental mods from being inheritable.
  +	 * clear any incremental mods from being inheritable further down.
   	 */
   	new->opts = NO_OPTIONS;
   	new->incremented_opts = 0;
   	new->decremented_opts = 0;
       }
       else {
  -	new->incremented_opts = (base->incremented_opts 
  -				 | add->incremented_opts)
  -	                        & ~add->decremented_opts;
  -	new->decremented_opts = (base->decremented_opts
  -				 | add->decremented_opts);
   	/*
  -	 * We've got some local settings, so make sure we don't inadvertently
  -	 * inherit an IndexOptions None from above.
  +	 * If there were any non-incremental options selected for
  +	 * this directory, they dominate and we don't inherit *anything.*
  +	 * Contrariwise, we *do* inherit if the only settings here are
  +	 * incremental ones.
   	 */
  -	new->opts = ((base->opts | add->opts) & ~NO_OPTIONS);
  +	if (add->opts == 0) {
  +	    new->incremented_opts = (base->incremented_opts 
  +				     | add->incremented_opts)
  +		                    & ~add->decremented_opts;
  +	    new->decremented_opts = (base->decremented_opts
  +				     | add->decremented_opts);
  +	    /*
  +	     * We may have incremental settings, so make sure we don't
  +	     * inadvertently inherit an IndexOptions None from above.
  +	     */
  +	    new->opts = (base->opts & ~NO_OPTIONS);
  +	}
  +	else {
  +	    /*
  +	     * There are local non-incremental settings, which clear
  +	     * all inheritance from above.  They *are* the new base settings.
  +	     */
  +	    new->opts = add->opts;;
  +	}
   	/*
   	 * We're guaranteed that there'll be no overlap between
   	 * the add-options and the remove-options.
  
  
  

Mime
View raw message