Path: utzoo!utgpu!water!watmath!clyde!rutgers!sri-spam!ames!pasteur!ucbvax!sdcsvax!ucsdhub!jack!crash!jeh From: jeh@crash.cts.com (Jamie Hanrahan) Newsgroups: comp.os.vms Subject: Re: XMODEM for VMS and VAX C command input Summary: LIB$GET_FOREIGN works with the CLI routines Message-ID: <2435@crash.cts.com> Date: 28 Jan 88 20:04:57 GMT References: <8801271818.AA02217@ucbvax.Berkeley.EDU> Reply-To: jeh@crash.CTS.COM (Jamie Hanrahan) Organization: CMKRNL Press, San Diego, CA Lines: 24 In article <8801271818.AA02217@ucbvax.Berkeley.EDU> rsine@NSWC-WO.ARPA writes: >Netlanders, > I have input for a couple of questions I saw on the net. ... > Other ways to accomplish this is to use the set command and define >the command. This way is a bit more fancy as switches and other nicities >can be employed, but you pay the resource/time price for doing set commands >(big time). Yet another way is to modify the DCLTABLES, but you have to >do this each update of VMS, unless of course you make a seperate DCLTABLE >called something else and don't want new/changed commands syntax (especially >with even versions of VMS). You can also use LIB$GET_FOREIGN, then pass the `gotten' command line to the DCL parser via CLI$DCL_PARSE . With this technique you build a CLD file, but when you SET COMMAND on it you specifiy an object file as output, which you link with the rest of your image. This is really intended for utilities that have their own build-in command language (AUTHORIZE, for instance), but it works just fine for foreign commands. This way you get the best of both worlds -- you get to use all the niceties of the DCL parser, including handling of positional and global qualifiers, default values for qualifiers and parameters, prompting for missing parameters, etc., etc., but you don't have to do a SET COMMAND for the user (which takes time when they log in) or on the system's DCLTABLES (which makes for grief at update time). (Thanks to Ken Coar of DEC for this suggestion.)