[comp.os.vms] Signals generated by CLI$PRESENT with unknown entities

XPMAINT@TAMVENUS.BITNET (Shane Davis -- CSC XPrint Manager) (03/28/88)

I'm working on a program whose CLD file currently has alternate syntaxes
if one of two special qualifiers is specified. I figure this is a good way
to do this since a number of the qualifiers can only be used if the image
is invoked for one purpose while they are not applicable if a different
combination of qualifiers is specified. However, since my program's parsing
routines were written when I only had one CLI syntax for every case, I would
like to avoid rewriting the parsing routine to check for each special case,
though it probably would not be a too incredibly big chore. The problem is
that the CLI$PRESENT routine (and the other CLI routines, I'm sure) does
not return a value when the command entity is not present for that syntax
(CLI$_ENTNF) but calls LIB$SIGNAL (I assume) on my behalf before I can prevent
image exit. It is logical enough for my program to assume that if a qualifier
entity is not found in the command tables that it does not apply to the
particular invocation of the image but apparently CLI will not let me make that
determination for myself.

I thought perhaps I could call CLI$DCL_PARSE to check the line for me, but
according to the VAX/VMS Utiliy Routines Reference Manual (V4.0), "Whenever
CLI$DCL_PARSE encounters an error, it both signals and returns the error."
Besides, the command line has already been parsed once by DCL before I even
start to tinker with the qualifiers given and see no reason to parse it again.

Is there any way, short of writing my own condition handler, to keep CLI
from signalling this error and have it simply notify my image of the problem?

By the time I get a reply to this I will most likely have already rewritten
my routine. But I think the CLI routines are inconsistent with most other
system services in that they signal the error rather than letting the image
handle it...after all, even access violations do not get signaled by system
services in most cases; Why did they (DEC) do this? What's so severe and fatal
about "specified entity not found in command tables" that images can't be
trusted to handle it?

Thanks,

--Shane Davis
  Programming Assistant
  Texas A&M Univ. Computing Svcs. Ctr. Software Systems Group

********************************************************************************
        BITnet             THEnet                       Internet

  XPMAINT@TAMVENUS      THOR::XPMAINT           xpmaint@venus.tamu.edu
  RSD1901@TAMSIGMA       ZAC::RSD1901                   --------
   X233SD@TAMVM1           ------               x233sd@tamvm1.tamu.edu

        SPAN: UTSPAN::UTADNX::(THEnet addr)
********************************************************************************