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

Reply via email to