In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/676447f97ffb271ba1d701a022cd865c74881286?hp=13203cefecd569a75ed961c9e4d3bf203d241f08>
- Log ----------------------------------------------------------------- commit 676447f97ffb271ba1d701a022cd865c74881286 Author: Craig A. Berry <[email protected]> Date: Sun Sep 28 21:04:54 2014 -0500 Fix start-of-string error in tovmsspec. 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. ----------------------------------------------------------------------- Summary of changes: ext/VMS-Filespec/t/filespec.t | 2 ++ vms/vms.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ext/VMS-Filespec/t/filespec.t b/ext/VMS-Filespec/t/filespec.t index c14ce99..0f31f85 100644 --- a/ext/VMS-Filespec/t/filespec.t +++ b/ext/VMS-Filespec/t/filespec.t @@ -106,6 +106,7 @@ __some_:<__where_.__over_>__the_.__rainbow_ unixify /__some_/__where_/__over_ [...] unixify .../ ^ __lyrics_:[__are_.__very_^.__sappy_]__but_^.__rhymes_^.__are_.__true_ unixify /__lyrics_/__are_/__very_.__sappy_/__but_.__rhymes_.__are_.__true_ ^ [.$(macro)] unixify $(macro)/ ^ +^+foo.tmp unixify +foo.tmp ^ # and back again /__some_/__where_/__over_/__the_.__rainbow_ vmsify __some_:[__where_.__over_]__the_.__rainbow_ ^ @@ -129,6 +130,7 @@ __some_/__where_/... vmsify [.__some_.__where_...] ^ ./$(m+ vmsify []$^(m^+ ^ foo-bar-0^.01/ vmsify [.foo-bar-0_01] [.foo-bar-0^.01] \ foo.tmp vmsify ^_foo.tmp ^ ++foo.tmp vmsify ^+foo.tmp ^ # Fileifying directory specs __down_:[__the_.__garden_.__path_] fileify __down_:[__the_.__garden_]__path_.dir;1 ^ [.__down_.__the_.__garden_.__path_] fileify [.__down_.__the_.__garden_]__path_.dir;1 ^ diff --git a/vms/vms.c b/vms/vms.c index 75e4cce..cca6c48 100644 --- a/vms/vms.c +++ b/vms/vms.c @@ -8695,7 +8695,7 @@ static char *int_tovmsspec case '|': case '<': case '>': - if (cp2 > path && *(cp2-1) != '^') /* not previously escaped */ + if (cp2 >= path && *(cp2-1) != '^') /* not previously escaped */ *(cp1++) = '^'; *(cp1++) = *(cp2++); break; -- Perl5 Master Repository
