Revision history for Perl extension Apache::SSI.

2.06  Wed Feb  3 00:16:12 EST 1999
   - The boolean expressions of the <!--#if--> and <!--#elsif--> directives
     are now handled with a Perl eval().  This allows proper parsing of
     expressions like "!($var)", and even lets you use pre-loaded Perl
     subroutines in those expressions.  The specific mechanism I'm using to
     fill in the variables is quite voodooey, I'd appreciate some feedback
     on how it's working.

   - Sometime in the last few versions I introduced a new "Use of
     uninitialized value at blib/lib/Apache/SSI.pm line 85" warning, but I
     can't for the life of me figure out what's uninitialized.  Anyone?
     That line is:
        if ($ssi =~ m/^<!--#(.*)-->$/s) {
     Through my testing, I know $ssi is defined, and that's definitely the
     line it's complaining about.

   - The arg, args, & pass_request parameters to <!--#perl ...--> are now
     processed case-insensitively.
 
   - <!--#perl sub="Named::Subroutine"--> had been broken, probably from day
     one.  Now it's fixed.

2.05  Mon Feb  1 12:12:25 EST 1999
   - Fixed a bug that was preventing directives from spanning multiple lines
     [ Thanks, Yury Kuznesov ]

2.04  Sat Jan 30 00:27:54 EST 1999
   - Removed the %ENV = $r->cgi_env line, since it's not necessary.
     See http://forum.swarthmore.edu/epigone/modperl/jangblorkand .

   - Added "local $/ = undef;" line to reading input filehandle, which
     should speed up running under Apache::Filter. [Thanks, Joshua Chamos]

   - Added support for <!--#exec cgi="..."-->.  Please let me know
     if there are any problems, there are a lot of things to get right
     (or go wrong).  Thanks to Yury Kuznesov for the urging.

   - Added support for <!--#config ...-->, except the 'timefmt' directive.
     
   - With the small exception in 'config' above, I think that now all the 
     functionality of mod_include is present in Apache::SSI.  Once people have 
     used it for a while and we've ironed out bugs, I'll declare some version 
     "officially stable and complete" or something.

2.03  Mon Jan  4 04:43:01 EST 1999
   - Added support for the #if, #elif, #else, and #endif directives

   - Failed includes now report in the error log the name of the file they
     were trying to include.

2.02  Fri Nov 27 04:25:00 EST 1998
   - Added minimal and probably buggy support for variable interpolation in
     SSI directives.

   - <!--#fsize ...--> should work now.

2.01 Wed Nov 11 18:31:12 EST 1998
   - Backed out the $r->finfo change from 1.99 because of some reported
     problems with it.

2.00 (not formally released, because I forgot to add to the Changes file)

1.99  Mon, 09 Nov 1998 07:45:47 GMT
   - Uses $r->finfo for doing file-test operations, instead of using $r->filename.
     Supposedly this speeds things up by avoiding an expensive system call (I
     haven't benchmarked it).  See 
     http://www.modperl.com/chapters/ch8.html#Client_Request_Methods

   - Checks the return status of the call to $r->filter_input.  If you're
     using Apache::SSI with Apache::Filter, you'll need to upgrade
     Apache::Filter to version 0.02 to use this version of Apache::SSI.

1.98  Sat Nov  7 02:19:05 EST 1998
   - Will now cooperate with Apache::Filter if you've got it.

   - Strips backslashes used in perl subs like these:
     <!--#perl sub="sub {for (0..10) {print \"very \"}}"-->
     [thanks, Stephane Bortzmeyer]

   - More verbose error logging when you turn on the debug flags
     [ibid]

   - When reading the input file (and not using Apache::Filter), we use
     a lexical variable for the filehandle, instead of the local(*IN)
     we were using before.

   - Compensates for changes in the rotation of the Earth after Jesse Ventura
     is elected governor of my state.

1.97  Thu Oct 22 02:43:34 EDT 1998
   - Fixed DOCUMENT_NAME, DOCUMENT_URI, and LAST_MODIFIED so they return information
     about the document the user requested, not the document we're currently
     processing (which might be an <!--#include-->'d file).  Test 7 in real.t
     witnesses the change.  
     This behavior is consistent with mod_include, and I think it's also desirable:
     the browser shouldn't see the names of documents we're including.
     [thanks, Bruce Hoylman]
     
   - Now the three above ENV variables cache their results in the subprocess_env
     table, which will speed things up if you call them repeatedly.  This is similar
     to mod_include, but mod_include puts them there at the _beginning_ of the 
     request, whereas I wait until they're asked for.
     

1.96  Fri Oct 16 20:10:54 EDT 1998
   - Added a text() method for getting/setting the contents of the HTML.
     This fixes a bug when used with Apache::SSIChain.  
     [thanks, John Armstrong]

1.95  Sun Oct 11 16:04:19 EDT 1998

   - Doesn't rely on HTML::SimpleParse anymore to parse the HTML, but instead just
     looks for <!--#.*?-->.  This allows nesting: <img src="<!--#whatever-->">,
     and it should be much faster.  HTML::SimpleParse is still used to parse 
     the key-value pairs of attributes for SSI directives. 
     [Randal Schwartz, Rob Hartill]
     
   - <!--#flastmod virtual="whatever"--> now works. [Rob Hartill]
     
   - <!--#perl --> sections now pass $r as the first argument, and there
     are two ways to turn off this behavior (PerlSetVar and named parameter).
     [Ibid]
     
   - You can mix & match the "arg" and "args" parameters to <!--#perl--> 
     sections, like so:
      <!--#perl sub=something arg="Hi, Ken" args=5,12,13 arg="Bye, Ken"-->
      &main::something($r, "Hi, Ken", "5", "12", "13", "Bye, Ken");
     
   - Added prototypes to several methods, which might conceivably speed them
     up if the compiler can optimize around it.
     
   - In ssi_set, removed workaround for mod_perl 1.12 bug.
     

1.94  Wed Oct  7 19:57:03 EDT 1998
   - Apache::SSI can now be subclassed much more easily under mod_perl,
     because it knows how to deal with PERL_METHOD_HANDLERS=1 scenarios.
     See the docs' SUMMARY for more info.
   - The tests have been moved into the t/ directory, and there's a new
     real.t test that will start an apache server and fetch a few pages.

1.93  Wed Sep 23 15:53:21 EDT 1998
   - You can now pass multiple arguments to a <!--#perl--> routine.

1.92  Sat Sep 19 01:55:50 EDT 1998
   - Added a "return;" statement to the ssi_include routine.  Avoids printing
     an extraneous "1" in the served page.  Don't know how I missed this
     before.  Thanks to Gil Vidals.

1.91  Sun Jun 28 17:49:29 EDT 1998
   - In README and Makefile.PL, I've noted that mod_perl must be installed
     before this module will work.
   
   - I've updated everything so that it can use HTML::SimpleParse version 0.03,
     which requires that each output_* function return its output rather than
     print it.

1.90  Fri Jun 26 18:07:57 1998
   - original version; created by h2xs 1.18.  Actually a re-write of Doug
     MacEachern's original version.

mod_include has this:
     if (!(allow_options(r) & OPT_INCLUDES)) {
        return DECLINED;
    }
