1Revision history for Perl distribution PathTools. 2 33.75 4- Fix t/abs2rel.t on 5.8.8 by changing mkpath call to be 5 compatible with older File::Path 6 73.74 8- No changes. 9 103.73 11- Define NEED_croak_xs_usage, fixing usage of croak_xs_usage() 12- [perl #132853] Add metadata (ABSTRACT, LICENSE, AUTHOR) 13- [perl #132733] Skip cwd_enoent test on Cygwin 14- [perl #132651] Avoid infinite recursion in _perl_abs_path() 15- [rt.cpan.org #114236] Compatibility with File::Path 2.06_04 16 173.72 18- [perl #132648] Correct error returns from fast_abs_path() 19 203.71 21- [perl #130818] Remove support for running PathTools on MacOS 22 and EPOC 23 243.70 25- Change strcmp into the easier to read strEQ 26 273.69 28- avoid loading modules repeatedly at runtime 29- replace 'use vars' by 'our' 30- Switch to XSLoader from Dynaloader 31 323.68 33- avoid warning from pre-5.8 code for detecting tainted values 34- make taint.t detect that a pre-5.8 Perl supports tainting 35- avoid a dynamic linking problem on Perl 5.6 36 373.67 - Mon Feb 27 09:33:04 EST 2017 38- Add security usage note to File::Spec::no_upwards 39 403.66 - Sat Nov 19 10:30:19 MST 2016 41- white space change so can compile under C++11 42 433.65 - Mon, 25 Jul 2016 23:15:33 -0700 44- (perl #127384)(CVE-2016-1238) 45 463.64 - Tue May 24 10:00:19 MST 2016 47- just minor pod changes to silence Pod::Checker 48 493.62 - Mon Jan 11 08:39:19 EST 2016 50- ensure File::Spec::canonpath() preserves taint (CVE-2015-8607) 51 523.61 - Sun Dec 20 12:00:00 EST 2015 (bleadperl only release) 53- improve performance of cwd on Win32 miniperl 54 553.60 - Wed Nov 18 21:28:01 EST 2015 56- add File::Spec::AmigaOS -- and actually ship it, this time 57 583.59 - Fri Nov 13 18:38:01 EST 2015 59- no changes since 5.58_01 60 613.58_01 - Mon Nov 9 17:35:28 EST 2015 - TRIAL RELEASE 62- add File::Spec::AmigaOS 63- fix INSTALLDIRS on post-5.10 perls 64 653.56_02 - Thu Jul 16 11:28:57 EDT 2015 - TRIAL RELEASE 66- fix $VERSION in loaded modules 67 683.56_01 - Sat Jul 11 18:07:28 EDT 2015 - TRIAL RELEASE 69- CPAN release of the PathTools included in perl v5.22.0 70- support for z/OS sysplexed systems 71- long-deprecated "fixpath" and "eliminate_macros" VMS functions removed 72- avoid turning leading // into / on cygwin 73- Force barename base to be a directory in File::Spec::VMS:abs2rel 74- Revise Unix syntax detection File::Spec::VMS::abs2rel 75- compiles on Android now 76- fewer compiler warnings 77- eliminate some runtime perl warnings, too 78 793.47 - Fri May 23 18:52:00 2014 80- Improved Android support. 81- File::Spec::Unix->tmpdir: Always return an absolute path 82- File::Spec now has an XS version for performance. 83- QNX and VMS portability 84- tmpdir is updated when the environment changes. 85 863.40 - Wed Jan 16 07:30:00 2013 87- Stop inadvertently skipping Spec.t on VMS. (Craig Berry) 88- Rethink EFS in File::Spec::VMS. (Craig Berry) 89- File::Spec::UNIX->abs2rel() gets it wrong with ".." components 90 [perl #111510] (Volker Schatz) 91- Add C define to remove taint support from perl (Steffen Mueller) 92- Remove "register" declarations as they are no longer 93 useful (Karl Williamson) 94- Add test for fast_abs_path in LF dir 95 [perl #115962] (Father Chrysostomos) 96- Cwd::fast_abs_path's untaint should allow for multiline 97 directories (Joel Berger) 98 993.39_01 - Tue Dec 20 08:30:00 2011 100- [perl #51562] Problem & "solution" for building 5.10.0 with 101 win32+mingw+dmake (kmx) 102- Fix various compiler warnings from XS code (Zefram) 103- Fix typos (spelling errors) (Peter J. Acklam) 104- Remove Mac OS classic only tests from Cwd's Spec.t 105 and special case code from Cwd's cwd.t (Nicholas Clark) 106- Convert File::Spec's remaining tests to Test::More from Test 107 (Nicholas Clark) 108- dist/Cwd/lib/File/Spec/Win32.pm: Fix broken link (Karl Williamson) 109- In Cwd::_win32_cwd() avoid a string eval when checking if we're 110 miniperl (Nicholas Clark) 111- Add PERL_NO_GET_CONTEXT to Cwd (Nicholas Clark) 112- In Cwd.xs on VMS, don't compile bsd_realpath() at all (Nicholas Clark) 113- Merge the implementation of Cwd::{fastcwd,getcwd} using 114 ALIAS (Nicholas Clark) 115- In Cwd.xs, swap to defaulting to disabled prototypes (Nicholas Clark) 116- Remove duplicate $VERSION handling code, made redundant 117 in 3.28_01 (Nicholas Clark) 118- In Cwd.xs, tidy the conditional code related to symlinks 119 (Nicholas Clark) 120- Keep verbatim pod within 80 cols (Father Chrysostomos) 121- [RT #36079] Convert ` to ' in docs (Jim Keenan) 122- [rt.cpan.org #45885] File::Spec: Don’t use tainted tmpdir 123 in 5.6 (Father Chrysostomos) 124 1253.33 - Mon Sep 20 18:00:00 2010 126- No functional changes since the previous release. 127- Fixes POD links 128 (part of core change2a6dc37471bea77f0c24fd1fe90c598a270c9968, 129 Florian Ragwitz) 130 1313.32 - Sun Sep 19 18:00:00 2010 132 133- Promote to stable release. 134 1353.31_03 - Fri Sep 17 20:00:00 2010 136 137- Colon delimiter and escaped delimiters for File::Spec::VMS 138 This is core change 61196b433b2b (Craig A. Berry) 139 1403.31_02 - Fri Jul 23 20:00:00 2010 141 142- Add TODO test for File::Spec->rel2abs() when under a symlink. 143- Make catpath return an empty directory rather than the current 144 directory if the directory name is empty. This allows catpath 145 to play nice with non-rooted logical names, as in 146 catpath('sys$login:', '', 'login.com'); 147 (Craig A. Berry) 148- Fix abs2rel bug in handling a Unix-style input. 149 (Craig A. Berry) 150- Assorted clarification and simplification of the documentation. 151 (Craig A. Berry) 152 1533.31 - Sun Nov 1 15:15:00 2009 154 155- Do not pack a Build.PL to avoid a circular dependency involving 156 ExtUtils::CBuilder (PathTools RT #50749) 157 1583.30_02 - Tue Sep 29 08:17:00 2009 159 160- Remove more special logic required for core perl. 161 1623.30_01 - Mon Sep 21 14:39:00 2009 163 164- Merge changes from core perl. 165 (Mostly changes regarding the lib->ext migration) 166 1673.30 - Sun May 10 10:55:00 2009 168 169- Promote to stable release. 170 1713.29_01 - Thu May 7 20:22:00 2009 172 173- Minor fixes for QNX6. [Sean Boudreau] 174 175- Update to support VMS in Unix compatible mode and/or file names using 176 extended character sets. (RT #42154) [John Malmberg] 177 178- VMS support for Unix and extended file specifications in File::Spec 179 (RT #42153) [John Malmberg] 180 1813.29 - Wed Oct 29 20:48:11 2008 182 183- Promote to stable release. 184 1853.28_03 - Mon Oct 27 22:12:11 2008 186 187- In Cwd.pm, pass the un-munged $VERSION to XSLoader/DynaLoader, 188 otherwise development releases fail tests on Win32. 189 1903.28_02 - Mon Oct 27 20:13:11 2008 191 192 - Fixed some issues on QNX/NTO related to paths with double 193 slashes. [Matt Kraai & Nicholas Clark] 194 1953.28_01 - Fri Jul 25 21:18:11 2008 196 197 - Fixed and clarified the behavior of splitpath() with a $no_file 198 argument on VMS. [Craig A. Berry, Peter Edwards] 199 200 - Removed some function prototypes and other Perl::Critic violations. 201 202 - canonpath() and catdir() and catfile() on Win32 now make an 203 explicit (and unnecessary) copy of their arguments right away, 204 because apparently if we don't, we sabotage all of Win32dom. [RT 205 #33675] 206 207 - The Makefile.PL now has 'use 5.005;' to explicitly show what 208 minimum version of perl we support. [Spotted by Alexandr Ciornii] 209 2103.2701 - Mon Feb 11 21:43:51 2008 211 212 - Fixed an edge case for Win32 catdir('C:', 'foo') and catfile('C:', 213 'foo.txt') (which the caller's not really supposed to do, that's 214 what catpath() is for) that changed between versions. Now we're 215 back to the old behavior, which was to return C:\foo and C:\foo.txt . 216 [Audrey Tang] 217 2183.27 - Wed Jan 16 20:20:49 2008 219 220 - If strlcpy() and strlcat() aren't available on the user's system, 221 we now use ppport.h to provide them, so our C code works. [Steve 222 Peters] 223 224 - Upgraded to a newer version of ppport.h [Steve Peters] 225 2263.26 - Sun Jan 13 21:59:20 2008 227 228 - case_tolerant() on Cygwin will now avoid a painful death when 229 Cygwin::mount_flags() isn't defined, as is the case for perl < 230 5.10. It will now just return 1, which is what it always did 231 before it got so smart. [Spotted by Emanuele Zeppieri] 232 233 - abs_path() on Unix(ish) platforms has been upgraded to a much later 234 version of the underlying C code from BSD. [Michael Schwern] 235 2363.2501 - Mon Dec 24 20:33:02 2007 237 238 - Reimplemented abs_path() on VMS to use 239 VMS::Filespec::vms_realpath() when it's available. [John E. Malmberg] 240 241 - tmpdir() on Cygwin now also looks in $ENV{TMP} and $ENV{TEMP}. 242 243 - case_tolerant() on Cygwin and Win32 now take an optional path 244 argument, defaulting to the C drive, to check for case tolerance, 245 because this fact can vary on different volumes. 246 247 - File::Spec on Unix now uses Cwd::getcwd() rather than Cwd::cwd() to 248 get the current directory because I guess someone on p5p thought it 249 was more appropriate. 250 251 - Added a large set of File::Spec tests for the Cygwin platform. 252 253 - abs_path() now behaves correctly with symbolic links on VMS. 254 255 - Someone fixed a couple of mysterious edge cases in VMS' canonpath() 256 and splitdir(). 257 2583.25_01 - Sat Oct 13 21:13:57 2007 259 260 - Major fixes on Win32, including a rewrite of catdir(), catfile(), 261 and canonpath() in terms of a single body of code. [Heinrich Tegethoff] 262 263 - For Win32 and Cygwin, case-tolerance can vary depending on the 264 volume under scrutiny. When Win32API::File is available, it will 265 be employed to determine case-sensitivity of the given filesystem 266 (C: by default), otherwise we still return the default of 1. [Reini 267 Urban] 268 269 - On Cygwin, we added $ENV{'TMP'} and $ENV{'TEMP'} to the list of 270 possible places to look for tmpdir() return values. [Reini Urban] 271 272 - Added lots more tests for Cygwin. [Reini Urban] 273 274 - canonpath() with no arguments and canonpath(undef) now consistently 275 return undef on all platforms. [Spotted by Peter John Edwards] 276 277 - Fixed splitdir('') and splitdir(undef) and splitdir() to return an 278 empty list on VMS and MacOS, like it does on other platforms. 279 [Craig A. Berry] 280 281 - All .pm files now have the same $VERSION number, rather than a 282 hodgepodge of various numbers. 283 2843.25 - Mon May 21 21:07:26 2007 285 286 - Added a workaround for auto-vivication-of-function-args Perl bug 287 (triggered by OS/2-specific code). [Ilya Zakharevich] 288 289 - Sync with a bleadperl change: miniperl can no longer use Win32::* 290 functions because it cannot load Win32.dll. [Jan Dubois] 291 292 - We only need to load ppport.h when building outside the core, so we 293 avoid using it when in the core. 294 2953.24 - Sun Nov 19 22:52:49 2006 296 297 - Fixed a bug in the $ENV{PWD}-updating of Cwd::chdir() when a 298 dirhandle is passed in. [Steve Peters] 299 300 - Add perl 5.005 to the list of requirements in the 301 Build.PL/Makefile.PL/META.yml. 302 303 - Add ExtUtils::CBuilder to the list of build_requires in Build.PL. 304 305 - Improved performance of canonpath() on Unix-ish platforms - on my 306 OS X laptop it looks like it's about twice as fast. [Ruslan Zakirov] 307 3083.23 - Wed Oct 11 12:11:25 2006 309 310 - Yet more Win32 fixes (sigh... seems like I'm fighting a neverending 311 waterbed...). This time, fixed file_name_is_absolute() to know 312 what it's doing when the path includes a volume but a relative 313 path, like C:foo.txt . This bug had impact in rel2abs() on Win32 314 too. 315 3163.22 - Mon Oct 9 21:50:52 2006 317 318 - Fixed the t/crossplatform.t test on Win32 (and possibly other 319 volume-aware platforms) now that rel2abs() always adds a drive 320 letter. [Reported by several parties] 321 3223.21 - Wed Oct 4 21:16:43 2006 323 324 - Added a bunch of X<> tags to the File::Spec docs to help 325 podindex. [Gabor Szabo] 326 327 - On Win32, abs2rel('C:\one\two\t\foo', 't\bar') should return 328 '..\foo' when the cwd is 'C:\one\two', but it wasn't noticing that 329 the two relevant volumes were the same so it would return the full 330 path 'C:\one\two\t\foo'. This is fixed. [Spotted by Alexandr 331 Ciornii] 332 333 - On Win32, rel2abs() now always adds a volume (drive letter) if the 334 given path doesn't have a volume (drive letter or UNC volume). 335 Previously it could return a value that didn't have a volume if the 336 input was a semi-absolute path like /foo/bar instead of a 337 fully-absolute path like C:/foo/bar . 338 3393.19 Tue Jul 11 22:40:26 CDT 2006 340 341 - When abs2rel() is called with two relative paths 342 (e.g. abs2rel('foo/bar/baz', 'foo/bar')) the resolution algorithm 343 needlessly called cwd() (twice!) to turn both arguments into 344 absolute paths. Now it avoids the cwd() calls with a workaround, 345 making a big efficiency win when abs2rel() is called 346 repeatedly. [Brendan O'Dea] 347 348 - Added a build-time dependency on ExtUtils::Install version 1.39 349 when on Windows. This is necessary because version 1.39 knows how 350 to replace an in-use Cwd shared library, but previous versions 351 don't. [Suggested by Adam Kennedy] 352 353 - Fixed File::Spec::Win32->canonpath('foo/../bar'), which was 354 returning \bar, and now properly returns just bar. [Spotted by 355 Heinrich Tegethoff] 356 3573.18 Thu Apr 27 22:01:38 CDT 2006 358 359 - Fixed some problems on VMS in which a directory called "0" would be 360 treated as a second-class citizen. [Peter (Stig) Edwards] 361 362 - Added a couple of regression tests to make sure abs2rel('/foo/bar', 363 '/') works as expected. [Chia-liang Kao] 364 365 - Added a couple of regression tests to make sure catdir('/', 366 'foo/bar') works as expected. [Mark Grimes] 367 3683.17 Fri Mar 3 16:52:30 CST 2006 369 370 - The Cygwin version of Cwd::cwd() will croak if given any arguments 371 (which can happen if, for example, it's called as Cwd->cwd). Since 372 that croaking is bad, we now wrap the original cwd() in a 373 subroutine that ignores its arguments. We could skip this wrapping 374 if a future version of perl changes cygwin.c's cwd() to not barf 375 when fed an argument. [Jerry D. Hedden] 376 3773.16 Mon Jan 30 20:48:41 CST 2006 378 379 - Updated to version 3.06 of ppport.h, which provides backward 380 compatibility XS layers for older perl versions. 381 382 - Clarify in the docs for File::Spec's abs2rel() and rel2abs() 383 methods that the cwd() function it discusses is 384 Cwd::cwd(). [Spotted by Steven Lembark] 385 386 - Apparently the version of File::Path that ships with perl 5.8.5 387 (and perhaps others) calls Cwd::getcwd() with an argument (perhaps 388 as a method?), which causes it to die with a prototyping error. 389 We've eliminated the prototype by using the "(...)" arglist, since 390 "PROTOTYPE: DISABLE" for the function didn't seem to work. [Spotted 391 by Eamon Daly and others] 392 3933.15 Tue Dec 27 14:17:39 CST 2005 394 395 - The Cwd::getcwd() function on *nix is now a direct pass-through to 396 the underlying getcwd() C library function when possible. This is 397 safer and faster than the previous implementation, which just did 398 abs_path('.'). The pure-perl version has been kept for cases in 399 which the XS version can't load, such as when running under 400 miniperl. [Suggested by Nick Ing-Simmons] 401 402 - When Cwd searches for a 'pwd' executable in the $PATH, we now stop 403 after we find the first one rather than continuing the search. We 404 also avoid the $PATH search altogether when a 'pwd' was already 405 found in a well-known and well-trusted location like /bin or 406 /usr/bin. [Suggested by Nick Ing-Simmons] 407 408 - On Win32 abs2rel($path, $base) was failing whenever $base is the 409 root of a volume (such as C:\ or \\share\dir). This has been 410 fixed. [Reported by Bryan Daimler] 411 412 - In abs2rel() on VMS, we've fixed handling of directory trees so 413 that the test $file = File::Spec::VMS->abs2rel('[t1.t2.t3]file', 414 '[t1.t2.t3]') returns 'file' instead of an empty string. [John 415 E. Malmberg] 416 417 - In canonpath() on VMS, '[]' was totally optimized away instead of 418 just returning '[]'. Now it's fixed. [John E. Malmberg] 419 4203.14 Thu Nov 17 18:08:44 CST 2005 421 422 - canonpath() has some logic in it that avoids collapsing a 423 //double/slash at the beginning of a pathname on platforms where 424 that means something special. It used to check the value of $^O 425 rather than the classname it was called as, which meant that 426 calling File::Spec::Cygwin->canonpath() didn't act like cygwin 427 unless you were actually *on* cygwin. Now it does. 428 429 - Fixed a major bug on Cygwin in which catdir() could sometimes 430 create things that look like //network/paths in cases when it 431 shouldn't (e.g. catdir("/", "foo", "bar")). 432 4333.13 Tue Nov 15 23:50:37 CST 2005 434 435 - Calling tmpdir() on Win32 had the unintended side-effect of storing 436 some undef values in %INC for the TMPDIR, TEMP, and TMP entries if 437 they didn't exist already. This is probably a bug in perl itself 438 (submitted as #37441 on rt.perl.org), which we're now working 439 around. [Thomas L. Shinnick] 440 441 - Integrated a change from bleadperl - a certain #ifdef in Cwd.xs 442 needs to apply to WIN32 but not WinCE. [Vadim Konovalov] 443 444 - abs2rel() used to return the empty string when its two arguments 445 were identical, which made no sense. Now it returns 446 curdir(). [Spotted by David Golden] 447 448 - The Unix and Win32 implementations of abs2rel() have been unified. 449 4503.12 Mon Oct 3 22:09:12 CDT 2005 451 452 - Fixed a testing error on OS/2 in which a drive letter for the root 453 directory was confusing things. [Ilya Zakharevich] 454 455 - Integrated a patch from bleadperl for fixing path() on 456 Win32. [Gisle Aas] 457 4583.11 Sat Aug 27 20:12:55 CDT 2005 459 460 - Fixed a couple of typos in the documentation for 461 File::Spec::Mac. [Piotr Fusik] 462 4633.10 Thu Aug 25 22:24:57 CDT 2005 464 465 - eliminate_macros() and fixpath() in File::Spec::VMS are now 466 deprecated, since they are MakeMaker-specific and now live inside 467 MakeMaker. [Michael Schwern] 468 469 - canonpath() on Win32 now collapses foo/.. (or foo\..) sections 470 correctly, rather than doing the "misguided" work it was previously 471 doing. Note that canonpath() on Unix still does NOT collapse these 472 sections, as doing so would be incorrect. [Michael Schwern] 473 4743.09 Tue Jun 14 20:36:50 CDT 2005 475 476 - Added some block delimiters (brackets) in the Perl_getcwd_sv() XS 477 function, which were necessary to separate the variable 478 declarations from the statements when HAS_GETCWD is not 479 defined. [Yves] 480 481 - Apparently the _NT_cwd() routine is never defined externally like I 482 thought it was, so I simplified the code around it. 483 484 - When cwd() is implemented using the _backtick_pwd() function, it 485 sometimes could create accidental undef entries in %ENV under perl 486 5.6, because local($hash{key}) is somewhat broken. This is now 487 fixed with an appropriate workaround. [Neil Watkiss] 488 4893.08 Sat May 28 10:10:29 CDT 2005 490 491 - Fixed a test failure with fast_abs_path() on Windows - it was 492 sensitive to the rootdir() change from version 3.07. [Steve Hay] 493 4943.07 Fri May 6 07:46:45 CDT 2005 495 496 - Fixed a bug in which the special perl variable $^O would become 497 tainted under certain versions of perl. [Michael Schwern] 498 499 - File::Spec->rootdir() was returning / on Win32. Now it returns \ . 500 [Michael Schwern] 501 502 - We now avoid modifying @_ in tmpdir() when it's not strictly 503 necessary, which reportedly provides a modest performance 504 boost. [Richard Soderberg] 505 506 - Made a couple of slight changes to the Win32 code so that it works 507 (or works better) on Symbian OS phones. [Jarkko Hietaniemi] 508 5093.06 Wed Apr 13 20:47:26 CDT 2005 510 511 (No changes in functionality) 512 513 - Added a note to the canonpath() docs about why it doesn't collapse 514 foo/../bar sections. 515 516 - The internal-only function bsd_realpath() in the XS file now uses 517 normal arg syntax instead of K&R syntax. [Nicholas Clark] 518 5193.05 Mon Feb 28 07:22:58 CST 2005 520 521 - Fixed a bug in fast_abs_path() on Win32 in which forward- and 522 backward-slashes were confusing things. [demerphq] 523 524 - Failure to load the XS code in Cwd is no longer a fatal error 525 (though failure to compile it is still a fatal error in the build 526 process). This lets Cwd work under miniperl in the core. [Rafael 527 Garcia-Suarez] 528 529 - In the t/cwd.t test, don't enforce loading from blib/ if we're 530 testing in the perl core. [Rafael Garcia-Suarez] 531 5323.04 Sun Feb 6 17:27:38 CST 2005 533 534 - For perls older than 5.006, the HAS_GETCWD symbol is not available, 535 because it wasn't checked for in older Configure scripts when perl 536 was built. We therefore just ask the user whether the getcwd() C 537 function is defined on their platform when their perl is old. 538 Maybe in the future we'll try to automate this. [Reported by 539 several parties] 540 541 - Remove lib/ppport.h from the distribution, so that MakeMaker 542 doesn't accidentally pick it up and install it as a lib 543 file. [Jerry Hedden] 544 545 - Fixed a testing error on VMS that occurred when a user had 546 read-access to the root of the current volume. [Craig A. Berry] 547 5483.03 Fri Jan 21 21:44:05 CST 2005 549 550 - Fixed a testing error if the first file we find in the root 551 directory is a symlink. [Blair Zajac] 552 553 - Added a test to make sure Cwd.pm is loaded from blib/ during 554 testing, which seems to be an issue in some people's environments 555 and makes it awfully hard to debug things on my end. 556 557 - Skip the _perl_abs_path() tests on Cygwin - they don't usually 558 pass, and this function isn't used there anyway, so I decided not 559 to push it. Let 'em use `cwd`. 560 5613.02 Sun Jan 9 19:29:52 CST 2005 562 563 - Fixed a bug in which Cwd::abs_path() called on a file in the root 564 directory returned strange results. [Bob Luckin] 565 566 - Straightened out the licensing details for the portion of the Cwd 567 module that comes from BSD sources. [Hugo van der Sanden] 568 569 - Removed the prototype from _perl_abs_path() and the XS version of 570 abs_path(), since all they seemed to be doing was causing people 571 grief, and since some platforms didn't have them anyway. 572 573 - Fixed a testing bug in which sometimes the wrong version of Cwd 574 (the version already installed on the user's machine) would get 575 loaded instead of the one we're building & installing. 576 577 - Sometimes getdcwd() returns a lower-case drive letter, so don't 578 require an upper-case letter in t/win32.t. [Jan Dubois] 579 580 - Fixed a memory leak in getdcwd() on win32. [Steve Hay] 581 582 - Added a copy of ppport.h to the distribution to aid compilation on 583 older versions of perl. [Suggested by Charlie Root] 584 585 - Don't bother looking for a 'pwd' executable on MSWin32 - there 586 won't be one, and looking for it can be extremely slow when lots of 587 disks are mounted. [Several people, including Andrew Burke] 588 589 - Eliminated a multi-argument form of open() that was causing a 590 syntax error on older versions of perl. [Fixed by Michael Schwern] 591 592 - The bug-fix changes for revision 0.90 of File::Spec somehow were 593 lost when I merged it into the PathTools distribution. They're 594 restored now. [Craig A. Berry] 595 596 - File::Spec->canonpath() will now reduce paths like '[d1.-]foo.dat' 597 down to '[000000]foo.dat' instead of '[]foo.dat' or 'foo.dat'. 598 This is in better accordance with the native filename syntax 599 parser. [Craig A. Berry] 600 601 - In order to remove a recursive dependency (PathTools -> Test-Simple 602 -> Test-Harness -> PathTools), we now include a copy of Test::More in 603 the distribution. It is only used for testing, it won't be installed 604 with the rest of the stuff. 605 606 - Removed some 5.6-isms from Cwd in order to get it to build with 607 older perls like 5.005. 608 609 - abs_path() on Windows was trampling on $ENV{PWD} - fixed. [Spotted 610 by Neil MacMullen] 611 612 - Added licensing/copyright statements to the POD in each .pm 613 file. [Spotted by Radoslaw Zielinski] 614 6153.01 Mon Sep 6 22:28:06 CDT 2004 616 617 - Removed an unnecessary and confusing dependency on File::Spec from 618 the Makefile.PL and the Build.PL. 619 620 - Added a 'NAME' entry to the Makefile.PL, because otherwise it won't 621 even begin to work. [Reported by many] 622 6233.00 Thu Sep 2 22:15:07 CDT 2004 624 625 - Merged Cwd and File::Spec into a single PathTools distribution. 626 This was done because the two modules use each other fairly 627 extensively, and extracting the common stuff into another 628 distribution was deemed nigh-impossible. The code in revision 3.00 629 of PathTools should be equivalent to the code in Cwd 2.21 and 630 File::Spec 0.90. 631 632================================================================== 633Prior to revision 3.00, Cwd and File::Spec were maintained as two 634separate distributions. The revision history for Cwd is shown here. 635The revision history for File::Spec is further below. 636================================================================== 637 638Cwd 2.21 Tue Aug 31 22:50:14 CDT 2004 639 640 - Removed "NO_META" from the Makefile.PL, since I'm not building the 641 distribution with MakeMaker anyway. [Rohan Carly] 642 643 - Only test _perl_abs_path() on platforms where it's expected to work 644 (platforms with '/' as the directory separator). [Craig A. Berry] 645 646Cwd 2.20 Thu Jul 22 08:23:53 CDT 2004 647 648 - On some implementations of perl on Win32, a memory leak (or worse?) 649 occurred when calling getdcwd(). This has been fixed. [PodMaster] 650 651 - Added tests for getdcwd() on Win32. 652 653 - Fixed a problem in the pure-perl implementation _perl_abs_path() 654 that caused a fatal error when run on plain files. [Nicholas Clark] 655 To exercise the appropriate test code on platforms that wouldn't 656 otherwise use _perl_abs_path(), run the tests with $ENV{PERL_CORE} 657 or $ENV{TEST_PERL_CWD_CODE} set. 658 659Cwd 2.19 Thu Jul 15 08:32:18 CDT 2004 660 661 - The abs_path($arg) fix from 2.18 didn't work for VMS, now it's 662 fixed there. [Craig Berry] 663 664Cwd 2.18 Thu Jun 24 08:22:57 CDT 2004 665 666 - Fixed a problem in which abs_path($arg) on some platforms could 667 only be called on directories, and died when called on files. This 668 was a problem in the pure-perl implementation _perl_abs_path(). 669 670 - Fixed fast_abs_path($arg) in the same way as abs_path($arg) above. 671 672 - On Win32, a function getdcwd($vol) has been added, which gets the 673 current working directory of the specified drive/volume. 674 [Steve Hay] 675 676 - Fixed a problem on perl 5.6.2 when built with the MULTIPLICITY 677 compile-time flags. [Yitzchak Scott-Thoennes] 678 679 - When looking for a `pwd` system command, we no longer assume the 680 path separator is ':'. 681 682 - On platforms where cwd() is implemented internally (like Win32), 683 don't look for a `pwd` command externally. This can greatly speed 684 up load time. [Stefan Scherer] 685 686 - The pure-perl version of abs_path() now has the same prototype as 687 the XS version (;$). 688 689Cwd 2.17 Wed Mar 10 07:55:36 CST 2004 690 691 - The change in 2.16 created a testing failure when tested from 692 within a path that contains symlinks (for instance, /tmp -> 693 /private/tmp). 694 695Cwd 2.16 Sat Mar 6 17:56:31 CST 2004 696 697 - For VMS compatibility (and to conform to Cwd's documented 698 interface), in the regression tests we now compare output results 699 to an absolute path. [Craig A. Berry] 700 701Cwd 2.15 Fri Jan 16 08:09:44 CST 2004 702 703 - Fixed a problem on static perl builds - while creating 704 Makefile.aperl, it was loading a mismatched version of Cwd from 705 blib/ . [Reported by Blair Zajac] 706 707Cwd 2.14 Thu Jan 8 18:51:08 CST 2004 708 709 - We now use File::Spec->canonpath() and properly-escaped regular 710 expressions when comparing paths in the regression tests. This 711 fixes some testing failures in 2.13 on non-Unix platforms. No 712 changes were made in the actual Cwd module code. [Steve Hay] 713 714Cwd 2.13 Fri Jan 2 22:29:42 CST 2004 715 716 - Changed a '//' comment to a '/* */' comment in the XS code, so that 717 it'll compile properly under ANSI C rules. [Jarkko Hietaniemi] 718 719 - Fixed a 1-character buffer overrun problem in the C code. [The BSD 720 people] 721 722Cwd 2.12 Fri Dec 19 17:04:52 CST 2003 723 724 - Fixed a bug on Cygwin - the output of realpath() should have been 725 tainted, but wasn't. [Reported by Tom Wyant] 726 727Cwd 2.10 Mon Dec 15 07:50:12 CST 2003 728 729 (Note that this release was mistakenly packaged as version 2.11, even 730 though it had an internal $VERSION variable of 2.10. Not sure how 731 THAT happened...) 732 733 - There was a dependency in the Makefile.PL on Module::Build, which 734 isn't necessary. I've removed it. 735 736Cwd 2.09 Thu Dec 11 20:30:58 CST 2003 737 738 - The module should now build & install using version 5.6 of perl. 739 740 - We now note a build-time dependency on version 0.19 of 741 Module::Build, which is necessary because we don't use the standard 742 lib/-based file layout. No version of Module::Build is required if 743 you use the Makefile.PL, just if you use the Build.PL . 744 745 - Removed some gratuitous uses of 5.6-isms like our(), with the aim 746 of backporting this module to perl 5.005. 747 748 - Simplified all code that autoloads Carp.pm and calls 749 carp()/croak(). 750 751 - Removed some redundant OS/2 code at the suggestion of Michael 752 Schwern and Ilya Zakharevich. 753 754 - Make sure the correct version of Cwd.pm is loaded in the regression 755 tests. [Sam Vilain] 756 757Cwd 2.08 Wed Oct 15 20:56 CDT 2003 758 759 - Code extracted from perl 5.8.1 and packaged as a separate CPAN 760 release by Ken Williams. 761 762================================================================== 763Prior to revision 3.00, Cwd and File::Spec were maintained as two 764separate distributions. The revision history for File::Spec is shown 765here. The revision history for Cwd is above. 766================================================================== 767 768File::Spec 0.90 Tue Aug 31 22:34:50 CDT 2004 769 770 - On VMS, directories use vmspath() and files use vmsify(), so 771 rel2abs() has to use some 'educated guessing' when dealing with 772 paths containing slashes. [Craig A. Berry] 773 774File::Spec 0.89 Sun Aug 29 19:02:32 CDT 2004 775 776 - Fixed some pathological cases on VMS which broke canonpath() and 777 splitdir(). [Richard Levitte and Craig A. Berry] 778 779 - Fixed rel2abs() on VMS when passed a unix-style relative 780 path. [Craig A. Berry] 781 782File::Spec 0.88 Thu Jul 22 23:14:32 CDT 2004 783 784 - rel2abs() on Win32 will now use the new Cwd::getdcwd() function, so 785 that things like rel2abs('D:foo.txt') work properly when the 786 current drive isn't 'D'. This requires Cwd version 2.18. 787 [Steve Hay] 788 789 - Got rid of a redundant double-backslash in a character 790 class. [Alexander Farber] 791 792 - Added much markup to pod for enhanced readability. [Andy Lester] 793 794File::Spec 0.87 Fri Dec 19 08:03:28 CST 2003 795 796 - With a one-line change in the tests, backported to perl 5.004. 797 [Issue reported by Barry Kemble] 798 799File::Spec 0.86 Fri Sep 26 10:07:39 CDT 2003 800 801 - This is the version released with perl 5.8.1. It is identical to 802 the code in the File::Spec beta 0.85_03. 803 804File::Spec 0.85_03 Mon Sep 15 09:35:53 CDT 2003 805 806 - On VMS, if catpath() receives volume specifiers in both its first 807 two arguments, it will now use the volume in the first argument 808 only. Previously it returned a non-syntactical result which 809 included both volumes. This change is the same in spirit to the 810 catpath() MacOS change from version 0.85_02. 811 812 - Fixed an abs2rel() bug on VMS - previously 813 abs2rel('[t1.t2.t3]file','[t1.t2]') returned '[t3]file', now it 814 properly returns '[.t3]file'. 815 816File::Spec 0.85_02 Fri Sep 12 17:11:13 CDT 2003 817 818 - abs2rel() now behaves more consistently across platforms with the 819 notion of a volume. If the volumes of the first and second 820 argument (the second argument may be implicit) do not agree, we do 821 not attempt to reconcile the paths, and simply return the first 822 argument. Previously the volume of the second argument was 823 (usually) ignored, resulting in sometimes-garbage output. 824 825 - catpath() on MacOS now looks for a volume element (i.e. "Macintosh HD:") 826 in its first argument, and then its second argument. The first 827 volume found will be used, and if none is found, none will be used. 828 829 - Fixed a problem in abs2rel() on Win32 in which the volume of the 830 current working directory would get added to the second argument if 831 none was specified. This might have been somewhat helpful, but it 832 was contrary to the documented behavior. For example, 833 abs2rel('C:/foo/bar', '/foo') used to return 'bar', now it returns 834 'C:/foo/bar' because there's no guarantee /foo is actually C:/foo . 835 836 - catdir('/', '../') on OS2 previously erroneously returned '//..', 837 and now it returns '/'. 838 839File::Spec 0.85_01 Thu Sep 11 16:18:54 CDT 2003 840 841 Working toward 0.86, the version that will be released with perl 5.8.1. 842 843 - The t/rel2abs2rel.t test now is a little friendlier about emitting 844 its diagnostic debugging output. [Jarkko Hietaniemi] 845 846 - We now only require() Cwd when it's needed, on demand. [Michael 847 Schwern, Tels] 848 849 - Fixed some POD errors and redundancies in OS2.pm and Cygwin.pm. 850 [Michael Schwern] 851 852 - The internal method cwd() has been renamed to _cwd(), since it was 853 never meant for public use. [Michael Schwern] 854 855 - Several methods in File::Spec::Unix that just return constant 856 strings have been sped up. catdir() has also been sped up there. 857 [Tels] 858 859 - Several canonpath() and catdir() bugs on Win32 have been fixed, and 860 tests added for them: 861 catdir('/', '../') -> '\\' (was '\..') 862 catdir('/', '..\\') -> '\\ (was '') 863 canonpath('\\../') -> '\\' (was '') 864 canonpath('\\..\\') -> '\\' (was '') 865 canonpath('/../') -> '\\' (was '\..') 866 canonpath('/..\\') -> '\\' (was '') 867 catdir('\\', 'foo') -> '\foo' (was '\\foo') 868 869 - catpath($volume, $dirs, $file) on Mac OS now ignores any volume 870 that might be part of $dirs, enabling catpath($volume, 871 catdir(rootdir(), 'foo'), '') to work portably across platforms. 872 873File::Spec 0.85 Tue Jul 22 11:31 CDT 2003 874 875 A bug-fix release relative to 0.84. I've forked development into a 876 "stable" branch (this one) and a more aggressive branch (as yet 877 unreleased), with an eye toward getting the stable features in perl 878 5.8.1. 879 880 - File::Spec::Mac->case_tolerant() returned 0 when it should have 881 returned 1. 882 883 - Many cases in File::Spec::Win32->abs2rel() were broken, because of 884 the way in which volumes were/weren't ignored. Unfortunately, part 885 of the regression tests were broken too. Now, if the $path 886 argument to abs2rel() is on a different volume than the $base 887 argument, the result will be an absolute path rather than the 888 broken relative path previous versions returned. 889 890 - Fixed a problem in File::Spec::Win32->canonpath, which was turning 891 \../foo into "foo" rather than \foo 892 893 - Greatly simplified the code in File::Spec::Unix->splitdir(). 894 895File::Spec 0.84_01 Fri Jul 11 16:14:29 CDT 2003 896 897 No actual code changes, just changes in other distribution files 898 899 - Dependencies are now listed explicitly in the Makefile.PL and 900 Build.PL scripts, as well as in the META.yml file. 901 902 - The t/abs2rel2abs.t test should now be more friendly about skipping 903 on platforms where it can't run properly. 904 905File::Spec 0.84 Wed Jul 9 22:21:23 CDT 2003 906 907 I (Ken)'ve taken the changes from bleadperl and created a new CPAN release 908 from them, since they're pretty important changes. The highlights, 909 from what I can tell, are listed here. 910 911 - A huge number of changes to File::Spec::Mac in order to bring it in 912 line with the other platforms. This work was mostly/completely 913 done by Thomas Wegner. 914 915 - The Epoc and Cygwin platforms are now supported. 916 917 - Lots of generically-applicable documentation has been taken from 918 File::Spec::Unix and put in File::Spec. 919 920 - A Build.PL has been provided for people who wish to install via 921 Module::Build. 922 923 - Some spurious warnings and errors in the tests have been 924 eliminated. [Michael Schwern] 925 926 - canonpath() on File::Spec::Unix now honors a //node-name at the 927 beginning of a path. 928 929 - Cwd.pm wasn't being loaded properly on MacOS. [Chris Nandor] 930 931 - Various POD fixups 932 933 - Several testing patches for the Epoc and Cygwin platforms [Tels] 934 935 - When running under taint mode and perl >= 5.8, all the tmpdir() 936 implementations now avoid returning a tainted path. 937 938 - File::Spec::OS2 now implements canonpath(), splitpath(), 939 splitdir(), catpath(), abs2rel(), and rel2abs() directly rather 940 than inheriting them from File::Spec::Unix. 941 942 - Added 'SYS:/temp' and 'C:/temp' to the list of possible tmpdir()s 943 on Win32. 944 945 - catfile() on Win32 and VMS will now automatically call canonpath() 946 on its final argument. 947 948 - canonpath() on Win32 now does a much more extensive cleanup of the 949 path. 950 951 - abs2rel() on Win32 now defaults to using cwd() as the base of 952 relativity when no base is given. 953 954 - abs2rel() on Win32 now explicitly ignores any volume component in 955 the $path argument. 956 957 - canonpath() on VMS now does []foo ==> foo, and foo.000000] ==> foo]. 958 It also fixes a bug in multiple [000000.foo ==> [foo translations. 959 960 - tmpdir() on VMS now uses 'sys$scratch:' instead of 'sys$scratch'. 961 962 - abs2rel() on VMS now uses '000000' in both the path and the base. 963 964File::Spec 0.82 Wed Jun 28 11:24:05 EDT 2000 965 - Mac.pm: file_name_is_absolute( '' ) now returns TRUE on all platforms 966 - Spec.pm: unbreak C<$VERSION = '0.xx'> to be C<$VERSION = 0.xx>, so 967 underscores can be used when I want to update CPAN without anyone 968 needing to update the perl repository. 969 - abs2rel, rel2abs doc tweaks 970 - VMS.pm: get $path =~ /\s/ checks from perl repository. 971 - Makefile.PL: added INSTALLDIRS => 'perl', since these are std. modules. 972 - Remove vestigial context prototypes from &rel2abs until some future 973 arrives where method prototypes are honored. 974