Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

VAXTPU RETURN — VMS 5.2

 RETURN

 Returns to the procedure that called the current procedure.  (The return
 is to the statement following the one that called the current procedure.)
 RETURN is can be used in the ON_ERROR section of a procedure or to return
 a value or status in a procedure.

 Syntax:

    RETURN [value]

 Parameters

    value      Optionally, a value to be returned to the calling procedure,
               such as a variable or a status value (1 for true; 0 for
               false).

 Examples

 1.  In the following procedure, RETURN is used in the ON_ERROR section of
     a procedure (in this case, to attach to the parent process):

     PROCEDURE user_attach_to_parent
        ON_ERROR
           IF ERROR = TPU$_NOPARENT
              THEN
                 MESSAGE ("Not running VAXTPU in a subprocess.");
                 RETURN;
           ENDIF;
        ENDON_ERROR;
        ATTACH;
     ENDPROCEDURE;

 2.  In the following procedure, RETURN passes a value to the calling
     procedure (in this case, a keyword for a key pressed after the shift
     or GOLD key):

     PROCEDURE user_get_gold_key
        LOCAL gold_key;         ! keyword for key pressed after GOLD
        SET (SHIFT_KEY, LAST_KEY);
        gold_key := KEY_NAME (READ_KEY, SHIFT_KEY);
        RETURN (key_to_shift);
     ENDPROCEDURE;

 3.  In the following procedure, RETURN passes a value (true or false) for
     the status of a procedure (in this case, whether the user is at the
     end of a line):

     PROCEDURE user_at_eol
        ON_ERROR
           RETURN (1);      ! Suppress warning message
        ENDON_ERROR;
        IF CURRENT_OFFSET = LENGTH (CURRENT_LINE)
           THEN
              RETURN (1);   ! True -- at end of line
           ELSE
              RETURN (0);   ! False -- not at end of line
        ENDIF;
     ENDPROCEDURE;

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026