2008-11-12 Tim Jenness ---- Release V0.21 CPAN ---- * Temp.pm: Clean out $FILES_CREATED_BY_OBJECT when the destructor runs. Otherwise memory does not get returned. Really bad idea for daemons. (Thanks to Maxime Therreault RT #37621) * Temp.pm: Integrate patches from bleadperl for cygwin. (thanks to Jari Aalto RT #36376) * t/seekable.t: seekable test was failing on perl 5.6.0 so we now skip the specific test. (thanks to Zefram) * Temp.pm: Remove the test on the parent directory to see if a file can be written. This will be found out anyway as soon as the file open is attempted. AFS systems may fail a -w test but still allow a file to be created. (thanks to Christopher Ellison) * Temp.pm: Put an eval around rmtree. Some versions of rmtree croak if you attempt to remove a directory that you are inside. (debian bug 479317 and RT #35779). 2008-03-15 Tim Jenness * Temp.pm: Localize special variables in END blocks and destructors. 2007-12-20 Tim Jenness ---- Release V0.20 CPAN ---- * t/lock.t: Fix logic problem with BEGIN block that was causing grief on some systems (thanks to Steve Peters for patch). 2007-11-19 Tim Jenness ----- Release V0.19 CPAN ----- * Temp.pm (tempfile): Add EXLOCK option which can be used to disable O_EXLOCK * t/lock.t: Test ability to disable O_EXLOCK 2007-11-16 Tim Jenness * Temp.pm (newdir): Add object oriented interface to "tempdir". Use File::Temp->newdir() 2007-11-15 Tim Jenness * Temp.pm (tempdir): Add a note to the tempdir documentation to clarify that the default is for the directory not to be temporary and that use of an OO approach may be required (thanks to David Golden's annotation on CPAN). * Temp.pm (_randchar): Remove _randchar function (no longer used) * Temp.pm: Add note about File::Tempdir module 2007-11-14 Tim Jenness * Temp.pm (new): Track pid used when file created and make sure object destructor deletes the file only when the current pid matches the original pid (RT#11067 again - thanks to Grousse) Added new test (fork.t) to test this behaviour. * t/seekable.t: Add tests to verify fix for RT#22052 2007-11-01 Tim Jenness * Temp.pm (_is_safe): Correct cluck message to match uid check (thanks to Alexey Tourbin RT #14218) * Temp.pm: Add note on use of binmode to modify encoding. (prompted by Wolfgang Husmann) 2007-10-31 Tim Jenness * Temp.pm (tempfile): Add TMPDIR flag to simplify tempdir(template, DIR => File::Spec->tmpdir) and to remove confusion for tempdir interface. (thanks to Brendan O'Dea - debian bug #351373) * META.yml: Update to v1.0 spec YAML spec. (thanks to Alexandr Ciornii RT# 23524) * Temp.pm: Localize $@ when using eval to prevent leakage (prompted by Zefram) * Makefile.PL: Support LICENSE in newer ExtUtils::MakeMaker implementations (thanks to Alexandr Ciornii RT #23524) 2007-10-31 Tim Jenness * t/seekable.t: Skip seek test on older IO::Seekable versions. (thanks to Sebastien Aperghis-Tramoni RT #23524) * Temp.pm: Allow XXX replacement to run on perl 5.005 and 5.004. (thanks to Sebastien Aperghis-Tramoni RT #23524) 2007-10-29 Tim Jenness * Temp.pm: Fix range of random character determination such that the last character in the list (_) will appear occassionally. (Thanks to Peter Dintelmann perl RT# 41345) * Temp.pm: Clarify error message when parent directory does not exist (thanks to Peter Dintelmann perl RT # 41346) * Temp.pm: Carp::Heavy does not exist on older perls (eg 5.005) so wrap the require in an eval (Thanks to Sebastien Aperghis-Tramoni, Jesse Vincent, Slaven Rezic and Robin Barker RT #26841) * Temp.pm: Replace "new File::Temp" with "File::Temp->new" at the behest of H. Merijn Brand 2007-01-21 Tim Jenness --- RELEASE 0.18 CPAN --- * Temp.pm: Provide "cmp" overloading so File::Temp object can be compared to filename directly. (Rafael Garcia-Suarez) * Temp.pm: Remove umask control (was not thread-safe) (thanks to Peter Dintelmann, Gisle Aas) * t/cmp.t: New test file * Temp.pm: Export SEEK_* constants (Matt Lawrence RT #22052) 2006-08-18 Tim Jenness --- RELEASE 0.17 CPAN ---- * Temp.pm: Also inherit from IO::Seekable so that seek and tell methods can work on filehandles (thanks to Rick Myers and Toby Corkindale). * t/seekable.t: Add test script from Rick Myers. * Temp.pm: Add note about forking and resetting the random number generator to prevent multiple clashes of temp file names. (pointed out by Brent Cowgill) * Temp.pm: pre-emptively load Carp::Heavy. If we don't when we run out of file handles and attempt to call croak() we get an error message telling us that Carp::Heavy won't load rather than an error telling us we have run out of file handles. (pointed out by bjoern_at_hoehrmann.de RT #14151) * Temp.pm: Remove eg. from comments and replace with e.g. In pod replace "e.g." with "for example". (David Landgren) * Temp.pm: Correct synopsis concerning the arguments to the File::Temp constructor (Peter Valdemar Moerch). * Temp.pm: Update documentation to note that croak() will be called by tempfile() and File::Temp->new if a problem occurs (thanks to Steve Hay for pointing this out). 2005-09-01 Tim Jenness * Temp.pm: Sebastien Aperghis-Tramoni indicates that File::Temp works with perl 5.004 so change the minimum perl version. (RT #14149) * Temp.pm: Use effective uid rather than real uid (Alexey Tourbin RT #14218) 2005-02-22 Tim Jenness --- RELEASE V0.16 --- * Temp.pm: Remove spurious debug statement 2005-02-21 Tim Jenness --- RELEASE V0.15 --- * Temp.pm (unlink_on_destroy): Add post-object creation method to control whether the temp file will be unlinked when the object goes out of scope. * Temp.pm: Increase maximum number of tries before aborting. * Temp.pm: Add $KEEP_ALL to allow the temporary files to be retained whilst debugging (suggestion from Ed Avis [and others]). * Temp.pm: Temp files should have been opened O_NOFOLLOW rather than O_FOLLOW! (thanks to Marc Tardif) * Temp.pm: Add cleanup() function so that temp files that would be removed by an END block can be removed by a daemon. (RT wishlist item #6928 by Robert Rothenberg) * Temp.pm: Force chmod on file before unlinking it. This can be a problem on windows (see RT bug #6935). tempdir() has been fixed by Slaven's earlier patch to change the rmtree arguments. * Temp.pm (top_system_uid): Add interix patch from Todd Vierling * Temp.pm (_gettemp): Pod patch from Steven Lembark clarifying the error message associated with two few XXXXs * Temp.pm: Add note on forking and make sure that END blocks only remove temporary files created by the current process ID (prompted by Daniel Macks in RT bug #11067) * Temp.pm (cmpstat): Roman Vasicek reported problems with the _ filehandle. Play it safe and remove that handle. (see RT bug #8822) * t/tempfile.t: Add test for write proteceted temp file (thanks to Slaven Rezic) * Temp.pm (_can_do_level): Change argument to rmtree to make it attempt to remove write-protected files on cleanup (thanks to Slaven Rezic) * Temp.pm: Add note on binmode usage 2003-08-16 Tim Jenness --- RELEASE V0.14 --- * t/object.t: Add test of OO interface and switch to Test::More * Temp.pm: Add object-oriented interface. * Temp.pm: mpeix fixes from Ken Hirsch 2003-08-15 Tim Jenness --- RELEASE V0.13 --- * Temp.pm: Integrate doc fixes from bleadperl (Slaven Rezic and Jeffrey Friedl) * Makefile.PL: Add INSTALLDIRS switch on perl version so that the module installs into the correct place for perl 5.6.1 and newer. 2002-08-28 Tim Jenness * Temp.pm: Synch with perl 5.8.0 v0.13 MacOS fixes (Chris Nandor) 2001-02-22 Tim Jenness --- RELEASE V0.12 --- * t/posix.t: The unlink0 tests now skip on failure * t/mktemp.t: The unlink0 tests now skip on failure * Temp.pm (tmpfile): tmpfile returns undef on failure rather than croaking. 2001-02-21 Tim Jenness * Temp.pm: -Add fix for CGI::Carp [Thanks to John Labovitz ] - Use error string to propogate reason rather than a carp 2000-11-24 Tim Jenness --- RELEASE V0.11 ---- * t/tempfile.t: Add a test to make sure the file is present after close and another to use tempfile in a scalar context. * Temp.pm: Fix bug on NT with O_TEMPORARY causing the file to be removed before the program exits. ---- RELEASE V0.10 ---- * Temp.pm: Incorporate fixes up to bleedperl 7825. Cross platform fixes. * t/security.t: Incorporate fixes from bleedperl 7825 - adds more cross platform support and more skips on the basis that this is not testing your system security, just the module. 2000-08-16 Tim Jenness * Temp.pm (_gettemp): Dont use VMS::Stdio if we want the file to remain after closing. 2000-08-15 Tim Jenness * Temp.pm (_can_do_level): cygwin patch 2000-08-14 Tim Jenness * Temp.pm: Add OPENTEMPFLAGS to support UNLINK=>0 More tweaks to VMS support (now uses VMS::Stdio) 2000-07-26 Tim Jenness * Release V0.09 to CPAN * README: Update for V0.09 2000-07-25 Tim Jenness * t/security.t: OS/2 can not do the security tests. * Temp.pm: Add Support for VMS and OS/2 2000-05-15 Tim Jenness * Release V0.08 to CPAN * t/mktemp.t: Skip the test for unlink0 if it fails since in most cases this indicates an NFS problem. * Temp.pm (_can_do_level): Add check to make sure an OS can handle the required safe level (safe_level): Check the level can be supported before allowing it to change (END): Change order of cleanup so that files are removed ahead of temp dirs (since files may be in the temp dirs) 2000-05-08 Tim Jenness * Temp.pm: Reorganize END block * t/tempfile.t: Correct tests for new position of END{} block * t/security.t: Correct tests for new position of END{} block * t/posix.t: add # to print output * t/tempfile.t: Add # to print output * t/mktemp.t: Add # to print output * t/security.t: Add # to print output 2000-04-28 Tim Jenness * Temp.pm: Calculate OPENFLAGS outside of subroutine. This improves speed of the commands by nearly a factor of 3. (_replace_XX): Inline the character replacement code rather than using _randchar subroutine. Improves performance by an additional 8%. 2000-04-27 Tim Jenness * t/posix.t: Add explicit autoflush on filehandle * t/mktemp.t: Add explicit autoflush on filehandle * Temp.pm: (unlink0): Disallow HIGH and MEDIUM tests if running perl 5.005 or earlier. * t/security.t: Specify perl version to allow for tests * Add support for perl 5.005 (remove 'our' and auto-vivifying file handles). VERSION NUMBER NOW 0.07 * README: Update in preparation for V0.06 * Temp.pm (_deferred_unlink): Add new internal routine to centralise the configuring of END blocks. This also fixes a bug where only the first file was being unlinked in the END block (due to scoping). (_can_unlink_opened_file): Rename from _can_unlink. Will now return false if running on Windows. (_is_verysafe): If _PC_CHOWN_RESTRICTED is not available assume that "chown giveaway" is possible anyway. (unlink0): If can not unlink an open file, simply defer removal until later. (_gettemp): Add O_NOINHERIT and O_TEMPORARY flags to sysopen if they are available (Thanks to Tom Christiansen for this) * t/mktemp.t: Add test * t/posix.t: Add test * t/security.t: Add test * t/tempfile.t: Add test 2000-03-14 Tim Jenness * Release v0.05 to CPAN