The VMS parsing routines were failing on files that the process
currently did not have access to, instead of falling back to a syntax
only check.
We may want to consider always falling back to a syntax only check as
there may be more non-fatal return codes of these type.
-John
[EMAIL PROTECTED]
Personal Opinion Only
--- /ref2_root/perl/vms/vms.c Sun Dec 7 08:47:36 2008
+++ vms/vms.c Sun Dec 7 08:53:17 2008
@@ -5478,10 +5478,13 @@
/* Could not find the file, try as syntax only if error is not fatal */
rms_set_nam_nop(mynam, NAM$M_SYNCHK);
- if (retsts == RMS$_DNF || retsts == RMS$_DIR || retsts == RMS$_DEV) {
+ if (retsts == RMS$_DNF ||
+ retsts == RMS$_DIR ||
+ retsts == RMS$_DEV ||
+ retsts == RMS$_PRV) {
retsts = sys$parse(&myfab,0,0);
if (retsts & STS$K_SUCCESS) goto expanded;
- }
+ }
/* Still could not parse the file specification */
/*----------------------------------------------*/
@@ -6047,7 +6050,9 @@
for (cp = trndir; *cp; cp++)
if (islower(*cp)) { haslower = 1; break; }
if (!((sts = sys$parse(&dirfab)) & STS$K_SUCCESS)) {
- if ((dirfab.fab$l_sts == RMS$_DIR) || (dirfab.fab$l_sts == RMS$_DNF)) {
+ if ((dirfab.fab$l_sts == RMS$_DIR) ||
+ (dirfab.fab$l_sts == RMS$_DNF) ||
+ (dirfab.fab$l_sts == RMS$_PRV)) {
rms_set_nam_nop(dirnam, NAM$M_SYNCHK);
sts = sys$parse(&dirfab) & STS$K_SUCCESS;
}