For OpenVMS long filename support, I will need to set the macro
MAXPATHLEN to the proper size of either 256 or 4096 depending on the
platform and version.
In order to do that through other macros, rmsdef.h would need to be
included in vmsish.h instead of in vms.h and other modules.
Also to fix several problems seen in the glob support on OpenVMS and add
proper EFS character support, I need to make similar changes to it as in
the submitted patches to the Perl_readdir and Perl_opendir routines.
Glob is currently broken for 'foo[xxx]' and the './foo/*' cases, which
are currently not being tested for in the Perl self tests.
It looks like rather than making the new routines public instead of
static, it may be better to do what Craig Berry suggested earlier, to
move the VMS specific glob code from doio.c into vms.c. That way the
optimizer can work at it's best and inline/trim several commonly used
subroutines.
So what I am looking at doing is creating a routine named:
PerlIO *
Perl_vms_start_glob
(pTHX_ SV *tmpglob,
IO *io,
SV * const tmpcmd,
PerlIO *fp)
in vms/vms.c and then moving the vms glob code there, and have
Perl_start_glob() call it.
And then I can start fixing the VMS to UNIX conversions to handle EFS
characters properly. With the EFS escape characters, it is not
practical to scan a file specification backwards for delimiter
characters, so those conversions need to be changed to use SYS$FILESCAN
for finding the delimiters.
-John
[EMAIL PROTECTED]
Personal Opinion Only