In [.vms]vms.c, do_tounixspec(), we now convert sys$scratch to tmp
using the code below. This breaks things that convert to unix specs
for convenience and then convert back to VMS specs. Such as:
$ perldoc -f opendir
Error in tempfile() using tmp:XXXXXXXXXX: Could not create temp file
tmp:x8rVYNDDzE: no such device or address at
/perl_root/lib/Pod/Perldoc.
pm line 1507
%SYSTEM-F-ABORT, abort
There is no "tmp:" device so you can't create a temporary file there.
So, I'm curious, since /sys$scratch is just as valid a unix fiile
spec as /tmp, why replace it?
/* Also handle special case "SYS$SCRATCH:" */
#if __CRTL_VER < 70000000
cmp_rslt = strncmp(spec,"SYS$SCRATCH:", 12);
if (cmp_rslt != 0)
cmp_rslt = strncmp(spec,"sys$scratch:", 12);
#else
cmp_rslt = strncasecmp(spec,"SYS$SCRATCH:", 12);
#endif
tmp = PerlMem_malloc(VMS_MAXRSS);
if (tmp == NULL) _ckvmssts(SS$_INSFMEM);
if (cmp_rslt == 0) {
int islnm;
islnm = my_trnlnm(tmp, "TMP", 0);
if (!islnm) {
strcpy(rslt, "/tmp");
cp1 = cp1 + 4;
cp2 = cp2 + 12;
if (spec[12] != '\0') {
cp1[4] == '/';
cp1++;
cp2++;
}
}
}
--
________________________________________
Craig A. Berry
mailto:[EMAIL PROTECTED]
"... getting out of a sonnet is much more
difficult than getting in."
Brad Leithauser