summaryrefslogtreecommitdiff
path: root/dist/Cwd
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* Remove Mac OS classic special case code from Cwd's cwd.tNicholas Clark2011-01-221-4/+0
|
* Convert File::Spec's remaining tests to Test::More from Test.Nicholas Clark2011-01-223-43/+33
|
* Remove Mac OS classic only tests from Cwd's Spec.tNicholas Clark2011-01-221-38/+3
| | | | | | As MacOS was the only platform with platform-only tests, we can also remove the entire skip-if-not-this-platform infrastructure. Also, as tryfunc() is only called from one place, inline it.
* Bumped Cwd and File::Spec versions for release per cmpVERSION.plJesse Vincent2011-01-203-3/+3
|
* Fix typos (spelling errors) in dist/*Peter J. Acklam) (via RT2011-01-075-10/+10
| | | | | | | | | # New Ticket Created by (Peter J. Acklam) # Please include the string: [perl #81888] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=81888 > Signed-off-by: Abigail <abigail@abigail.be>
* bump version of many modulesZefram2010-12-191-1/+1
| | | | | Core-only modules that have changed from v5.13.7, and dual-life modules that have changed from v5.13.7 and didn't show up in earlier passes.
* fix various compiler warnings from XS codeZefram2010-12-111-2/+2
| | | | | | | | | | | Trivial changes to fix warnings of types * unclear precedence * assignment as conditional * signed/unsigned mixing * unused parameter/variable * value computed not used * wrong argument type for a printf format * variable may be used uninitialised (due to unhandled switch case)
* perldelta and version bump for CwdFather Chrysostomos2010-10-031-1/+1
|
* [perl #51562] Problem & "solution" for building 5.10.0 w/win32+mingw+dmakekmx2010-10-031-1/+8
| | | | Run `cd`, rather than `cmd /c cd`, in miniperl on Windows.
* Upgrade PathTools to 3.33Steffen Mueller2010-09-2010-10/+10
| | | | | This is just a version bump to make the versions in blead and CPAN match.
* Upgrade PathTools from version 3.31_02 to 3.32Florian Ragwitz2010-09-2010-11/+12
|
* Do not ship the PathTools ChangesSteffen Mueller2010-09-051-823/+0
| | | | | There is no reason (I can think of) to track and ship the PathTools CPAN change log in core perl.
* Move PathTools from cpan/ to dist/Florian Ragwitz2010-07-2420-0/+7437