Jos I. Boumans wrote:
On 21 Aug 2007, at 05:05, John E. Malmberg wrote:
In Extract.pm, upper case options to commands must be enclosed in
double quotes. This seems to only affect the UNZIP command.
In 01_Archive-Extract.t, to compare directory components in VMS
syntax, the trailing "]" needs to be removed.
--- /rsync_root/perl/lib/Archive/Extract/t/01_Archive-Extract.t
Mon May 28 07:33:43 2007
+++ lib/Archive/Extract/t/01_Archive-Extract.t Thu Aug 16 23:06:18
2007
@@ -362,6 +362,10 @@
### if something went wrong with determining
the out
### path, don't go deleting stuff.. might be
Really Bad
my $out_re = quotemeta( $OutDir );
+
+ # Remove the directory terminator from regex
+ my $out_re = s/\\\]// if IS_VMS;
+
if( $ae->extract_path !~ /^$out_re/ ) {
ok( 0, "Extractpath WRONG (".$ae-
>extract_path.")");
skip( "Unsafe operation -- skip
cleanup!!!" ), 1;
This doesn't seem to do at all what you intend -- it *redefines* $out_re
to be the result of a substitution on $_... what did you mean to do
exactly?
All I meant to do was remove the trailing "]" from the existing $out_re.
Clearly I messed up.
It is also possible that instead of a trailing "]" there could be a
trailing ">", but that opens up another can of worms as it means the
leading delimiter of the directory component is a "<" instead of the
usual "[". I am not sure how well Perl can deal with the "<xxx> form of
VMS directory syntax.
And shouldn't this be done in the library rather than in the test suite?
I do not think so. The library was returning the directory asked for,
and that is what an application would expect.
It appeared to me that the test was trying to do a check that one path
was contained in another. In VMS, when the file spec is in VMS syntax,
the directory specification is terminated with either a "]" or a ">".
Usually it is "]", and when Perl on VMS does a UNIX to VMS conversion it
always returns "]"
So if a parent directory is [.foo] and the child directory is
"[.foo.bar]" and you want to test this with a string compare, you must
at a minimum remove the trailing "]" from the parent.
For a robust compare, you must separate the file spec components and
remove the "[]<>" delimiters.
And delimiters preceded by "^" in a VMS file specification are not
delimiters. "^" is a quote meta character to pass through special
characters with out interpretation. Most of Perl can not yet handle
that feature of VMS file specifications.
-John
[EMAIL PROTECTED]
Personal Opinion Only