[613] | 1 | ZVEMSH7 ;DJB,VSHL**PARAMETER PASSING [04/17/94]
|
---|
| 2 | ;;12;VPE;;COPYRIGHT David Bolduc @1993
|
---|
| 3 | ;
|
---|
| 4 | PARAM ;;;
|
---|
| 5 | ;;; P A R A M E T E R P A S S I N G
|
---|
| 6 | ;;;
|
---|
| 7 | ;;; User QWIKs can be made more powerful and flexible by using parameter passing.
|
---|
| 8 | ;;; You pass parameters to your QWIKs by typing one dot and your QWIK name, and
|
---|
| 9 | ;;; then from 1 to 9 parameters, each separated by a space. If the parameter
|
---|
| 10 | ;;; itself contains a space, it must be enclosed in quotes. The VShell will look
|
---|
| 11 | ;;; for any parameters and assign them to variables %1 thru %9. Your QWIK would
|
---|
| 12 | ;;; use these variables.
|
---|
| 13 | ;;;
|
---|
| 14 | ;;; As an example of how to use parameter passing, lets look at System QWIK ZP.
|
---|
| 15 | ;;; You use ZP to ZPRINT a routine. You would enter '..ZP ROUTINE'. You can see
|
---|
| 16 | ;;; that ROUTINE is the parameter and the VShell will assign this to %1.
|
---|
| 17 | ;;;
|
---|
| 18 | ;;; Here is ZP's code: Q:%1']"" ZL @%1 ZP
|
---|
| 19 | ;;;
|
---|
| 20 | ;;; First, this QWIK will QUIT if no routine name has been passed. Next it will
|
---|
| 21 | ;;; ZLOAD the routine into your partition and then ZPRINT it. Note that you don't
|
---|
| 22 | ;;; have to check to see if %1 is defined. %1-%9 are always defined either to a
|
---|
| 23 | ;;; parameter or to null.
|
---|
| 24 | ;;;
|
---|
| 25 | ;;; If you hit '..2' at the >> prompt, to view the System QWIKs in box 2, you
|
---|
| 26 | ;;; will see: ZP ZPrint a Routine
|
---|
| 27 | ;;; -> %1=Routine Name
|
---|
| 28 | ;;; The '%1=Routine Name' is what you would enter at the 'Edit PARAM NOTES:'
|
---|
| 29 | ;;; prompt when you Enter/Edit a QWIK. Then when you view your QWIKs, these notes
|
---|
| 30 | ;;; are displayed as a reminder that you need to pass a parameter when calling
|
---|
| 31 | ;;; this QWIK.
|
---|
| 32 | ;;;***
|
---|
| 33 | PROT ;;;
|
---|
| 34 | ;;; P R O T E C T I O N
|
---|
| 35 | ;;;
|
---|
| 36 | ;;; When you enter code at the ">>" prompt, it is first checked for any global
|
---|
| 37 | ;;; kills. If your code is killing a global, you will receive a warning message
|
---|
| 38 | ;;; which will ask if you really want the code executed. This allows you to
|
---|
| 39 | ;;; review your code and abort the execution if you note any errors.
|
---|
| 40 | ;;;
|
---|
| 41 | ;;; Your line of code is divided into "pieces" based on spaces. If any piece
|
---|
| 42 | ;;; contains an "^" and the previous piece contains a "K", you will receive the
|
---|
| 43 | ;;; warning. Some code may fit this pattern and trigger a warning even tho no
|
---|
| 44 | ;;; kill is being executed. Example: LOCK ^XXX(1,2)
|
---|
| 45 | ;;;
|
---|
| 46 | ;;; NOTE: This protection is also available when using the VPE routine and
|
---|
| 47 | ;;; global editors.
|
---|
| 48 | ;;;***
|
---|