Commit | Line | Data |
cfbab81b |
1 | Version 3.49 |
2 | |
3 | [BUG FIXES] |
4 | 1. Fix a regression since 3.44 involving a case when the header includes "Content-Length: 0". |
5 | Thanks to Alex Vandiver (RT#51109) |
6 | 2. Suppress uninitialized warnings under -w. Thanks to burak. (RT#50301) |
7 | 3. url() now uses virtual_port() instead of server_port(). Thanks to MKANAT and Yanick Champoux. (RT#51562) |
8 | |
9 | [SECURITY] |
10 | 1. embedded newlines are now filtered out of header values in header(). |
11 | Thanks to Mark Stosberg and Yanick Champoux. |
12 | |
13 | [DOCUMENTATION] |
14 | 1. README was updated to reflect that CGI.pm was moved under ./lib. |
15 | Thanks to Alex Vandiver. |
16 | |
17 | [INTERNALS] |
18 | 1. More tests were added for autoescape, thanks to Bob Kuo. (RT#25485) |
19 | 2. Attempt to avoid test failures with t/fast, thanks to Steve Hay. (RT#49599) |
20 | |
deafae52 |
21 | Version 3.48 |
22 | |
23 | [BUG FIXES] |
24 | 1. <optgroup> default values are now properly escaped. |
25 | Thanks to #raleigh.pm and Mark Stosberg. (RT#49606) |
26 | 2. The change to exception handling in CGI::Carp introduced in 3.47 has been |
27 | reverted for now. It caused regressions reported in RT#49630. |
28 | Thanks to mkanat for the report. |
29 | |
30 | [DOCUMENTATION] |
31 | 1. Documentation for upload() has been overhauled, thanks to Mark Stosberg. |
32 | 2. Documentation for tmpFileName has been added. Thanks to Mark Stosberg and Nathaniel K. Smith. |
33 | 3. URLS were updated, thanks to Leon Brocard and Yanick Champoux. (RT#49770) |
34 | |
35 | [INTERNALS] |
36 | 1. More tests were added for autoescape, thanks to Bob Kuo. (RT#25485) |
37 | |
38 | Version 3.47 |
39 | Released September 9th, 2009. |
40 | No code changes. |
41 | |
42 | [INTERNALS] |
43 | Re-release of 3.46, which did not contain a proper MANIFEST |
44 | |
45 | Version 3.46 |
46 | [BUG FIXES] |
47 | 1. In CGI::Pretty, we no longer add line breaks after tags we claim not to format. Thanks to rrt, Bob Kuo and |
48 | and Mark Stosberg. (RT#42114). |
49 | 2. unescapeHTML() no longer falsely recognizes certain text as entities. Thanks to Pete Gamanche, Mark Stosberg |
50 | and Bob Kuo. (RT#39122) |
51 | 3. checkbox_group() now correctly includes a space before the "checked" attribute. |
52 | Thanks to Andrew Speer and Bob Kuo. (RT#36583) |
53 | 4. Fix case-sensitivity in http() and https() according to docs. Make https() |
54 | return list of keys in list context. Thanks to riQyRoe and Rhesa Rozendaal. (RT#12909) |
55 | 5. XHTML is now automatically disabled for HTML 4, as well as HTML 2 and HTML 3. Thanks to |
56 | Dan Harkless and Yanick Champoux. (RT#27907) |
57 | 6. Pre-compiling 'end_form' with ':form' switch now works. Thanks to ryochin and Yanick Champoux. (RT#41530) |
58 | 7. Empty name/values pairs are now properly saved and restored from filehandles. Thanks to rlucas and |
59 | Rhesa Rozendaal (RT#13158) |
60 | 8. Some differences between startform() and start_form() have been fixed. Thanks to Slaven Rezic and |
61 | Shawn Corey. (RT#22046) |
62 | 9. url_param() has been updated to be more consistent with the documentation and param(). |
63 | Thanks to Britton Kerin and Yanick Campoux. (RT#43587) |
64 | 10.hidden() now correctly supports multiple default values. |
65 | Thanks to david@dierauer.net and Russell Jenkins. (RT#20436) |
66 | 11.Calling CGI->new() no longer clobbers the value of $_ in the current scope. |
67 | Thanks to Alexey Tourbin, Bob Kuo and Mark Stosberg. (RT#25131) |
68 | 12.UTF-8 params should not get double-decoded now. |
69 | Thanks to Yves, Bodo, Burak Gürsoy, and Michael Schout. (RT#19913) |
70 | 13.We now give objects passed to CGI::Carp::die a chance to be stringified. |
71 | Thanks to teek and Yanick Champoux (RT#41530) |
72 | 14.Turning off autoEscape() now only affects the behavior of built-in HTML |
73 | generation fuctions. Explicit calls to escapeHTML() always escape HTML regardless |
74 | of the setting. Thanks to vindex, Bob Kuo and Mark Stosberg (RT#40748) |
75 | 15.In CGI::Fast, preferences set via pragmas are now preserved. |
76 | Thanks to heinst and Mark Stosberg (RT#32119) |
77 | |
78 | [DOCUMENTATION] |
79 | 1. remote_addr() is now documented. Thanks to Yanick Champoux. (RT#38884) |
80 | 2. In CGI::Pretty in the list of tags left unformatted was updated to match the code. Thanks to Mark Stosberg. (RT#42114) |
81 | 3. In CGI::Pretty, performance concerns are now documented. Thanks to Jochen, Rhesa Rozendaal and Mark Stosberg (RT#13223) |
82 | 4. A number of outdated Netscape references have been removed. Thanks to Mark Stosberg. |
83 | 5. The documentation has been purged of examples of using indirect object notation. Thanks to Mark Stosberg. |
84 | 6. Some POD formatting was fixed. Thanks to Dave Mitchell (RT#48935). |
85 | 7. Docs and examples were updated to highlight start_form instead of startform. |
86 | Thanks to Slaven Rezic. |
87 | 8. Note that CGI::Carp::carpout() doesn't work with in-memory filehandles. |
88 | Thanks to rhubbell and Mark Stosberg. |
89 | 9. The documentation for the -newstyle_urls is now less confusing. |
90 | Thanks to Ryan Tate and Mark Stosberg (RT#49454) |
91 | |
92 | [INTERNALS] |
93 | 1. Quit bundling an ancient copy of Test::More and and using a custom 'lib' path for the tests. Instead, Test::More |
94 | is now a dependency. Thanks to Ansgar and Mark Stosberg (RT#48811) |
95 | 2. Automated tests for hidden() have been added, thanks to Russel Jenkins and Mark Stosberg (RT#20436) |
96 | 3. t/util.t has been updated to use Test::More instead of a home-grown test function. Thanks to Bob Kuo. |
97 | |
68a4c8b9 |
98 | Version 3.45 |
99 | [BUG FIXES] |
100 | 1. Prevent warnings about "uninitialized values" for REQUEST_URI, HTTP_USER_AGENT and other environment variables. |
101 | Patches by Callum Gibson, heiko and Mark Stosberg. (RT#24684, RT#29065) |
deafae52 |
102 | 2. Avoid death in some cases when running under Taint mode on Windows. |
68a4c8b9 |
103 | Patch by Peter Hancock (RT#43796) |
104 | 3. Allow 0 to be used as a default value in popup_menu(). This was broken starting in 3.37. |
105 | Thanks to Haze, who was the first to report this and supply a patch, and pfschill, who pinpointed |
106 | when the bug was introduced. A regression test for this was also added. (RT#37908) |
deafae52 |
107 | 4. Allow "+" as a valid character in file names, which fixes temp file creation on OS X Leopard. |
108 | Thanks to Andy Armstrong, and alech for patches. (RT#30504) |
68a4c8b9 |
109 | 5. Set binmode() on the Netware platform, thanks to Guenter Knauf (RT#27455) |
deafae52 |
110 | 6. Don't allow a CGI::Carp error handler to die recursively. Print a warning and exit instead. |
68a4c8b9 |
111 | Thanks to Marc Chantreux. (RT#45956) |
112 | 7. The Dump() method now is fixed to escape HTML properly. Thanks to Mark Stosberg (RT#21341) |
113 | 8. Support for <optgroup> with scrolling_list() now works the same way as it does for popup_menu(). |
114 | Thanks to Stuart Johnston (RT#30097) |
115 | 9. CGI::Pretty now works properly when $" is set to ''. Thanks to Jim Keenan (RT#12401) |
116 | 10. Fix crash when used in combination with PerlEx::DBI. Thanks to Burak Gürsoy (RT#19902) |
117 | |
118 | [DOCUMENTATION] |
119 | 1. Several typos were fixed, Thanks to ambs. (RT#41105) |
120 | 2. A typo related to the nosticky pragma was fixed, thanks to Britton Kerin. (RT#43220) |
121 | 3. examples/nph-clock.cgi is now more portable, by calling localtime() rather than `/bin/date`, |
122 | thanks to Guenter Knauf. (RT#27456). |
123 | 4. In CGI::Carp, the SEE ALSO section was cleaned up, thanks to Slaven Rezic. (RT#32769) |
124 | 5. The docs for redirect() were updated to reflect that most headers are |
125 | ignored during redirection. Thanks to Mark Stosberg (RT#44911) |
126 | |
deafae52 |
127 | [INTERNALS] |
68a4c8b9 |
128 | 1. New t/unescapeHTML.t test script has been added. It includes a TODO test for a pre-existing |
129 | bug which could use a patch. Thanks to Pete Gamache and Mark Stosberg (RT#39122) |
130 | 2. New test scripts have been added for user_agent(), popup_menu() and query_string(), scrolling_list() and Dump() |
131 | Thanks to Mark Stosberg and Stuart Johnston. (RT#37908, RT#43006, RT#21341, RT#30097) |
deafae52 |
132 | 3. CGI::Carp and CGI::Util have been updated to have non-developer version numbers. |
68a4c8b9 |
133 | Thanks to Slaven Rezic. (RT#48425) |
deafae52 |
134 | 4. CGI::Switch and CGI::Apache now properly set their VERSION in their own name space. |
68a4c8b9 |
135 | Thanks to Alexey Tourbin (RT#11941,RT#11942) |
136 | |
137 | Version 3.44 |
138 | 1. Patch from Kurt Jaeger to allow HTTP PUT even if the content length is unknown. |
139 | 2. Patch from Pavel merdin to fix a problem for one of the FireFox addons. |
deafae52 |
140 | 3. Fixed issue in mod_perl & fastCGI environment of cookies returned from |
68a4c8b9 |
141 | CGI->cookie() leaking from one session to another. |
142 | |
0106d518 |
143 | Version 3.43 |
144 | 1. Documentation patch from MARKSTOS@cpan.org to replace all occurrences of |
145 | "new CGI" with CGI->new()" to reflect best perl practices. |
146 | 2. Patch from Stepan Kasal to fix utf-8 related problems in perl 5.10 |
f8a128a9 |
147 | |
148 | Version 3.42 |
149 | 1. Added patch from Renee Baecker that makes it possible to subclass |
150 | CGI::Pretty. |
151 | 2. Added patch from Nicholas Clark to allow ~ characters in temporary directories. |
152 | 3. Added patch from Renee Baecker that fixes the inappropriate escaping of fields |
153 | in multipart headers. |
154 | |
e1c70484 |
155 | Version 3.41 |
156 | 1. Fix url() returning incorrect path when query string contains escaped newline. |
157 | 2. Added additional windows temporary directories and environment variables, courtesy patch from Renee Baecker |
158 | 3. Added a handle() method to the lightweight upload |
159 | filehandles. This method returns a real IO::Handle object. |
160 | 4. Added patch from Tony Vanlingen to fix deep recursion warnings in CGI::Pretty. |
161 | |
162 | Version 3.40 |
163 | 1. Fixed CGI::Fast docs to eliminate references to a "special" |
164 | version of Perl. |
165 | 2. Makefile.PL now depends on FCGI so that CGI::Fast installs properly. |
166 | 3. Fix script_name() call from Stephane Chazelas. |
167 | |
168 | Version 3.39 |
169 | 1. Fixed regression in "exists" function when using tied interface to CGI via $q->Vars. |
170 | |
171 | Version 3.38 |
172 | 1. Fix annoying warning in http://rt.cpan.org/Ticket/Display.html?id=34551 |
173 | 2. Added nobr() function http://rt.cpan.org/Ticket/Display.html?id=35377 |
174 | 3. popup_menu() allows multiple items to be selected by default, satisfying |
175 | http://rt.cpan.org/Ticket/Display.html?id=35376 |
176 | 4. Patch from Renee Backer to avoid doubled <http-equiv> headers. |
177 | 5. Fixed documentation bug that describes what happens when a |
178 | parameter is empty (e.g. "?test1="). |
179 | 6. Fixed minor warning described at http://rt.cpan.org/Public/Bug/Display.html?id=36435 |
180 | 7. Fixed overlap of attribute and parameter space described in http://rt.perl.org/rt3//Ticket/Display.html?id=24294 |
181 | |
182 | Version 3.37 |
183 | 1. Fix pragmas so that they persist over modperl invocations (e.g. RT 34761) |
184 | 2. Fixed handling of chunked multipart uploads; thanks to Michael Bernhardt |
185 | who reported and fixed the problem. |
186 | |
187 | Version 3.36 |
188 | 1. Fix CGI::Cookie to support cookies that are separated by "," instead of ";". |
189 | |
86de2d7d |
190 | Version 3.35 |
191 | 1. Resync with bleadperl, primarily fixing a bug in parsing semicolons in uploaded filenames. |
192 | |
193 | Version 3.34 |
194 | 1. Handle Unicode %uXXXX escapes properly -- patch from DANKOGAI@cpan.org |
195 | 2. Fix url() method to not choke on path names that contain regex characters. |
196 | |
197 | Version 3.33 |
198 | 1. Remove uninit variable warning when calling url(-relative=>1) |
199 | 2. Fix uninit variable warnings for two lc calls |
200 | 3. Fixed failure of tempfile upload due to sprintf() taint failure in perl 5.10 |
201 | |
202 | Version 3.32 |
203 | 1. Patch from Miguel Santinho to prevent sending premature headers under mod_perl 2.0 |
204 | |
205 | Version 3.31 |
206 | 1. Patch from Xavier Robin so that CGI::Carp issues a 500 Status code rather than a 200 status code. |
207 | 2. Patch from Alexander Klink to select correct temporary directory in OSX Leopard so that upload works. |
208 | 3. Possibly fixed "wrapped pack" error on 5.10 and higher. |
209 | |
210 | Version 3.30 |
211 | 1. Patch from Mike Barry to handle POSTDATA in the same way as PUT. |
212 | 2. Patch from Rafael Garcia-Suarez to correctly reencode unicode values as byte values. |
213 | |
681699b9 |
214 | Version 3.29 |
215 | 1. The position of file handles is now reset to zero when CGI->new is called. |
216 | (Mark Stosberg) |
217 | 2. uploadInfo() now works across multiple object instances. Also, the first |
218 | tests for uploadInfo() were added as part of the fix. (CPAN bug 11895, with |
219 | contributions from drfrench and Mark Stosberg). |
220 | |
2c454cbd |
221 | Version 3.28 |
222 | 1. Applied patch from Allen Day that makes Cookie parsing RFC2109 compliant |
223 | (attribute/values can be separated by commas as well as semicolons). |
224 | 2. Applied patch from Stephan Struckmann that allows script_name() to be set correctly. |
225 | 3. Fixed problem with url(-full) in which port number appears twice. |
226 | |
8869a4b7 |
227 | Version 3.27 |
228 | 1. Applied patch from Steve Taylor that allows checkbox_groups to be |
229 | disabled with a new -disabled=> option. |
230 | |
231 | Version 3.26 |
232 | 1. Fixed alternate stylesheet behavior so that it is insensitive to order of declarations. |
233 | 2. Patch from John Binns to allow users to provide a callback to CGI::Carp. |
234 | 3. Added "~" as an unreserved character in escape(). |
235 | 4. Patch from Chris Fedde to prevent HTTP_HOST from inhibiting SERVER_PORT in url() generation. |
236 | 5. Fixed outdated documentation (and behavior) of -language in start_html -script option. |
237 | 6. Fixed bug in seconds calculation in CGI::Util::expire_calc. |
238 | |
0664a57d |
239 | Version 3.25 |
240 | 1. Fixed the link to the Netscape frames page. |
241 | 2. Added ability to specify an alternate stylesheet. |
8869a4b7 |
242 | 3. Add support for XForms POST submssion both as application/xml or as multipart/related |
0664a57d |
243 | |
244 | Version 3.24 |
245 | 1. In startform(), if request_uri() returns undef, then falls back |
246 | to self_url(). This should rarely happen except when run outside of |
247 | the CGI environment. |
248 | 2. image button alignment options were mistakenly being capitalized, causing xhtml validation to fail. |
249 | |
250 | Version 3.23 |
251 | 1. Typo in upload() persisted, now fixed for real. Thanks to |
252 | Emanuele Zeppieri for correct patch and regression test. |
253 | |
9f9736a1 |
254 | Version 3.22 |
255 | 1. Typo in upload() function broke uploads. Now fixed (CPAN bug 21126). |
256 | |
fc786e8b |
257 | Version 3.21 |
258 | 1. Don't try to read data at all when POST > $POST_MAX. |
259 | 2. Fixed bug that caused $cgi->param('name',undef,'value') to unset param('name') entirely. |
260 | 3. Fixed bug in which upload() sometimes returns empty. (CPAN bug #12694). |
261 | 4. Incorporated patch from BURAK@cpan.org to support HTTPcookies (CPAN bug 21019). |
262 | |
adb86593 |
263 | Version 3.20 |
264 | 1. Patch from David Wheeler for CGI::Cookie->bake(). Uses mod_perl headers_out->add() |
265 | rather than headers_out->set(). |
266 | 2. Fixed problem identified by Andrei Voronkov in which start_form() output was screwed |
267 | up when initial argument begins with a dash and subsequent arguments do not. |
268 | 3. Quashed uninitialized variable warnings coming from script_name(), url() and other |
269 | functions that require access to the PATH_INFO environment variable. |
270 | |
cb3b230c |
271 | Version 3.19 |
272 | 1. Added patch from Stephen Frost that allows one to suppress use of the temp file that is |
273 | created during uploads. |
274 | 2. Fixed problem noted by Martin Foster in which regular expression meta-character terms |
275 | in the path information were not quoted, causing URL parsing |
276 | to fail on URLs that contained metacharacters (such as +). |
277 | 3. More fixes to the url() method. |
278 | 4. Removed "hack to fix broken PATH_INFO in MSII". |
279 | |
280 | Version 3.18 |
281 | 1. Doc typo fixes. |
282 | 2. Patch from Steve Peters to default the document type to match the charset. |
283 | 3. Fixed param() so that param(-name=>'foo',-values=>[]) sets the parameter to empty list. |
284 | |
681699b9 |
285 | Version 3.17 Fri Feb 24 14:01:27 EST 2006 |
286 | 1. Added patch from Mike Hanafey which caused 0 arguments to CGI::Cookie->new() to |
287 | be treated as empty. |
288 | 2. Patch to CGI::Carp from Peter Whaite to fix the unfixable problem of CGI::Carp |
289 | not behaving correctly in an eval() context. |
290 | 3. CGI::Fast->new() calls CGI->_reset_globals to avoid contamination of one session |
291 | with another's variables. |
292 | 4. Fixed upload failure on files that contain semicolons in their names. |
293 | |
55b5d700 |
294 | Version 3.16 Wed Feb 8 13:29:11 EST 2006 |
295 | 1. header() -charset option now works even when the MIME type is not "text". |
296 | 2. Fixed documentation for cookie() function and fastCGI. |
297 | 3. Upload filehandles now only closed automatically on Windows systems. |
298 | 4. Apache::Cookie compatibility fix from David Wheeler |
299 | 5. CGI::Carp->fatalsToBrowser() does not work correctly with |
300 | mod_perl 2. No workaround is known. |
301 | 6. Fixed text status code associated with 302 redirects. Should be "Found" |
302 | but was "Moved". |
303 | 7. Fixed charset in start_html() and header() to be in synch. |
304 | |
edc47407 |
305 | Version 3.15 Wed Dec 7 15:13:22 EST 2005 |
306 | 1. Remove extraneous "?" from self_url() when URI contains a ? but no query string. |
307 | |
1f426928 |
308 | Version 3.14 Tue Dec 6 17:12:03 EST 2005 |
309 | 1. Fixed broken scrolling_list() select attribute. |
deafae52 |
310 | |
0a9bdad4 |
311 | Version 3.13 |
312 | 1. Removed extraneous empty "?" from end of self_url(). |
313 | |
314 | Version 3.12 |
315 | 1. Fixed virtual_port so that it works properly with https protocol. |
316 | 2. Fixed documentation for upload_hook(). |
317 | 3. Added POSTDATA documentation. |
318 | 4. Made upload_hook() work in function-oriented mode. |
319 | 5. Fixed POST_MAX behavior so that it doesn't cause client to hang. |
320 | 6. Disabled automatic tab indexes and added new -tabindex pragma to |
321 | turn automatic indexes back on. |
322 | 7. The url() and self_url() methods now work better in the context of Apache |
323 | mod_rewrite. Be advised that path_info() may give you confusing results |
324 | when mod_rewrite is active because Apache calculates the path info *after* |
325 | rewriting. This is mostly worked around in url() and self_url(), but you |
326 | may notice some anomalies. |
327 | 8. Removed empty (and non-validating) <div> from code emitted by end_form(). |
328 | 9. Fixed CGI::Carp to work correctly with Mod_perl 1.29 in an Apache 2 environment. |
329 | 10. Setting $CGI::TMPDIRECTORY should now be effective. |
330 | |
7dc108d1 |
331 | Version 3.11 |
332 | 1. Killed warning in CGI::Cookie about MOD_PERL_API_VERSION |
333 | 2. Fixed append() so that it works in function mode. |
deafae52 |
334 | 3. Workaround for a bug that appears in Apache2 versions through 2.0.54 |
7dc108d1 |
335 | in which SCRIPT_NAME and PATH_INFO are incorrect if the additional path_info |
336 | contains a double slash. This workaround will handle the common case of |
337 | http://mysite.com/cgi-bin/log.cgi/http://www.some.other.site/args, but will |
338 | not handle the uncommon case of a ScriptAlias directive that adds additional |
339 | path information to the end of the translated URI. |
340 | |
70194bd6 |
341 | Version 3.10 |
342 | 1. Added Apache2::RequestIO, which is necessary for mp2 interoperability. |
343 | |
344 | Version 3.09 |
345 | 1. Fixed tabindex="0" when using CGI to create forms without a prior start_html |
346 | 2. Removed warning about non-numeric MOD_PERL_API_VERSION. |
347 | |
741ff09d |
348 | Version 3.08 |
349 | 1. update support for mod_perl 2.0. versions prior to |
350 | mod_perl 1.999_22 (2.0.0-RC5) are no longer supported. |
351 | |
976c4ade |
352 | Version 3.07 |
353 | 1. Fixed typo in mod_perl detection. |
354 | |
355 | Version 3.06 |
356 | |
357 | 1. Fixed bare call to script() in start_html |
358 | 2. Moved Fh::DESTROY out of autoloaded functions so as to avoid |
359 | clobbering $@ when CGI functions are executed in an eval{} |
360 | context. |
361 | 3. mod_perl 2.0 version detection patch in CGI::Cookie provided by |
362 | Allen Day. |
363 | 4. autoEscape() flag is now respected when generating extra |
364 | attributes. |
365 | 5. Tests for *tag start/end generation from Shlomi Fish. |
366 | 6. Support for can() method provided by Ron Savage. |
367 | 7. Fix for lang='' when outputting XHTML. |
deafae52 |
368 | 8. Added support for chunked transfer encoding, as suggested by |
976c4ade |
369 | Hakan Ardo |
370 | 9. Fixed clobbering of row and column headers in tableized radio |
371 | and checkbox groups, as reported by Nicolas Thierry-Mieg. |
372 | 10. <Label> tags are now associated with form elements, as suggested |
373 | by accessibility guidelines. |
374 | 11. The <?xml> directive produced by start_html is now turned off by |
375 | default and the charset is specified in a <meta> directive. Apparently |
376 | IE6 (and maybe some versions of Opera) were getting confused by this. |
377 | 12. Support for tab indexes. |
378 | 13. Retired the HTML docs. The POD docs are now primary documentation. |
379 | 14. CGI::Carp now correctly detects and handles Apache::Dispatch. |
380 | 15. CGI::Util::utf8_chr now correctly sets the UTF8 flag on 5.006 or |
381 | higher perls (fix courtesy Slaven Rezic). |
382 | |
383 | |
384 | Version 3.05 |
385 | |
386 | 1. Fixed uninitialized variable warning on start_form() when running |
387 | from command line. |
388 | 2. Fixed CGI::_set_attributes so that attributes with a - are handled |
389 | correctly. |
390 | 3. Fixed CGI::Carp::die() so as to avoid problems from _longmess() |
391 | clobbering @_. |
392 | 4. If HTTP_X_FORWARDED_HOST is defined (i.e. running under a proxy), |
393 | the various functions that return HOST will use that instead. |
394 | 5. Fix for undefined utf8() call in CGI::Util. |
395 | 6. Changed the call to warningsToBrowser() in |
396 | CGI::Carp::fatalsToBrowser to call only after HTTP header is sent |
397 | (thanks to Didier Lebrun for noticing). |
398 | 7. Patches from Dan Harkless to make CGI.pm validatable against HTML |
399 | 3.2. |
400 | 8. Fixed an extraneous "foo=bar" appearing when extra style |
401 | parameters passed to start_html; |
402 | 9. Fixed cross-site scripting bug in startform() pointed out by Dan |
403 | Harkless. |
404 | 10. Fixed documentation to discuss list context behavior of |
405 | form-element generators explicitly. |
406 | 11. Fixed incorrect results from end_form() when called in OO manner. |
407 | 12. Fixed query string stripping in order to handle URLs containing |
408 | escaped newlines. |
409 | 13. During server push, set NPH to 0 rather than 1. This is supposed |
410 | to fix problems with Apache. |
411 | 14. Fixed incorrect processing of multipart form fields that contain |
412 | embedded quotes. There's still the issue of how to handle ones |
413 | that contain embedded semicolons, but no one has complained (yet). |
414 | 15. Fixed documentation bug in -style argument to start_html() |
415 | 16. Added -status argument to redirect(). |
416 | |
417 | Version 3.04 |
418 | |
419 | 1. Fixed the problem with mod_perl crashing when "defaults" button |
420 | pressed. |
421 | |
422 | Version 3.03 |
423 | |
424 | 1. Fix upload hook functionality |
425 | 2. Workaround for CGI->unescape_html() |
426 | 3. Bumped version numbers in CGI::Fast and CGI::Util for 5.8.3-tobe |
427 | |
428 | Version 3.02 |
429 | |
430 | 1. Bring in Apache::Response just in case. |
431 | 2. File upload on EBCDIC systems now works. |
432 | |
433 | Version 3.01 |
434 | |
435 | 1. No fix yet for upload failures when running on EBCDIC server. |
436 | 2. Fixed uninitialized glob warnings that appeared when file |
437 | uploading under perl 5.8.2. |
438 | 3. Added patch from Schlomi Fish to allow debugging of PATH_INFO from |
439 | command line. |
440 | 4. Added patch from Steve Hay to correctly unlink tmp files under |
441 | mod_perl/windows |
442 | 5. Added upload_hook functionality from Jamie LeTaul |
443 | 6. Workarounds for mod_perl 2 IO issues. Check that file upload and |
444 | state saving still working. |
445 | 7. Added code for underreads. |
446 | 8. Fixed misleading description of redirect() and relative URLs in |
447 | the POD docs. |
448 | 9. Workaround for weird interaction of CGI::Carp with Safe module |
449 | reported by William McKee. |
450 | 10. Added patches from Ilmari Karonen to improve behavior of |
451 | CGI::Carp. |
452 | 11. Fixed documentation error in -style argument. |
453 | 12. Added virtual_port() method for finding out what port server is |
454 | listening on in a virtual-host aware fashion. |
455 | |
456 | Version 3.00 |
457 | |
458 | 1. Patch from Randal Schwartz to fix bug introduced by cross-site |
459 | scripting vulnerability "fix." |
460 | 2. Patch from JFreeman to replace UTF-8 escape constant of 0xfe with |
461 | 0xfc. Hope this is right! |
462 | |
463 | Version 2.99 |
464 | |
465 | 1. Patch from Steve Hay to fix extra Content-type: appearing on |
466 | browser screen when FatalsToBrowser invoked. |
467 | 2. Patch from Ewann Corvellec to fix cross-site scripting |
468 | vulnerability. |
469 | 3. Fixed tmpdir routine for file uploading to solve problem that |
470 | occurs under mod_perl when tmpdir is writable at startup time, but |
471 | not at session time. |
472 | |
473 | Version 2.98 |
474 | |
475 | 1. Fixed crash in Dump() function. |
476 | |
477 | Version 2.97 |
478 | |
479 | 1. Sigh. Uploaded wrong 2.96 to CPAN. |
480 | |
481 | Version 2.96 |
482 | |
483 | 1. More bugfixes to the -style argument. |
484 | |
485 | Version 2.95 |
486 | |
487 | 1. Fixed bugs in start_html(-style=>...) support introduced in 2.94. |
488 | |
489 | Version 2.94 |
490 | |
491 | 1. Removed warning from reset() method. |
492 | 2. Moved |
493 | |
494 | and tags into the :html3 group. Hope this removes undefined CGI::Area |
495 | errors. |
496 | |
497 | Changed CGI::Carp to play with mod_perl2 and to (hopefully) restore |
498 | reporting of compile-time errors. |
499 | |
500 | Fixed potential deadlock between web server and CGI.pm when aborting |
501 | a read due to POST_MAX (reported by Antti Lankila). |
502 | |
503 | Fixed issue with tag-generating function not incorporating content |
504 | when first variable undef. |
505 | |
506 | Fixed cross-site scripting bug reported by obscure. |
507 | |
508 | Fixed Dump() function to return correctly formed XHTML - bug |
509 | reported by Ralph Siemsen. |
510 | |
511 | Version 2.93 |
512 | |
513 | 1. Fixed embarassing bug in mp1 support. |
514 | |
515 | Version 2.92 |
516 | |
517 | 1. Fix to be P3P compliant submitted from MPREWITT. |
518 | 2. Added CGI->r() API for mod_perl1/mod_perl2. |
519 | 3. Fixed bug in redirect() that was corrupting cookies. |
520 | 4. Minor fix to behavior of reset() button to make it consistent with |
521 | submit() button (first time this has been changed in 9 years). |
522 | 5. Patch from Dan Kogai to handle UTF-8 correctly in 5.8 and higher. |
523 | 6. Patch from Steve Hay to make CGI::Carp's error messages appear on |
524 | MSIE browsers. |
525 | 7. Added Yair Lenga's patch for non-urlencoded postings. |
526 | 8. Added Stas Bekman's patches for mod_perl 2 compatibility. |
527 | 9. Fixed uninitialized escape behavior submitted by William Campbell. |
528 | 10. Fixed tied behavior so that you can pass arguments to tie() |
529 | 11. Fixed incorrect generation of URLs when the path_info contains + |
530 | and other odd characters. |
531 | 12. Fixed redirect(-cookies=>$cookie) problem. |
532 | 13. Fixed tag generation bug that affects -javascript passed to |
533 | start_html(). |
534 | |
535 | Version 2.91 |
536 | |
537 | 1. Attribute generation now correctly respects the value of |
538 | autoEscape(). |
539 | 2. Fixed endofrm() syntax error introduced by Ben Edgington's patch. |
540 | |
541 | Version 2.90 |
542 | |
543 | 1. Fixed bug in redirect header handling. |
544 | 2. Added P3P option to header(). |
545 | 3. Patches from Alexey Mahotkin to make CGI::Carp work correctly with |
546 | object-oriented exceptions. |
547 | 4. Removed inaccurate description of how to set multiple cookies from |
548 | CGI::Cookie pod file. |
549 | 5. Patch from Kevin Mahony to prevent running out of filehandles when |
550 | uploading lots of files. |
551 | 6. Documentation enhancement from Mark Fisher to note that the |
552 | import_names() method transforms the parameter names into valid |
553 | Perl names. |
554 | 7. Patch from Dan Harkless to suppress lang attribute in <html> tag |
555 | if specified as a null string. |
556 | 8. Patch from Ben Edgington to fix broken XHTML-transitional 1.0 |
557 | validation on endform(). |
558 | 9. Custom html header fix from Steffen Beyer (first letter correctly |
559 | upcased now) |
560 | 10. Added a -verbatim option to stylesheet generation from Michael |
561 | Dickson |
562 | 11. Faster delete() method from Neelam Gupta |
563 | 12. Fixed broken Cygwin support. |
564 | 13. Added empty charset support from Bradley Baetz |
565 | 14. Patches from Doug Perham and Kevin Mahoney to fix file upload |
566 | failures when uploaded file is a multiple of 4096. |
567 | |
568 | Version 2.89 |
569 | |
570 | 1. Fixed behavior of ACTION tag when POSTING to a URL that has a |
571 | query string. |
572 | 2. Added Patch from Michael Rommel to handle multipart/mixed uploads |
573 | from Opera |
574 | |
575 | Version 2.88 |
576 | |
577 | 1. Fixed problem with uploads being refused under Perl 5.8 when under |
578 | Taint mode. |
579 | 2. Fixed uninitialized variable warnings under Perl 5.8. |
580 | 3. Fixed CGI::Pretty regression test failures. |
581 | |
582 | Version 2.87 |
583 | |
584 | 1. Security hole patched: when processing multipart/form-data |
585 | postings, most arguments were being untainted silently. Returned |
586 | arguments are now tainted correctly. This may cause some scripts |
587 | to fail that used to work (thanks to Nick Cleaton for pointing |
588 | this out and persisting until it was fixed). |
589 | 2. Update for mod_perl 2.0. |
590 | 3. Pragmas such as -no_xhtml are now respected in mod_perl |
591 | environment. |
592 | |
593 | Version 2.86 |
594 | |
595 | 1. Fixes for broken CGI::Cookie expiration dates introduced in 2.84. |
596 | |
597 | Version 2.85 |
598 | |
599 | 1. Fix for broken autoEscape function introduced in 2.84. |
600 | |
601 | Version 2.84 |
602 | |
603 | 1. Fix for failed file uploads on Cygwin platforms. |
604 | 2. HTML escaping code now replaced 0x8b and 0x9b with unicode |
605 | references < and *#8250; |
606 | |
607 | Version 2.83 |
608 | |
609 | 1. Fixed autoEscape() documentation inconsistencies. |
610 | 2. Patch from Ville Skyttä to fix a number of XHTML inconsistencies. |
611 | 3. Added Max-Age to list of CGI::Cookie headers. |
612 | |
613 | Version 2.82 |
614 | |
615 | 1. Patch from Rudolf Troller to add attribute setting and option |
616 | groups to form fields. |
617 | 2. Patch from Simon Perreault for silent crashes when using CGI::Carp |
618 | under mod_perl. |
619 | 3. Patch from Scott Gifford allows you to set the program name for |
620 | CGI::Carp. |
621 | |
622 | Version 2.81 |
623 | |
624 | 1. Removed extraneous slash from end of stylesheet tags generated by |
625 | start_html in non-XHTML mode. |
626 | 2. Changed behavior of CGI::Carp with respect to eval{} contexts so |
627 | that output behaves properly in mod_perl environments. |
628 | 3. Fixed default DTD so that it validates with W3C validator. |
629 | |
630 | Version 2.80 |
631 | |
632 | 1. Fixed broken messages in CGI::Carp. |
633 | 2. Changed checked="1" to checked="checked" for real XHTML |
634 | compatibility. |
635 | 3. Resurrected REQUEST_URI code so that url() works correctly with |
636 | multiviews. |
637 | |
638 | Version 2.79 |
639 | |
640 | 1. Changes to CGI::Carp to avoid "subroutine redefined" error |
641 | messages. |
642 | 2. Default DTD is now XHTML 1.0 Transitional |
643 | 3. Patches to support all HTML4 tags. |
644 | |
645 | Version 2.78 |
646 | |
647 | 1. Added ability to change encoding in <?xml> assertion. |
648 | 2. Fixed the old escapeHTML('CGI') ne "CGI" bug |
649 | 3. In accordance with XHTML requirements, there are no longer any |
650 | minimized attributes, such as "checked". |
651 | 4. Patched bug which caused file uploads of exactly 4096 bytes to be |
652 | truncated to 4094 (thanks to Kevin Mahony) |
653 | 5. New tests and fixes to CGI::Pretty (thanks to Michael Schwern). |
654 | |
655 | Version 2.77 |
656 | |
657 | 1. No new features, but released in order to fix an apparent CPAN |
658 | bug. |
659 | |
660 | Version 2.76 |
661 | |
662 | 1. New esc.t regression test for EBCDIC translations courtesy Peter |
663 | Prymmer. |
664 | 2. Patches from James Jurach to make compatible with FCGI-ProcManager |
665 | 3. Additional fields passed to header() (like -Content_disposition) |
666 | now honor initial capitalization. |
667 | 4. Patch from Andrew McNaughton to handle utf-8 escapes (%uXXXX |
668 | codes) in URLs. |
669 | |
670 | Version 2.752 |
671 | |
672 | 1. Syntax error in the autoloaded Fh::new() subroutine. |
673 | 2. Better error reporting in autoloaded functions. |
674 | |
675 | Version 2.751 |
676 | |
677 | 1. Tiny tweak to filename regular expression function on line 3355. |
678 | |
679 | Version 2.75 |
680 | |
681 | 1. Fixed bug in server push boundary strings (CGI.pm and CGI::Push). |
682 | 2. Fixed bug that occurs when uploading files with funny characters |
683 | in the name |
684 | 3. Fixed non-XHTML-compliant attributes produced by textfield() |
685 | 4. Added EPOC support, courtesy Olaf Flebbe |
686 | 5. Fixed minor XHTML bugs. |
687 | 6. Made escape() and unescape() symmetric with respect to EBCDIC, |
688 | courtesy Roca, Ignasi <ignasi.roca@fujitsu.siemens.es> |
689 | 7. Removed uninitialized variable warning from CGI::Cookie, provided |
690 | by Atipat Rojnuckarin <rojnuca@yahoo.com> |
691 | 8. Fixed bug in CGI::Pretty that causes it to print partial end tags |
692 | when the $INDENT global is changed. |
693 | 9. Single quotes are changed to character entity ' for compatibility |
694 | with URLs. |
695 | |
696 | Version 2.74 |
697 | |
698 | September 13, 2000 |
699 | 1. Quashed one-character bug that caused CGI.pm to fail on file |
700 | uploads. |
701 | |
702 | Version 2.73 |
703 | |
704 | September 12, 2000 |
705 | 1. Added -base to the list of arguments accepted by url(). |
706 | 2. Fixes to XHTML support. |
707 | 3. POST parameters no longer show up in the Location box. |
708 | |
709 | Version 2.72 |
710 | |
711 | August 19, 2000 |
712 | 1. Fixed the defaults button so that it works again |
713 | 2. Charset is now correctly saved and restored when saving to files |
714 | 3. url() now works correctly when given scripts with %20 and other |
715 | escapes in the additional path info. This undoes a patch |
716 | introduced in version 2.47 that I no longer understand the |
717 | rationale for. |
718 | |
719 | Version 2.71 |
720 | |
721 | August 13, 2000 |
722 | 1. Newlines in the value attributes of hidden fields and other form |
723 | elements are now escaped when using ISO-Latin. |
724 | 2. Inline script and style sections are now protected as CDATA |
725 | sections when XHTML mode is on (the default). |
726 | |
727 | Version 2.70 |
728 | |
729 | August 4, 2000 |
730 | 1. Fixed bug in scrolling_list() which omitted a space in front of |
731 | the "multiple" attribute. |
732 | 2. Squashed the "useless use of string in void context" message from |
733 | redirects. |
734 | |
735 | Version 2.69 |
736 | |
737 | 1. startform() now creates default ACTION for POSTs as well as GETs. |
738 | This may break some browsers, but it no longer violates the HTML |
739 | spec. |
740 | 2. CGI.pm now emits XHTML by default. Disable with -no_xhtml. |
741 | 3. We no longer interpret &#ddd sequences in non-latin character |
742 | sets. |
743 | |
744 | Version 2.68 |
745 | |
746 | 1. No longer attempts to escape characters when dealing with non |
747 | ISO-8861 character sets. |
748 | 2. checkbox() function now defaults to using -value as its label, |
749 | rather than -name. The current behavior is what has been |
750 | documented from the beginning. |
751 | 3. -style accepts array reference to incorporate multiple stylesheets |
752 | into document. |
753 | |
754 | 1. Fixed two bugs that caused the -compile pragma to fail with a |
755 | syntax error. |
756 | |
757 | Version 2.67 |
758 | |
759 | 1. Added XHTML support (incomplete; tags need to be lowercased). |
760 | 2. Fixed CGI/Carp when running under mod_perl. Probably broke in |
761 | other contexts. |
762 | 3. Fixed problems when passing multiple cookies. |
763 | 4. Suppress warnings from _tableize() that were appearing when using |
764 | -w switch with radio_group() and checkbox_group(). |
765 | 5. Support for the header() -attachment argument, which can give |
766 | pages a default file name when saving to disk. |
767 | |
768 | Version 2.66 |
769 | |
770 | 1. 2.65 changes in make_attributes() broke HTTP header functions |
771 | (including redirect), so made it context sensitive. |
772 | |
773 | Version 2.65 |
774 | |
775 | 1. Fixed regression tests to skip tests that require implicit fork on |
776 | machines without fork(). |
777 | 2. Changed make_attributes() to automatically escape any HTML |
778 | reserved characters. |
779 | 3. Minor documentation fix in javascript example. |
780 | |
781 | Version 2.64 |
782 | |
783 | 1. Changes introduced in 2.63 broke param() when retrieving parameter |
784 | lists containing only a single argument. This is now fixed. |
785 | 2. self_url() now defaults to returning parameters delimited with |
786 | semicolon. Use the pragma -oldstyle_urls to get the old "&" |
787 | delimiter. |
788 | |
789 | Version 2.63 |
790 | |
791 | 1. Fixed CGI::Push to pull out parameters correctly. |
792 | 2. Fixed redirect() so that it works with default character set |
793 | 3. Changed param() so as to returned empty string '' when referring |
794 | to variables passed in query strings like 'name1=&name2' |
795 | |
796 | Version 2.62 |
797 | |
798 | 1. Fixed broken ReadParse() function, and added regression tests |
799 | 2. Fixed broken CGI::Pretty, and added regression tests |
800 | |
801 | Version 2.61 |
802 | |
803 | 1. Moved more functions from CGI.pm proper into CGI/Util.pm. |
804 | CGI/Cookie should now be standalone. |
805 | 2. Disabled per-user temporary directories, which were causing grief. |
806 | |
807 | Version 2.60 |
808 | |
809 | 1. Fixed junk appearing in autogenerated HTML functions when using |
810 | object-oriented mode. |
811 | |
812 | Version 2.59 |
813 | |
814 | 1. autoescape functionality breaks too much existing code, removed |
815 | it. |
816 | 2. use escapeHTML() manually |
817 | |
818 | Version 2.58 |
819 | |
820 | This is the release version of 2.57. |
821 | |
822 | Version 2.57 |
823 | |
824 | 1. Added -debug pragma and turned off auto reading of STDIN. |
825 | 2. Default DTD updated to HTML 4.01 transitional. |
826 | 3. Added charset() method and the -charset argument to header(). |
827 | 4. Fixed behavior of escapeHTML() to respect charset() and to escape |
828 | nasty Windows characters (thanks to Tom Christiansen). |
829 | 5. Handle REDIRECT_QUERY_STRING correctly. |
830 | 6. Removed use_named_parameters() because of dependency problems and |
831 | general lameness. |
832 | 7. Fixed problems with bad HREF links generated by url(-relative=>1) |
833 | when the url is like /people/. |
834 | 8. Silenced a warning on upload (patch provided by Jonas Liljegren) |
835 | 9. Fixed race condition in CGI::Carp when errors occur during parsing |
836 | (patch provided by Maurice Aubrey). |
837 | 10. Fixed failure of url(-path_info=>1) when path contains % signs. |
838 | 11. Fixed warning from CGI::Cookie when receiving foreign cookies that |
839 | don't use name=value format. |
840 | 12. Fixed incompatibilities with file uploading on VMS systems. |
841 | |
842 | Version 2.56 |
843 | |
844 | 1. Fixed bugs in file upload introduced in version 2.55 |
845 | 2. Fixed long-standing bug that prevented two files with identical |
846 | names from being uploaded. |
847 | |
848 | Version 2.55 |
849 | |
850 | 1. Fixed cookie regression test so as not to produce an error. |
851 | 2. Fixed path_info() and self_url() to work correctly together when |
852 | path_info() modified. |
853 | 3. Removed manify warnings from CGI::{Switch,Apache}. |
854 | |
855 | Version 2.54 |
856 | |
857 | 1. This will be the last release of the monolithic CGI.pm module. |
858 | Later versions will be modularized and optimized. |
859 | 2. DOMAIN tag no longer added to cookies by default. This will break |
860 | some versions of Internet Explorer, but will avoid breaking |
861 | networks which use host tables without fully qualified domain |
862 | names. For compatibility, please always add the -domain tag when |
863 | creating cookies. |
864 | 3. Fixed escape() method so that +'s are treated correctly. |
865 | 4. Updated CGI::Pretty module. |
866 | |
867 | Version 2.53 |
868 | |
869 | 1. Forgot to upgrade regression tests before releasing 2.52. NOTHING |
870 | ELSE HAS CHANGED IN LIBRARY |
871 | |
872 | Version 2.52 |
873 | |
874 | 1. Spurious newline in checkbox() routine removed. (courtesy John |
875 | Essen) |
876 | 2. TEXTAREA linebreaks now respected in dump() routine. (courtesy |
877 | John Essen) |
878 | 3. Patches for DOS ports (courtesy Robert Davies) |
879 | 4. Patches for VMS |
880 | 5. More fixes for cookie problems |
881 | 6. Fix CGI::Carp so that it doesn't affect eval{} blocks (courtesy |
882 | Byron Brummer) |
883 | |
884 | Version 2.51 |
885 | |
886 | 1. Fixed problems with cookies not being remembered when sent to IE |
887 | 5.0 (and Netscape 5.0 too?) |
888 | 2. Numerous HTML compliance problems in cgi_docs.html; fixed thanks |
889 | to Michael Leahy |
890 | |
891 | Version 2.50 |
892 | |
893 | 1. Added a new Vars() method to retrieve all parameters as a tied |
894 | hash. |
895 | 2. Untainted tainted tempfile name so that script doesn't fail on |
896 | terminal unlink. |
897 | 3. Made picking of upload tempfile name more intelligent so that |
898 | doesn't fail in case of name collision. |
899 | 4. Fixed handling of expire times when passed an absolute timestamp. |
900 | 5. Changed dump() to Dump() to avoid name clashes. |
901 | |
902 | Version 2.49 |
903 | |
904 | 1. Fixes for FastCGI (globals not getting reset) |
905 | 2. Fixed url() to correctly handle query string and path under |
906 | MOD_PERL |
907 | |
908 | Version 2.48 |
909 | |
910 | 1. Reverted detection of MOD_PERL to avoid breaking PerlEX. |
911 | |
912 | Version 2.47 |
913 | |
914 | 1. Patch to fix file upload bug appearing in IE 3.01 for |
915 | Macintosh/PowerPC. |
916 | 2. Replaced use of $ENV{SCRIPT_NAME} with $ENV{REQUEST_URI} when |
917 | running under Apache, to fix self-referencing URIs. |
918 | 3. Fixed bug in escapeHTML() which caused certain constructs, such as |
919 | CGI->image_button(), to fail. |
920 | 4. Fixed bug which caused strong('CGI') to fail. Be careful to use |
921 | CGI::strong('CGI') and not CGI->strong('CGI'). The latter will |
922 | produce confusing results. |
923 | 5. Added upload() function, as a preferred replacement for the |
924 | "filehandle as string" feature. |
925 | 6. Added cgi_error() function. |
926 | 7. Rewrote file upload handling to return undef rather than dieing |
927 | when an error is encountered. Be sure to call cgi_error() to find |
928 | out what went wrong. |
929 | |
930 | Version 2.46 |
931 | |
932 | 1. Fix for failure of the "include" tests under mod_perl |
933 | 2. Added end_multipart_form to prevent failures during qw(-compile |
934 | :all) |
935 | |
936 | Version 2.45 |
937 | |
938 | 1. Multiple small documentation fixes |
939 | 2. CGI::Pretty didn't get into 2.44. Fixed now. |
940 | |
941 | Version 2.44 |
942 | |
943 | 1. Fixed file descriptor leak in upload function. |
944 | 2. Fixed bug in header() that prevented fields from containing double |
945 | quotes. |
946 | 3. Added Brian Paulsen's CGI::Pretty package for pretty-printing |
947 | output HTML. |
948 | 4. Removed CGI::Apache and CGI::Switch from the distribution. |
949 | 5. Generated start_* shortcuts so that start_table(), end_table(), |
950 | start_ol(), end_ol(), and so forth now work (see the docs on how |
951 | to enable this feature). |
952 | 6. Changed accept() to Accept(), sub() to Sub(). There's still a |
953 | conflict with reset(), but this will break too many existing |
954 | scripts! |
955 | |
956 | Version 2.43 |
957 | |
958 | 1. Fixed problem with "use strict" and file uploads (thanks to Peter |
959 | Haworth) |
960 | 2. Fixed problem with not MSIE 3.01 for the power_mac not doing file |
961 | uploads right. |
962 | 3. Fixed problem with file upload on IIS 4.0 when authorization in |
963 | use. |
964 | 4. -content_type and '-content-type' can now be provided to header() |
965 | as synonyms for -type. |
966 | 5. CGI::Carp now escapes the ampersand BEFORE escaping the > and < |
967 | signs. |
968 | 6. Fixed "not an array reference" error when passing a hash reference |
969 | to radio_group(). |
970 | 7. Fixed non-removal of uploaded TMP files on NT platforms which |
971 | occurs when server runs on non-C drive (thanks to Steve Kilbane |
972 | for finding this one). |
973 | |
974 | Version 2.42 |
975 | |
976 | 1. Too many screams of anguish at changed behavior of url(). Is now |
977 | back to its old behavior by default, with options to generate all |
978 | the variants. |
979 | 2. Added regression tests. "make test" now works. |
980 | 3. Documentation fixes. |
981 | 4. Fixes for Macintosh uploads, but uploads STILL do not work pending |
982 | changes to MacPerl. |
983 | |
984 | Version 2.41 |
985 | |
986 | 1. url() method now includes the path info. Use script_name() to get |
987 | it without path info(). |
988 | 2. Changed handling of empty attributes in HTML tag generation. Be |
989 | warned! Use table({-border=>undef}) rather than |
990 | table({-border=>''}). |
991 | 3. Changes to allow uploaded filenames to be compared to other |
992 | strings with "eq", "cmp" and "ne". |
993 | 4. Changes to allow CGI.pm to coexist more peacefully with |
994 | ActiveState PerlEX. |
995 | 5. Changes to prevent exported variables from clashing when importing |
996 | ":all" set in combination with cookies. |
997 | |
998 | Version 2.40 |
999 | |
1000 | 1. CGI::Carp patched to work better with mod_perl (thanks to Chris |
1001 | Dean). |
1002 | 2. Uploads of files whose names begin with numbers or the Windows |
1003 | \\UNC\shared\file nomenclature should no longer fail. |
1004 | 3. The <STYLE> tag (for cascading style sheets) now generates the |
1005 | required TYPE attribute. |
1006 | 4. Server push primitives added, thanks to Ed Jordan. |
1007 | 5. Table and other HTML3 functions are now part of the :standard set. |
1008 | 6. Small documentation fixes. |
1009 | |
1010 | TO DO: |
1011 | 1. Do something about the DTD mess. The module should generate |
1012 | correct DTDs, or at least offer the programmer a way to specify |
1013 | the correct one. |
1014 | 2. Split CGI.pm into CGI processing and HTML-generating modules. |
1015 | 3. More robust file upload (?still not working on the Macintosh?). |
1016 | 4. Bring in all the HTML4 functionality, particular the accessibility |
1017 | features. |
1018 | |
1019 | Version 2.39 |
1020 | |
1021 | 1. file uploads failing because of VMS patch; fixed. |
1022 | 2. -dtd parameter was not being properly processed. |
1023 | |
1024 | Version 2.38 |
1025 | |
1026 | I finally got tired of all the 2.37 betas and released 2.38. The main |
1027 | difference between this version and the last 2.37 beta (2.37b30) are |
1028 | some fixes for VMS. This should allow file upload to work properly on |
1029 | all VMS Web servers. |
1030 | |
1031 | Version 2.37, various beta versions |
1032 | |
1033 | 1. Added a CGI::Cookie::parse() method for lucky mod_perl users. |
1034 | 2. No longer need separate -values and -labels arguments for |
1035 | multi-valued form elements. |
1036 | 3. Added better interface to raw cookies (fix courtesy Ken Fox, |
1037 | kfox@ford.com) |
1038 | 4. Added param_fetch() function for direct access to parameter list. |
1039 | 5. Fix to checkbox() to allow for multi-valued single checkboxes |
1040 | (weird problem). |
1041 | 6. Added a compile() method for those who want to compile without |
1042 | importing. |
1043 | 7. Documented the import pragmas a little better. |
1044 | 8. Added a -compile switch to the use clause for the long-suffering |
1045 | mod_perl and Perl compiler users. |
1046 | 9. Fixed initialization routines so that FileHandle and type globs |
1047 | work correctly (and hash initialization doesn't fail!). |
1048 | 10. Better deletion of temporary files on NT systems. |
1049 | 11. Added documentation on escape(), unescape(), unescapeHTML() and |
1050 | unescapeHTML() subroutines. |
1051 | 12. Added documentation on creating subclasses. |
1052 | 13. Fixed problem when calling $self->SUPER::foo() from inheriting |
1053 | subclasses. |
1054 | 14. Fixed problem using filehandles from within subroutines. |
1055 | 15. Fixed inability to use the string "CGI" as a parameter. |
1056 | 16. Fixed exponentially growing $FILLUNIT bug |
1057 | 17. Check for undef filehandle in read_from_client() |
1058 | 18. Now requires the UNIVERSAL.pm module, present in Perl 5.003_7 or |
1059 | higher. |
1060 | 19. Fixed problem with uppercase-only parameters being ignored. |
1061 | 20. Fixed vanishing cookie problem. |
1062 | 21. Fixed warning in initialize_globals() under mod_perl. |
1063 | 22. File uploads from Macintosh versions of MSIE should now work. |
1064 | 23. Pragmas now preceded by dashes (-nph) rather than colons (:nph). |
1065 | Old style is supported for backward compatability. |
1066 | 24. Can now pass arguments to all functions using {} brackets, |
1067 | resolving historical inconsistencies. |
1068 | 25. Removed autoloader warnings about absent MultipartBuffer::DESTROY. |
1069 | 26. Fixed non-sticky checkbox() when -name used without -value. |
1070 | 27. Hack to fix path_info() in IIS 2.0. Doesn't help with IIS 3.0. |
1071 | 28. Parameter syntax for debugging from command line now more |
1072 | straightforward. |
1073 | 29. Added $DISABLE_UPLOAD to disable file uploads. |
1074 | 30. Added $POST_MAX to error out if POSTings exceed some ceiling. |
1075 | 31. Fixed url_param(), which wasn't working at all. |
1076 | 32. Fixed variable suicide problem in s///e expressions, where the |
1077 | autoloader was needed during evaluation. |
1078 | 33. Removed excess spaces between elements of checkbox and radio |
1079 | groups |
1080 | 34. Can now create "valueless" submit buttons |
1081 | 35. Can now set path_info as well as read it. |
1082 | 36. ReadParse() now returns a useful function result. |
1083 | 37. import_names() now allows you to optionally clear out the |
1084 | namespace before importing (for mod_perl users) |
1085 | 38. Made it possible to have a popup menu or radio button with a value |
1086 | of "0". |
1087 | 39. link() changed to Link() to avoid overriding native link function. |
1088 | 40. Takes advantage of mod_perl's register_cleanup() function to clear |
1089 | globals. |
1090 | 41. <LAYER> and <ILAYER> added to :html3 functions. |
1091 | 42. Fixed problems with private tempfiles and NT/IIS systems. |
1092 | 43. No longer prints the DTD by default (I bet no one will complain). |
1093 | 44. Allow underscores to replace internal hyphens in parameter names. |
1094 | 45. CGI::Push supports heterogeneous MIME types and adjustable delays |
1095 | between pages. |
1096 | 46. url_param() method added for retrieving URL parameters even when a |
1097 | fill-out form is POSTed. |
1098 | 47. Got rid of warnings when radio_group() is called. |
1099 | 48. Cookies now moved to their very own module. |
1100 | 49. Fixed documentation bug in CGI::Fast. |
1101 | 50. Added a :no_debug pragma to the import list. |
1102 | |
1103 | Version 2.36 |
1104 | |
1105 | 1. Expanded JavaScript functionality |
1106 | 2. Preliminary support for cascading stylesheets |
1107 | 3. Security fixes for file uploads: |
1108 | + Module will bail out if its temporary file already exists |
1109 | + Temporary files can now be made completely private to avoid |
1110 | peeking by other users or CGI scripts. |
1111 | 4. use CGI qw/:nph/ wasn't working correctly. Now it is. |
1112 | 5. Cookie and HTTP date formats didn't meet spec. Thanks to Mark |
1113 | Fisher (fisherm@indy.tce.com) for catching and fixing this. |
1114 | |
1115 | p |
1116 | |
1117 | Version 2.35 |
1118 | |
1119 | 1. Robustified multipart file upload against incorrect syntax in |
1120 | POST. |
1121 | 2. Fixed more problems with mod_perl. |
1122 | 3. Added -noScript parameter to start_html(). |
1123 | 4. Documentation fixes. |
1124 | |
1125 | Version 2.34 |
1126 | |
1127 | 1. Stupid typo fix |
1128 | |
1129 | Version 2.33 |
1130 | |
1131 | 1. Fixed a warning about an undefined environment variable. |
1132 | 2. Doug's patch for redirect() under mod_perl |
1133 | 3. Partial fix for busted inheritence from CGI::Apache |
1134 | 4. Documentation fixes. |
1135 | |
1136 | Version 2.32 |
1137 | |
1138 | 1. Improved support for Apache's mod_perl. |
1139 | 2. Changes to better support inheritance. |
1140 | 3. Support for OS/2. |
1141 | |
1142 | Version 2.31 |
1143 | |
1144 | 1. New uploadInfo() method to obtain header information from uploaded |
1145 | files. |
1146 | 2. cookie() without any arguments returns all the cookies passed to a |
1147 | script. |
1148 | 3. Removed annoying warnings about $ENV{NPH} when running with the -w |
1149 | switch. |
1150 | 4. Removed operator overloading throughout to make compatible with |
1151 | new versions of perl. |
1152 | 5. -expires now implies the -date header, to avoid clock skew. |
1153 | 6. WebSite passes cookies in $ENV{COOKIE} rather than |
1154 | $ENV{HTTP_COOKIE}. We now handle this, even though it's O'Reilly's |
1155 | fault. |
1156 | 7. Tested successfully against new sfio I/O layer. |
1157 | 8. Documentation fixes. |
1158 | |
1159 | Version 2.30 |
1160 | |
1161 | 1. Automatic detection of operating system at load time. |
1162 | 2. Changed select() function to Select() in order to avoid conflict |
1163 | with Perl built-in. |
1164 | 3. Added Tr() as an alternative to TR(); some people think it looks |
1165 | better that way. |
1166 | 4. Fixed problem with autoloading of MultipartBuffer::DESTROY code. |
1167 | 5. Added the following methods: |
1168 | + virtual_host() |
1169 | + server_software() |
1170 | 6. Automatic NPH mode when running under Microsoft IIS server. |
1171 | |
1172 | Version 2.29 |
1173 | |
1174 | 1. Fixed cookie bugs |
1175 | 2. Fixed problems that cropped up when useNamedParameters was set to |
1176 | 1. |
1177 | 3. Prevent CGI::Carp::fatalsToBrowser() from crapping out when |
1178 | encountering a die() within an eval(). |
1179 | 4. Fixed problems with filehandle initializers. |
1180 | |
1181 | Version 2.28 |
1182 | |
1183 | 1. Added support for NPH scripts; also fixes problems with Microsoft |
1184 | IIS. |
1185 | 2. Fixed a problem with checkbox() values not being correctly saved |
1186 | and restored. |
1187 | 3. Fixed a bug in which CGI objects created with empty string |
1188 | initializers took on default values from earlier CGI objects. |
1189 | 4. Documentation fixes. |
1190 | |
1191 | Version 2.27 |
1192 | |
1193 | 1. Small but important bug fix: the automatic capitalization of tag |
1194 | attributes was accidentally capitalizing the VALUES as well as the |
1195 | ATTRIBUTE names (oops). |
1196 | |
1197 | Version 2.26 |
1198 | |
1199 | 1. Changed behavior of scrolling_list(), checkbox() and |
1200 | checkbox_group() methods so that defaults are honored correctly. |
1201 | The "fix" causes endform() to generate additional <INPUT |
1202 | TYPE="HIDDEN"> tags -- don't be surpised. |
1203 | 2. Fixed bug involving the detection of the SSL protocol. |
1204 | 3. Fixed documentation error in position of the -meta argument in |
1205 | start_html(). |
1206 | 4. HTML shortcuts now generate tags in ALL UPPERCASE. |
1207 | 5. start_html() now generates correct SGML header: |
1208 | <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
deafae52 |
1209 | |
976c4ade |
1210 | 6. CGI::Carp no longer fails "use strict refs" pragma. |
1211 | |
1212 | Version 2.25 |
1213 | |
1214 | 1. Fixed bug that caused bad redirection on destination URLs with |
1215 | arguments. |
1216 | 2. Fixed bug involving use_named_parameters() followed by |
1217 | start_multipart_form() |
1218 | 3. Fixed bug that caused incorrect determination of binmode for |
1219 | Macintosh. |
1220 | 4. Spelling fixes on documentation. |
1221 | |
1222 | Version 2.24 |
1223 | |
1224 | 1. Fixed bug that caused generation of lousy HTML for some form |
1225 | elements |
1226 | 2. Fixed uploading bug in Windows NT |
1227 | 3. Some code cleanup (not enough) |
1228 | |
1229 | Version 2.23 |
1230 | |
1231 | 1. Fixed an obscure bug that caused scripts to fail mysteriously. |
1232 | 2. Fixed auto-caching bug. |
1233 | 3. Fixed bug that prevented HTML shortcuts from passing taint checks. |
1234 | 4. Fixed some -w warning problems. |
1235 | |
1236 | Version 2.22 |
1237 | |
1238 | 1. New CGI::Fast module for use with FastCGI protocol. See pod |
1239 | documentation for details. |
1240 | 2. Fixed problems with inheritance and autoloading. |
1241 | 3. Added TR() (<tr>) and PARAM() (<param>) methods to list of |
1242 | exported HTML tag-generating functions. |
1243 | 4. Moved all CGI-related I/O to a bottleneck method so that this can |
1244 | be overridden more easily in mod_perl (thanks to Doug MacEachern). |
1245 | 5. put() method as substitute for print() for use in mod_perl. |
1246 | 6. Fixed crash in tmpFileName() method. |
1247 | 7. Added tmpFileName(), startform() and endform() to export list. |
1248 | 8. Fixed problems with attributes in HTML shortcuts. |
1249 | 9. Functions that don't actually need access to the CGI object now no |
1250 | longer generate a default one. May speed things up slightly. |
1251 | 10. Aesthetic improvements in generated HTML. |
1252 | 11. New examples. |
1253 | |
1254 | Version 2.21 |
1255 | |
1256 | 1. Added the -meta argument to start_html(). |
1257 | 2. Fixed hidden fields (again). |
1258 | 3. Radio_group() and checkbox_group() now return an appropriate |
1259 | scalar value when called in a scalar context, rather than |
1260 | returning a numeric value! |
1261 | 4. Cleaned up the formatting of form elements to avoid unesthetic |
1262 | extra spaces within the attributes. |
1263 | 5. HTML elements now correctly include the closing tag when |
1264 | parameters are present but null: em('') |
1265 | 6. Added password_field() to the export list. |
1266 | |
1267 | Version 2.20 |
1268 | |
1269 | 1. Dumped the SelfLoader because of problems with running with taint |
1270 | checks and rolled my own. Performance is now significantly |
1271 | improved. |
1272 | 2. Added HTML shortcuts. |
1273 | 3. import() now adheres to the Perl module conventions, allowing |
1274 | CGI.pm to import any or all method names into the user's name |
1275 | space. |
1276 | 4. Added the ability to initialize CGI objects from strings and |
1277 | associative arrays. |
1278 | 5. Made it possible to initialize CGI objects with filehandle |
1279 | references rather than filehandle strings. |
1280 | 6. Added the delete_all() and append() methods. |
1281 | 7. CGI objects correctly initialize from filehandles on NT/95 systems |
1282 | now. |
1283 | 8. Fixed the problem with binary file uploads on NT/95 systems. |
1284 | 9. Fixed bug in redirect(). |
1285 | 10. Added '-Window-target' parameter to redirect(). |
1286 | 11. Fixed import_names() so that parameter names containing funny |
1287 | characters work. |
1288 | 12. Broke the unfortunate connection between cookie and CGI parameter |
1289 | name space. |
1290 | 13. Fixed problems with hidden fields whose values are 0. |
1291 | 14. Cleaned up the documentation somewhat. |
1292 | |
1293 | Version 2.19 |
1294 | |
1295 | 1. Added cookie() support routines. |
1296 | 2. Added -expires parameter to header(). |
1297 | 3. Added cgi-lib.pl compatability mode. |
1298 | 4. Made the module more configurable for different operating systems. |
1299 | 5. Fixed a dumb bug in JavaScript button() method. |
1300 | |
1301 | Version 2.18 |
1302 | |
1303 | 1. Fixed a bug that corrects a hang that occurs on some platforms |
1304 | when processing file uploads. Unfortunately this disables the |
1305 | check for bad Netscape uploads. |
1306 | 2. Fixed bizarre problem involving the inability to process uploaded |
1307 | files that begin with a non alphabetic character in the file name. |
1308 | 3. Fixed a bug in the hidden fields involving the -override directive |
1309 | being ignored when scalar defaults were passed. |
1310 | 4. Added documentation on how to disable the SelfLoader features. |
1311 | |
1312 | Version 2.17 |
1313 | |
1314 | 1. Added support for the SelfLoader module. |
1315 | 2. Added oodles of JavaScript support routines. |
1316 | 3. Fixed bad bug in query_string() method that caused some parameters |
1317 | to be silently dropped. |
1318 | 4. Robustified file upload code to handle premature termination by |
1319 | the client. |
1320 | 5. Exported temporary file names on file upload. |
1321 | 6. Removed spurious "uninitialized variable" warnings that appeared |
1322 | when running under 5.002. |
1323 | 7. Added the Carp.pm library to the standard distribution. |
1324 | 8. Fixed a number of errors in this documentation, and probably added |
1325 | a few more. |
1326 | 9. Checkbox_group() and radio_group() now return the buttons as |
1327 | arrays, so that you can incorporate the individual buttons into |
1328 | specialized tables. |
1329 | 10. Added the '-nolabels' option to checkbox_group() and |
1330 | radio_group(). Probably should be added to all the other |
1331 | HTML-generating routines. |
1332 | 11. Added the url() method to recover the URL without the entire query |
1333 | string appended. |
1334 | 12. Added request_method() to list of environment variables available. |
1335 | 13. Would you believe it? Fixed hidden fields again! |
1336 | |
1337 | Version 2.16 |
1338 | |
1339 | 1. Fixed hidden fields yet again. |
1340 | 2. Fixed subtle problems in the file upload method that caused |
1341 | intermittent failures (thanks to Keven Hendrick for this one). |
1342 | 3. Made file upload more robust in the face of bizarre behavior by |
1343 | the Macintosh and Windows Netscape clients. |
1344 | 4. Moved the POD documentation to the bottom of the module at the |
1345 | request of Stephen Dahmen. |
1346 | 5. Added the -xbase parameter to the start_html() method, also at the |
1347 | request of Stephen Dahmen. |
1348 | 6. Added JavaScript form buttons at Stephen's request. I'm not sure |
1349 | how to use this Netscape extension correctly, however, so for now |
1350 | the form() method is in the module as an undocumented feature. Use |
1351 | at your own risk! |
1352 | |
1353 | Version 2.15 |
1354 | |
1355 | 1. Added the -override parameter to all field-generating methods. |
1356 | 2. Documented the user_name() and remote_user() methods. |
1357 | 3. Fixed bugs that prevented empty strings from being recognized as |
1358 | valid textfield contents. |
1359 | 4. Documented the use of framesets and added a frameset example. |
1360 | |
1361 | Version 2.14 |
1362 | |
1363 | This was an internal experimental version that was never released. |
1364 | |
1365 | Version 2.13 |
1366 | |
1367 | 1. Fixed a bug that interfered with the value "0" being entered into |
1368 | text fields. |
1369 | |
1370 | Version 2.01 |
1371 | |
1372 | 1. Added -rows and -columns to the radio and checkbox groups. No |
1373 | doubt this will cause much grief because it seems to promise a |
1374 | level of meta-organization that it doesn't actually provide. |
1375 | 2. Fixed a bug in the redirect() method -- it was not truly HTTP/1.0 |
1376 | compliant. |
1377 | |
1378 | Version 2.0 |
1379 | |
1380 | The changes seemed to touch every line of code, so I decided to bump |
1381 | up the major version number. |
1382 | 1. Support for named parameter style method calls. This turns out |
1383 | to be a big win for extending CGI.pm when Netscape adds new HTML |
1384 | "features". |
1385 | 2. Changed behavior of hidden fields back to the correct "sticky" |
1386 | behavior. This is going to break some programs, but it is for |
1387 | the best in the long run. |
1388 | 3. Netscape 2.0b2 broke the file upload feature. CGI.pm now handles |
1389 | both 2.0b1 and 2.0b2-style uploading. It will probably break again |
1390 | in 2.0b3. |
1391 | 4. There were still problems with library being unable to distinguish |
1392 | between a form being loaded for the first time, and a subsequent |
1393 | loading with all fields blank. We now forcibly create a default |
1394 | name for the Submit button (if not provided) so that there's |
1395 | always at least one parameter. |
1396 | 5. More workarounds to prevent annoying spurious warning messages |
1397 | when run under the -w switch. -w is seriously broken in perl |
1398 | 5.001! |
1399 | |
1400 | Version 1.57 |
1401 | |
1402 | 1. Support for the Netscape 2.0 "File upload" field. |
1403 | 2. The handling of defaults for selected items in scrolling lists and |
1404 | multiple checkboxes is now consistent. |
1405 | |
1406 | Version 1.56 |
1407 | |
1408 | 1. Created true "pod" documentation for the module. |
1409 | 2. Cleaned up the code to avoid many of the spurious "use of |
1410 | uninitialized variable" warnings when running with the -w switch. |
1411 | 3. Added the autoEscape() method. v |
1412 | 4. Added string interpolation of the CGI object. |
1413 | 5. Added the ability to pass additional parameters to the <BODY> tag. |
1414 | 6. Added the ability to specify the status code in the HTTP header. |
1415 | |
1416 | Bug fixes in version 1.55 |
1417 | |
1418 | 1. Every time self_url() was called, the parameter list would grow. |
1419 | This was a bad "feature". |
1420 | 2. Documented the fact that you can pass "-" to radio_group() in |
1421 | order to prevent any button from being highlighted by default. |
1422 | |
1423 | Bug fixes in version 1.54 |
1424 | |
1425 | 1. The user_agent() method is now documented; |
1426 | 2. A potential security hole in import() is now plugged. |
1427 | 3. Changed name of import() to import_names() for compatability with |
1428 | CGI:: modules. |
1429 | |
1430 | Bug fixes in version 1.53 |
1431 | |
1432 | 1. Fixed several typos in the code that were causing the following |
1433 | subroutines to fail in some circumstances |
1434 | 1. checkbox() |
1435 | 2. hidden() |
1436 | 2. No features added |
1437 | |
1438 | New features added in version 1.52 |
1439 | |
1440 | 1. Added backslashing, quotation marks, and other shell-style escape |
1441 | sequences to the parameters passed in during debugging off-line. |
1442 | 2. Changed the way that the hidden() method works so that the default |
1443 | value always overrides the current one. |
1444 | 3. Improved the handling of sticky values in forms. It's now less |
1445 | likely that sticky values will get stuck. |
1446 | 4. If you call server_name(), script_name() and several other methods |
1447 | when running offline, the methods now create "dummy" values to |
1448 | work with. |
1449 | |
1450 | Bugs fixed in version 1.51 |
1451 | |
1452 | 1. param() when called without arguments was returning an array of |
1453 | length 1 even when there were no parameters to be had. Bad bug! |
1454 | Bad! |
1455 | 2. The HTML code generated would break if input fields contained the |
1456 | forbidden characters ">< or &. You can now use these characters |
1457 | freely. |
1458 | |
1459 | New features added in version 1.50 |
1460 | |
1461 | 1. import() method allows all the parameters to be imported into a |
1462 | namespace in one fell swoop. |
1463 | 2. Parameters are now returned in the same order in which they were |
1464 | defined. |
1465 | |
1466 | Bugs fixed in version 1.45 |
1467 | |
1468 | 1. delete() method didn't work correctly. This is now fixed. |
1469 | 2. reset() method didn't allow you to set the name of the button. |
1470 | Fixed. |
1471 | |
1472 | Bugs fixed in version 1.44 |
1473 | |
1474 | 1. self_url() didn't include the path information. This is now fixed. |
1475 | |
1476 | New features added in version 1.43 |
1477 | |
1478 | 1. Added the delete() method. |
1479 | |
1480 | New features added in version 1.42 |
1481 | |
1482 | 1. The image_button() method to create clickable images. |
1483 | 2. A few bug fixes involving forms embedded in <PRE> blocks. |
1484 | |
1485 | New features added in version 1.4 |
1486 | |
1487 | 1. New header shortcut methods |
1488 | + redirect() to create HTTP redirection messages. |
1489 | + start_html() to create the HTML title, complete with the |
1490 | recommended <LINK> tag that no one ever remembers to include. |
1491 | + end_html() for completeness' sake. |
1492 | 2. A new save() method that allows you to write out the state of an |
1493 | script to a file or pipe. |
1494 | 3. An improved version of the new() method that allows you to restore |
1495 | the state of a script from a file or pipe. With (2) this gives you |
1496 | dump and restore capabilities! (Wow, you can put a "121,931 |
1497 | customers served" banner at the bottom of your pages!) |
1498 | 4. A self_url() method that allows you to create state-maintaining |
1499 | hypertext links. In addition to allowing you to maintain the state |
1500 | of your scripts between invocations, this lets you work around a |
1501 | problem that some browsers have when jumping to internal links in |
1502 | a document that contains a form -- the form information gets lost. |
1503 | 5. The user-visible labels in checkboxes, radio buttons, popup menus |
1504 | and scrolling lists have now been decoupled from the values sent |
1505 | to your CGI script. Your script can know a checkbox by the name of |
1506 | "cb1" while the user knows it by a more descriptive name. I've |
1507 | also added some parameters that were missing from the text fields, |
1508 | such as MAXLENGTH. |
1509 | 6. A whole bunch of methods have been added to get at environment |
1510 | variables involved in user verification and other obscure |
1511 | features. |
1512 | |
1513 | Bug fixes |
1514 | |
1515 | 1. The problems with the hidden fields have (I hope at last) been |
1516 | fixed. |
1517 | 2. You can create multiple query objects and they will all be |
1518 | initialized correctly. This simplifies the creation of multiple |
1519 | forms on one page. |
1520 | 3. The URL unescaping code works correctly now. |