Hi Peter

I have a feeling that USER is one of those logical names that get's us in
trouble.

We've had a system level concealed logical name of USER since day one, as
the system derives from (as in it's the same system management environment)
MicroVMS 4.x. USER is defined that way on MicroVMS, or at least that was one
of the default definitions that came with the box. I think I've whined about
this once in the past; perl on VMS should be aware of this as a possibly
"standard" vms logical name.

Oh, I think I hit a problem in one of Dan's extensions, but that's not
relevant here.

So, you are saying that because you do a

$   mount  /system $1$DKB100: USER

you get the systme logical disk$user (translates to _$1$DKB100:), and that
you have the concealed logical

$   DEFINE /SYSTEM /TRANSLATION_ATTRIBUTES=(CONCEAL,TERMINAL) USER
DKB100:[u.]

 somehow lib$fid_to_name is confusing disk$user with the concealed logical
user? That's a VMS bug...

[EMAIL PROTECTED]
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]

> >Thus lib$fid_to_name() apparently feels compelled to change a perfectly
OK
> >device name doing s/\Q_SNFRN$DKB100\E/USER/ for some odd reason.  The bug
is
> >Compaq's and I now have to hunt up a patch :-{

OK I now have to retract that assertion.  There is not necessarily a bug in
lib$fid_to_name().  See below...

>  o  The  stat()  function  has  been  corrected  to  process   file
>          specifications  such as "foo:[000000]", where foo is defined as
>          a concealed device like the following:
> 
>              $ define/trans=(conc) foo device:[bar.]
> 
>          Prior to this fix, the stat() function would fail  for  such  a
>          file  specification  with  errno set to ENOENT (No such file or
>          directory).

And while there is a DISK$USER:[VMSPERL.VMS]WRITEMAIN.PL;1 there is no
USER:[VMSPERL.VMS]WRITEMAIN.PL;1 since there is no VMSPERL.DIR in
DKB100:[U].
...
Perhaps Perl_cando() ought to trust the return from stat() rather than
making use of the apparently untrustworthy lib$fid_to_name().  This bug
will bite folks who use perl to mess about with SYS$COMMON among other 
things.

Peter Prymmer
   
P.S. The y2k patches to vms (which were installed on the machine in
question) 
included a fix to lib$fid_to_name() that merely did the following:

  o  LIB$FID_TO_NAME has been modified to ensure  that  the  use  of
     very deep directory trees do not result in the call stack being
     corrupted.

but that is still not relevant to the problem of vms.c using
LIB$FID_TO_NAME.

Reply via email to