summaryrefslogtreecommitdiff
path: root/dist/Cwd
Commit message (Collapse)AuthorAgeFilesLines
* Move Cwd and List-Util to folders named as per their CPAN distributionsSteve Hay2013-10-2421-6627/+0
|
* Up the version of File::Spec from 3.44 to 3.45Brian Fraser2013-09-219-9/+9
| | | | | Commit adf4621acac did this for Cwd.pm. but not for File::Spec and family, which belong to the same distribution.
* Removed the ifdefs for INCOMPLETE_TAINTSBrian Fraser2013-09-212-9/+1
| | | | | This was added in 5.5/5.6 as a backwards-compatibility measure when taint was extended to happen in more places.
* In Cwd's THX_unix_canonpath add two casts from (void*) to keep C++ sweet.Nicholas Clark2013-08-171-2/+2
| | | | | The new XS implementation of various File::Spec methods needs a couple of casts to compile with a C++ compiler.
* File::Spec in XSZefram2013-08-1714-34/+401
| | | | | | | | | | | | | | | | | | Reimplement parts of File::Spec in XS. Mainly File::Spec::Unix methods. The methods can be used as methods on File::Spec::Unix, as methods inherited by File::Spec::$notunix, and as standalone functions. Quite a lot of complexity comes from making them work in all of these roles, without the compatibility damaging the performance of any of them. The methods therefore need to check their invocant, using C code where the invocant is File::Spec::Unix, and calling other methods if it is not, so that they play nicely in composition with other methods. The standalone function is another XS entry point, entirely unencumbered by OO interface paraphernalia. File::Spec::Functions is modified to pick up the separate function version. There is new logic for File::Spec to fall back to pure Perl, in the way that Cwd.pm already does, for XS-impaired systems.
* Add the upstream Makefile.PL for CwdNicholas Clark2013-08-171-0/+27
| | | | | This needs to return to the perl repository because the upcoming change to Cwd needs to patch to include extra logic not in the auto-generated Makefile.PL
* _perl_abs_path() symlink tests fail on QNX NeutrinoChris 'BinGOs' Williams2013-08-021-1/+1
|
* Resolve File::Spec test failures on QNX NeutrinoChris 'BinGOs' Williams2013-08-021-1/+2
|
* Fix file_name_is_absolute on VMS for device without a directory.Craig A. Berry2013-07-142-2/+6
| | | | | | | | | | | | To be considered absolute, we had been requiring a file spec to have a bracketed directory spec after the colon. This meant that very common and idiomatic expressions such as sys$login:login.com or sys$manager:operator.log were not considered absolute. Which is wrong. So we now consider a file spec starting with a valid device name (which would also be a valid logical name) followed by an unescaped colon to be absolute.
* Increase $File::Spec::Win32::VERSION to 3.42Father Chrysostomos2013-06-221-1/+1
|
* Increase $File::Spec::VMS::VERSION to 3.42Father Chrysostomos2013-06-221-1/+1
|
* Fixed verbatim lines in POD over 79 charactersBrian Gottreu2013-06-222-6/+6
|
* Increase $File::Spec::VERSION to 3.41Father Chrysostomos2013-06-101-1/+1
| | | | | to match the version number increases in some of the submodules and to make the perldelta entry easier to describe.
* Increase some File::Spec versions to 3.41Father Chrysostomos2013-06-086-6/+6
|
* Correct File::Spec POD about tainting and tmpdirFather Chrysostomos2013-06-083-3/+3
| | | | Since version 3.39_01, the taint check has applied before 5.8.0, too.
* [perl #89940] File::Spec->tmpdir and env changesFather Chrysostomos2013-06-087-19/+59
| | | | | | | | | | If the environment changes, File::Spec->tmpdir should respect that and recalculate the temp directory. The only objection raised in the ticket was that File::Spec is already accused of being too slow, so removing the cache would not be a good idea. So I put in a check to see whether the relevant environment variables have changed since the last call to tmpdir.
* File::Spec::Epoc: Small pod clean-upFather Chrysostomos2013-06-081-3/+3
|
* typo fixes for CwdDavid Steinbrunner2013-05-252-4/+4
| | | | Bump $VERSION.
* Cwd/File::Spec version bump to 3.40Steffen Mueller2013-01-1610-11/+11
|
* Cwd::fast_abs_path's untaint should allow for multiline directoriesJoel Berger2012-12-031-2/+2
| | | | | | | | This bug was noticed via https://github.com/dagolden/file-chdir/issues/3 and testing has led to this being the cause. The problem is worse on some platforms (notably cygwin in this case) when abs_path is implemented by fast_abs_path. Since File::chdir tests for proper behavior when a directory contains a newline, this bug then breaks File::chdir (one of my favorites and very useful xplatform tool). Yes this should have tests, but since it will involve creating a directory with a newline, I thought I would do better to leave that to someone with better knowledge than I.
* [perl #115962] cwd.t: Add test for fast_abs_path in LF dirFather Chrysostomos2012-12-031-1/+11
|
* Remove "register" declarationsKarl Williamson2012-11-242-2/+2
| | | | | | | This finishes the removal of register declarations started by eb578fdb5569b91c28466a4d1939e381ff6ceaf4. It neglected the ones in function parameter declarations, and didn't include things in dist, ext, and lib, which this does include
* Add C define to remove taint support from perlSteffen Mueller2012-11-051-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By defining NO_TAINT_SUPPORT, all the various checks that perl does for tainting become no-ops. It's not an entirely complete change: it doesn't attempt to remove the taint-related interpreter variables, but instead virtually eliminates access to it. Why, you ask? Because it appears to speed up perl's run-time significantly by avoiding various "are we running under taint" checks and the like. This change is not in a state to go into blead yet. The actual way I implemented it might raise some (valid) objections. Basically, I replaced all uses of the global taint variables (but not PL_taint_warn!) with an extra layer of get/set macros (TAINT_get/TAINTING_get). Furthermore, the change is not complete: - PL_taint_warn would likely deserve the same treatment. - Obviously, tests fail. We have tests for -t/-T - Right now, I added a Perl warn() on startup when -t/-T are detected but the perl was not compiled support it. It might be argued that it should be silently ignored! Needs some thinking. - Code quality concerns - needs review. - Configure support required. - Needs thinking: How does this tie in with CPAN XS modules that use PL_taint and friends? It's easy to backport the new macros via PPPort, but that doesn't magically change all code out there. Might be harmless, though, because whenever you're running under NO_TAINT_SUPPORT, any check of PL_taint/etc is going to come up false. Thus, the only CPAN code that SHOULD be adversely affected is code that changes taint state.
* File::Spec::Unix: Fix pod linkFather Chrysostomos2012-05-261-1/+2
|
* Increase $File::Spec::Unix::VERSION to 3.39_03Father Chrysostomos2012-05-261-1/+1
|
* Tests for perl #111510Volker Schatz2012-05-261-0/+4
|
* [perl #111510] File::Spec::UNIX->abs2rel() gets it wrong with ".." componentsVolker Schatz2012-05-261-23/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | File::Spec::UNIX->abs2rel() returns wrong results in a few cases, most of which involve ".." path components. To reproduce, paste the following test cases into: perl -MFile::Spec::Unix -n -e 'print File::Spec::Unix->abs2rel(split),"\n";' ../foo bar/bat bar/bat ../foo foo bar/../bat . . / / Correct results when run at /home/me and no symlinks in base path: ../../../foo ../me/bar/bat ../foo . . Results for File::Spec::Unix from PathTols 3.33: ../../foo ../bar/bat ../../../foo / / The error in the first test case is due to an optimisation applied when both arguments are relative paths, which prepends "/" instead of the current directory. "/../" is then converted to "/" by canonpath(). I have replaced this optimisation by a single call to _cwd() in the following patch. This also fixes the fourth test case. Besides, I have moved checks which make sense only for absolute path arguments to the first branch of the if. (hunk @@ -366,28 +367,32 @@) The error in the last test case arises because a root dir $base is treated specially, and catdir() does not work well for fewer than two path components. The first added line in the following patch catches that. As regards the second and third test case, they can be solved without consulting the filesystem only if no symlinks are involved. Whereever $path contains .. components, the corresponding directory has to be descended into. The following patch does this. (hunk @@ -395,19 +400,39 @@) It can be impossible for abs2rel() to work correctly without looking at the filesystem if $base contains symlinks. I understand from the documentation that the File::Spec modules are not meant to consult the filesystem. Even though the docs state that abs2rel() does not consult the filesystem, the implications could perhaps be made clearer, for example like this: (hunk @@ -352,9 +352,10 @@)
* Bump Cwd, File::Spec version.Craig A. Berry2012-02-179-9/+9
|
* Rethink EFS in File::Spec::VMS.Craig A. Berry2012-02-172-636/+180
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ae5a807c7dcf made extensive changes to File::Spec on VMS, nominally to support Extended Filename Syntax (EFS). The idea behind the changes was that with EFS in effect, the File::Spec functions can guess at whether incoming file specifications are in Unix format or VMS format and provide output in the same format as the input. This principle is in some ways desireable in that round-trip conversions do have the potential to lose information and it sounds like a nice bit of DWIMmery. However, in practice it leads to its being a crap shoot what format you'll get back, and in some really important cases (such as MakeMaker's assembly of paths for external build utilities) you really have to know which syntax you have and you may really have to have native syntax, which has always been the default. It's also impossible to guess in some of the more common use cases, such as a splitdir followed by catdir, where catdir has no way of knowing what delimiters were discarded by splitdir, and thus no hints about what syntax the original path was in. Plus there were numerous problems with the implementation, which broke the build when EFS was in effect and didn't pass very many of its own tests (which it had inadvertently disabled, since fixed in 06ecd9c7d6f). Plus EFS isn't primarily about Unix syntax versus VMS syntax but about allowing additional characters, such as multiple dots in filenames or any dots in directory names. The only real difference for the File::Spec functions should be that they now need to avoid splitting on traditional delimiters if those characters are escaped with the caret (^) character. So revert most of ae5a807c7dcf, and sprinkle negative look-behind assertions liberally so that we correctly recognize when traditional delimiters have been escaped and are not being used as delimiters. The partial support for Unix reporting mode (where we explicitly request that output file specifications are in Unix format regardless of input format) is left in place. It's somewhat less partial than it was, but still incomplete.
* Increase $Cwd::VERSION to 3.39_02Father Chrysostomos2012-02-031-1/+1
|
* Load File::Spec before using it in CwdEric Brine2012-02-031-0/+1
|
* Stop inadvertently skipping Spec.t on VMS.Craig A. Berry2012-01-141-4/+4
| | | | | | | | | ae5a807c7dcf moved a check against $@ away from the eval it was checking and inserted another eval in between, the effect of which was to make the tests that can only run on VMS get skipped there too. Ouch. There are other problems with ae5a807c7dcf, but this is a start.
* Use tr/_// instead of eval $VERSIONSteffen Mueller2011-12-2010-20/+20
| | | | | | Also bumps the version of all contained modules to 3.39_01, which is the version of a new PathTools CPAN release (and the code is in sync with this commit).
* Cwd pod consistency tweaksFather Chrysostomos2011-12-171-5/+5
|
* [rt.cpan.org #45885] File::Spec: Don’t use tainted tmpdir in 5.6Father Chrysostomos2011-12-162-2/+22
| | | | | | Perl 5.6 doesn’t have ${^TAINT}, so the taint check in File::Spec::Unix->_tmpdir was skipped. This commit adds a taint check using eval { eval $safe_substring } for 5.6.
* Version bumpsif-0.0602Father Chrysostomos2011-11-221-1/+1
|
* [RT #36079] Convert ` to '.jkeenan2011-11-222-6/+6
|
* Keep verbatim pod in File::VMS/Win32 within 80 colsFather Chrysostomos2011-08-092-4/+6
|
* Keep verbatim pod in File::Mac/Unix within 80 colsFather Chrysostomos2011-08-092-12/+18
|
* Keep verbatim pod in File::Spec within 80 colsFather Chrysostomos2011-08-091-3/+5
|
* In Cwd.xs, tidy the conditional code related to symlinks.Nicholas Clark2011-07-061-8/+9
| | | | | | | | | | Move the variable symlink inside the conditionally compiled code, to avoid on platforms which don't have symlinks about an unused variable. Move the pre-processor directives back to column zero - they were indented as part of the upgrade to PathTools 3.26_01 in c7304ea2604337d2. Correct the indentation of some lines [always just a closing '}'], which was making the code harder to follow. All these lines seem to have been left unaltered by c7304ea2604337d2, when code surrounding them changed.
* Remove duplicate $VERSION handling code, made redundant in 3.28_01Nicholas Clark2011-07-051-3/+0
|
* In Cwd.xs, swap to defaulting to disabled prototypes.Nicholas Clark2011-06-221-3/+2
| | | | | As only 1 function enables prototypes, it seems sensible to set the default to the majority case.
* Merge the implementation of Cwd::{fastcwd,getcwd} using ALIAS.Nicholas Clark2011-06-221-13/+5
|
* In Cwd.xs on VMS, don't compile bsd_realpath() at all.Nicholas Clark2011-06-221-13/+14
| | | | | | | | | On VMS, call Perl_rmsexpand() directly from abs_path(), instead of making bsd_realpath() a trivial wrapper to Perl_rmsexpand(). Initialise path at the point of declaration, instead of separately. Use sv_setpv_mg() instead of sv_setpvn() with an explicit strlen(), changing PUSHTARG to PUSHs(TARG) to avoid setting magic twice.
* Add PERL_NO_GET_CONTEXT to Cwd.Nicholas Clark2011-06-221-0/+2
|
* In Cwd::_win32_cwd() avoid a string eval when checking if we're miniperl.Nicholas Clark2011-06-221-2/+9
| | | | | | | | | | To allow ExtUtils::MakeMaker to run tests as if it's "miniperl" we need to avoid taking any sort of reference to the typeglob or the code in the optree, as its test modules are loaded later than Cwd. Previously this was done with a string eval, but that was causing problems (for unclear reasons - rt.cpan.org #56225). Using a symbol table lookup and *foo{THING} syntax avoids the string eval. Evolved from a suggestion by Reini Urban.
* dist/Cwd/lib/File/Spec/Win32.pm: Fix broken linkKarl Williamson2011-05-181-2/+2
|
* Revert "In Cwd, convert two regexps to explicit ranges, instead of using /i"Karl Williamson2011-03-021-3/+3
| | | | | This reverts commit be6c6a23f06d680159ce323c1906d297abbe85cd. The performance issue that prompted this commit has been fixed.
* In Cwd, convert two regexps to explicit ranges, instead of using /iNicholas Clark2011-02-041-3/+3
| | | | | | | | | Since change 56ca34cada940c7f moved the folding of ranges from runtime to compile time, these VMS-only regexps would incur a startup cost penalty on all platforms. This also removes build-time warnings when Cwd is invoked before the Unicode tables have been processed.