summaryrefslogtreecommitdiff
path: root/ext/VMS-Filespec
Commit message (Collapse)AuthorAgeFilesLines
* Remove inheritance from Exporter in ext/ modulesMax Maischein2021-06-251-6/+5
| | | | | | | | | | | | | | | | | Inheriting from Exporter adds several subroutines that are not really needed by these modules. The remaining uses of inheritance from Exporter are: re.pm - this uses export_to_level(), which really, really wants the inheritance # Conflicts: # ext/File-Find/lib/File/Find.pm # ext/File-Glob/Glob.pm # ext/GDBM_File/GDBM_File.pm # ext/Opcode/Opcode.pm # ext/Pod-Html/lib/Pod/Html.pm
* Fix missing break in tovmsspec.Craig A. Berry2017-08-121-0/+1
| | | | | | When encountering a question mark in a filespec being converted from Unix to VMS format, we were inadvertently adding an escaped space because of a missing break in a switch.
* Fix unixify when beginning with current directory.Craig A. Berry2015-05-061-0/+3
| | | | | | | | | | | | | | | | | | VMS::Filespec::unixify has been truncating its return value and returning early when the input begins with [] meaning the current directory. If there was nothing else, we've been getting the right answer: [] --> ./ but if there was a file portion of the name it's been getting omitted: []foo.txt --> ./ which is now fixed. Looks like it's been broken since inception in 5.002, though only with the specific [] case and not if there was an explicit device or directory name.
* Unescape directory portion of path in unixify.Craig A. Berry2014-12-041-1/+3
| | | | | Basically I missed a spot in 812e68ff314e, so the escaped space in [foo^_bar], for example, was not translated correctly.
* Escape EFS for directory portion in tovmsspec.Craig A. Berry2014-11-181-0/+2
| | | | | | | | | | | For some reason extended characters were only being escaped in the final component of the path, but not in the directory portion, the one exception being dots. We need to give the entire path the same treatment. There is probably considerable opportunity for further consolidation and refactoring in what we escape, but at least now ../foo bar/ correctly becomes [-.foo^_^_bar]. The reverse case has similar problems and is a TODO.
* Fix start-of-string error in tovmsspec.Craig A. Berry2014-09-281-0/+2
| | | | | | | | | | | When translating a filespec starting with an extended character, say C<+foo>, from Unix to VMS format, we were inadvertently skipping over the first character and thus not translating it to C<^+foo> with the caret escape prepended to the plus sign as we should have been. This fixes a fairly new test failure in ExtUtils::Manifest where a filename starts with a single quote.
* Smarter handling of escaped semicolons in vmsify.Craig A. Berry2014-03-061-0/+2
| | | | | | | | | | | In theory, a Unix-format filespec can contain a semicolon and thus need to be escaped when converted to a VMS-format filespec. But a much more common use case is a filespec that has a version number despite being in Unix format. So detect a semicolon that delimits a version specification and pass it through but escape other semicolons. This is apparently what decc$to_vms does, so we're being consistent with the CRTL.
* Make fileify handle node specifications better.Craig A. Berry2014-01-251-0/+2
| | | | | | | | | In particular, a node specification containing only a single directory (i.e., node::dev:[dir]) was not being handled properly. This came up while reproducing the problem in [perl #121002] but was not the cause of that problem as the OP's directory had multiple subdirectories in it.
* Fix unescaped first character in tovmsspec.Craig A. Berry2013-12-201-1/+3
| | | | | | | | | | | | | | | | Passing a path to int_tovmsspec that contained an "extended" character as the first character when converting a Unix filespec to VMS format skipped escaping that character, but only when the path spec had no directory component. The character that didn't get escaped could then be passed to a native service that choked or incorrectly processed it. For example ' foo.txt' remained, after translation, ' foo.txt', but parsing that as a native spec would squeeze out the leading space. So we now make sure we don't eat the first character of the filename component while processing the directory component and also handle escaping the very first character. In the example of ' foo.txt', it now gets correctly translated to '^_foo.txt'.
* Fix ext/VMS-Filespec/t/filespec.t after move in 2d11a7e9678a88.Craig A. Berry2013-07-041-3/+1
| | | | | | | | Moving it caused it to fail because it expected test.pl to exist in the directory it's being run from, but that isn't the case anymore. We can now just depend on the test infrastructure to control @INC and don't need any special handling of library directories.
* Move VMS::Filespec from vms/ext to ext/Nicholas Clark2013-07-022-0/+630
This simplifies the VMS Makefile. It would have simplified the VMS Makefile further if it had had the correct rules to delete [.lib.VMS]Filespec.pm which are now no longer needed. (The generated ext/VMS-Filespec/DESCRIP.MMS will now take care of this.)