Path: utzoo!utgpu!water!watmath!clyde!cbosgd!ucbvax!ISUMVS.BITNET!GG.UUU
From: GG.UUU@ISUMVS.BITNET ("John Hascall")
Newsgroups: comp.os.vms
Subject: RE: Making qualifiers (for DCL command procedures)
Message-ID: <8712180419.AA21839@ucbvax.Berkeley.EDU>
Date: 17 Dec 87 15:51:06 GMT
Sender: daemon@ucbvax.BERKELEY.EDU
Distribution: world
Organization: The ARPA Internet
Lines: 52

> From:         Skule Johansen 
> Subject:      Making Qualifiers.
>
>     I want to use qualifiers in some command procedures.
>     But there seems to be a loss of documentation about
>     this topic. So I hope for information through the net.
>
>     Can anyone send me some information about how to do
>     qualifiers for command procedures (*.COM). I'm pleased
>     if you also send an short example.
>
>     Example for use :
>
>     $ Delete/Confirm 
>
>     where '/confirm' are the qualifier.

I'm assuming that you are using a foreign command for "Delete" to point
it to the appropriate command procedure.  The problem is DCL doesn't like
constructs like:

      @delete.com /whatever

(It complains about "/whatever" not being a valid qualifier for the "@"
command.)  The way we get around this is with something like:

      $ delete :== @disk:[dir]delete.com dummy

Then you can do things like:

      $ delete /confirm

because they expand to:

      $ @disk:[dir]delete.com dummy/comfirm

which DCL does not complain about.  Then you have to parse the parameter(s)
(named p1, p2,... p8) in the command procedure.  Probably the easiest method
is to first concatenate them all together:

      $ options := "''p1' ''p2' ''p3' ''p4' ''p5' ''p6' ''p7' ''p8'"

and then use the various lexical functions to extract the "dummy" and
parse the qualifiers.

Hope this is some help,
John Hascall
Iowa State University Computation Center
GGUUU@ISUMVS.BITNET

(p.s. My apologies if my use of quotes in the line "$ options :=..." is
      incorrect--I'm not on a VAX at the moment to try it out.)