Version 3.42 1. Added patch from Renee Baecker that makes it possible to subclass CGI::Pretty. 2. Added patch from Nicholas Clark to allow ~ characters in temporary directories. 3. Added patch from Renee Baecker that fixes the inappropriate escaping of fields in multipart headers. Version 3.41 1. Fix url() returning incorrect path when query string contains escaped newline. 2. Added additional windows temporary directories and environment variables, courtesy patch from Renee Baecker 3. Added a handle() method to the lightweight upload filehandles. This method returns a real IO::Handle object. 4. Added patch from Tony Vanlingen to fix deep recursion warnings in CGI::Pretty. Version 3.40 1. Fixed CGI::Fast docs to eliminate references to a "special" version of Perl. 2. Makefile.PL now depends on FCGI so that CGI::Fast installs properly. 3. Fix script_name() call from Stephane Chazelas. Version 3.39 1. Fixed regression in "exists" function when using tied interface to CGI via $q->Vars. Version 3.38 1. Fix annoying warning in http://rt.cpan.org/Ticket/Display.html?id=34551 2. Added nobr() function http://rt.cpan.org/Ticket/Display.html?id=35377 3. popup_menu() allows multiple items to be selected by default, satisfying http://rt.cpan.org/Ticket/Display.html?id=35376 4. Patch from Renee Backer to avoid doubled headers. 5. Fixed documentation bug that describes what happens when a parameter is empty (e.g. "?test1="). 6. Fixed minor warning described at http://rt.cpan.org/Public/Bug/Display.html?id=36435 7. Fixed overlap of attribute and parameter space described in http://rt.perl.org/rt3//Ticket/Display.html?id=24294 Version 3.37 1. Fix pragmas so that they persist over modperl invocations (e.g. RT 34761) 2. Fixed handling of chunked multipart uploads; thanks to Michael Bernhardt who reported and fixed the problem. Version 3.36 1. Fix CGI::Cookie to support cookies that are separated by "," instead of ";". Version 3.35 1. Resync with bleadperl, primarily fixing a bug in parsing semicolons in uploaded filenames. Version 3.34 1. Handle Unicode %uXXXX escapes properly -- patch from DANKOGAI@cpan.org 2. Fix url() method to not choke on path names that contain regex characters. Version 3.33 1. Remove uninit variable warning when calling url(-relative=>1) 2. Fix uninit variable warnings for two lc calls 3. Fixed failure of tempfile upload due to sprintf() taint failure in perl 5.10 Version 3.32 1. Patch from Miguel Santinho to prevent sending premature headers under mod_perl 2.0 Version 3.31 1. Patch from Xavier Robin so that CGI::Carp issues a 500 Status code rather than a 200 status code. 2. Patch from Alexander Klink to select correct temporary directory in OSX Leopard so that upload works. 3. Possibly fixed "wrapped pack" error on 5.10 and higher. Version 3.30 1. Patch from Mike Barry to handle POSTDATA in the same way as PUT. 2. Patch from Rafael Garcia-Suarez to correctly reencode unicode values as byte values. Version 3.29 1. The position of file handles is now reset to zero when CGI->new is called. (Mark Stosberg) 2. uploadInfo() now works across multiple object instances. Also, the first tests for uploadInfo() were added as part of the fix. (CPAN bug 11895, with contributions from drfrench and Mark Stosberg). Version 3.28 1. Applied patch from Allen Day that makes Cookie parsing RFC2109 compliant (attribute/values can be separated by commas as well as semicolons). 2. Applied patch from Stephan Struckmann that allows script_name() to be set correctly. 3. Fixed problem with url(-full) in which port number appears twice. Version 3.27 1. Applied patch from Steve Taylor that allows checkbox_groups to be disabled with a new -disabled=> option. Version 3.26 1. Fixed alternate stylesheet behavior so that it is insensitive to order of declarations. 2. Patch from John Binns to allow users to provide a callback to CGI::Carp. 3. Added "~" as an unreserved character in escape(). 4. Patch from Chris Fedde to prevent HTTP_HOST from inhibiting SERVER_PORT in url() generation. 5. Fixed outdated documentation (and behavior) of -language in start_html -script option. 6. Fixed bug in seconds calculation in CGI::Util::expire_calc. Version 3.25 1. Fixed the link to the Netscape frames page. 2. Added ability to specify an alternate stylesheet. 3. Add support for XForms POST submssion both as application/xml or as multipart/related Version 3.24 1. In startform(), if request_uri() returns undef, then falls back to self_url(). This should rarely happen except when run outside of the CGI environment. 2. image button alignment options were mistakenly being capitalized, causing xhtml validation to fail. Version 3.23 1. Typo in upload() persisted, now fixed for real. Thanks to Emanuele Zeppieri for correct patch and regression test. Version 3.22 1. Typo in upload() function broke uploads. Now fixed (CPAN bug 21126). Version 3.21 1. Don't try to read data at all when POST > $POST_MAX. 2. Fixed bug that caused $cgi->param('name',undef,'value') to unset param('name') entirely. 3. Fixed bug in which upload() sometimes returns empty. (CPAN bug #12694). 4. Incorporated patch from BURAK@cpan.org to support HTTPcookies (CPAN bug 21019). Version 3.20 1. Patch from David Wheeler for CGI::Cookie->bake(). Uses mod_perl headers_out->add() rather than headers_out->set(). 2. Fixed problem identified by Andrei Voronkov in which start_form() output was screwed up when initial argument begins with a dash and subsequent arguments do not. 3. Quashed uninitialized variable warnings coming from script_name(), url() and other functions that require access to the PATH_INFO environment variable. Version 3.19 1. Added patch from Stephen Frost that allows one to suppress use of the temp file that is created during uploads. 2. Fixed problem noted by Martin Foster in which regular expression meta-character terms in the path information were not quoted, causing URL parsing to fail on URLs that contained metacharacters (such as +). 3. More fixes to the url() method. 4. Removed "hack to fix broken PATH_INFO in MSII". Version 3.18 1. Doc typo fixes. 2. Patch from Steve Peters to default the document type to match the charset. 3. Fixed param() so that param(-name=>'foo',-values=>[]) sets the parameter to empty list. Version 3.17 Fri Feb 24 14:01:27 EST 2006 1. Added patch from Mike Hanafey which caused 0 arguments to CGI::Cookie->new() to be treated as empty. 2. Patch to CGI::Carp from Peter Whaite to fix the unfixable problem of CGI::Carp not behaving correctly in an eval() context. 3. CGI::Fast->new() calls CGI->_reset_globals to avoid contamination of one session with another's variables. 4. Fixed upload failure on files that contain semicolons in their names. Version 3.16 Wed Feb 8 13:29:11 EST 2006 1. header() -charset option now works even when the MIME type is not "text". 2. Fixed documentation for cookie() function and fastCGI. 3. Upload filehandles now only closed automatically on Windows systems. 4. Apache::Cookie compatibility fix from David Wheeler 5. CGI::Carp->fatalsToBrowser() does not work correctly with mod_perl 2. No workaround is known. 6. Fixed text status code associated with 302 redirects. Should be "Found" but was "Moved". 7. Fixed charset in start_html() and header() to be in synch. Version 3.15 Wed Dec 7 15:13:22 EST 2005 1. Remove extraneous "?" from self_url() when URI contains a ? but no query string. Version 3.14 Tue Dec 6 17:12:03 EST 2005 1. Fixed broken scrolling_list() select attribute. Version 3.13 1. Removed extraneous empty "?" from end of self_url(). Version 3.12 1. Fixed virtual_port so that it works properly with https protocol. 2. Fixed documentation for upload_hook(). 3. Added POSTDATA documentation. 4. Made upload_hook() work in function-oriented mode. 5. Fixed POST_MAX behavior so that it doesn't cause client to hang. 6. Disabled automatic tab indexes and added new -tabindex pragma to turn automatic indexes back on. 7. The url() and self_url() methods now work better in the context of Apache mod_rewrite. Be advised that path_info() may give you confusing results when mod_rewrite is active because Apache calculates the path info *after* rewriting. This is mostly worked around in url() and self_url(), but you may notice some anomalies. 8. Removed empty (and non-validating)
from code emitted by end_form(). 9. Fixed CGI::Carp to work correctly with Mod_perl 1.29 in an Apache 2 environment. 10. Setting $CGI::TMPDIRECTORY should now be effective. Version 3.11 1. Killed warning in CGI::Cookie about MOD_PERL_API_VERSION 2. Fixed append() so that it works in function mode. 3. Workaround for a bug that appears in Apache2 versions through 2.0.54 in which SCRIPT_NAME and PATH_INFO are incorrect if the additional path_info contains a double slash. This workaround will handle the common case of http://mysite.com/cgi-bin/log.cgi/http://www.some.other.site/args, but will not handle the uncommon case of a ScriptAlias directive that adds additional path information to the end of the translated URI. Version 3.10 1. Added Apache2::RequestIO, which is necessary for mp2 interoperability. Version 3.09 1. Fixed tabindex="0" when using CGI to create forms without a prior start_html 2. Removed warning about non-numeric MOD_PERL_API_VERSION. Version 3.08 1. update support for mod_perl 2.0. versions prior to mod_perl 1.999_22 (2.0.0-RC5) are no longer supported. Version 3.07 1. Fixed typo in mod_perl detection. Version 3.06 1. Fixed bare call to script() in start_html 2. Moved Fh::DESTROY out of autoloaded functions so as to avoid clobbering $@ when CGI functions are executed in an eval{} context. 3. mod_perl 2.0 version detection patch in CGI::Cookie provided by Allen Day. 4. autoEscape() flag is now respected when generating extra attributes. 5. Tests for *tag start/end generation from Shlomi Fish. 6. Support for can() method provided by Ron Savage. 7. Fix for lang='' when outputting XHTML. 8. Added support for chunked transfer encoding, as suggested by Hakan Ardo 9. Fixed clobbering of row and column headers in tableized radio and checkbox groups, as reported by Nicolas Thierry-Mieg. 10.