"Craig A. Berry" <[EMAIL PROTECTED]> wrote:

> Well, here's how to pretend that the current directory is the root of
> a volume.  Having the test do something like this before running
> Makefile.PL is probably what we'll have to do:

[DCL script example omitted]

I had my doubts about this approach in the case where you were already in a
rooted directory, but actually running the example made me realize I was
being obtuse. The script provided, though, does not actually work from a
rooted directory, producing the following output:

   "MM_ROOT" = "MYNODE$DRA1:[USERS.][WYANT.PERL.]" (LNM$PROCESS_TABLE)
%RMS-F-DEV, error in device name or inappropriate device type for operation

(the RMS error being the result of a SHOW DEFAULT with an invalid default).
The problem (at least under my version of the OS) is the "][". Proposed
correction:

$ mm_root = f$parse("SYS$DISK:[]",,,,"NO_CONCEAL") - -
    ".][000000" - "][" - "].;" + ".]"
$ define/translation=concealed mm_root 'mm_root'
$ show logical mm_root
$ set default mm_root:[000000]
$ show default

All I really did was to insert a "-][" after the ".][000000" in the first
line (which I continued to try to avoid invalid DCL due to egregious line
wraps). This produces
   "MM_ROOT" = "MYNODE$DRA1:[USERS.WYANT.PERL.]" (LNM$PROCESS_TABLE)
  MM_ROOT:[000000]

Note that this appears not to be a problem even if the user is an old
TOPS-10 hacker:

$ set default users:<wyant.perl>
$ show default
  USERS:<WYANT.PERL>
$ @trw
%DCL-I-SUPERSEDE, previous value of MM_ROOT has been superseded
   "MM_ROOT" = "MYNODE$DRA1:[USERS.WYANT.PERL.]" (LNM$PROCESS_TABLE)
  MM_ROOT:[000000]

My opinion at the moment is that if the MM_ROOT dodge is feasable to
implement, it's about the best that can be done for those of us stuck in
the dark ages.

Tom Wyant

Reply via email to